国内IT软件开发人员现状
首先在这里讨论的是国内的大陆地区。在今天这个中国IT环境下,开发人员出路何在?一个优秀开发人,应该有致力于编写优雅代码,让别人读得懂,具有可读性,可测试性的代码,不仅仅是可以运行的代码。所以经常需要对现有的代码重构,包括自己写的代码。而现在国内的开发人员这方面的素质一直缺乏,就更难谈得上对软件开源社区的贡献了。
所以一些优秀的开发人员后面都去做架构师了,但又不是每个公司都需要架构师。又有一些由于家庭的原因,转做PM了,由于开发人员需要不断的学习,新技术的更新换代,日新月异,所以你不学习就跟不上时代。当你到30岁的年龄,由于精力的不够,越来越多的开发人员被迫转行或转型。剩下来的人,优秀的相对较少了,由于国内环境的影响很少人会继续专注于开发领域。只有一线大型软件公司,如Microsoft, Google,IBM等公司,能让你一直做软件开发工作。再讨论一下国内的一线城市(北上广深)的IT软件行业特点,大型公司(如上列举几家巨头)分工明确,以至于让你转变为专业化的IT软件开发人员,对某一个软件开发领域越来越深入。的确,一些大公司也需要你这样专业人员。一类这样的开发人员(30岁或以上)在大型IT公司工作,未来他们的方向有可能是部门经理,有可能是架构师,无论哪一儿条路也不容易,因为大公司有向上走困境。有的人可能三十多岁还在做Engineering or Coding。这种现象在国外大型公司更是正常了,越是资深的,越是年龄大的程序员越得到尊重。而在国内民营公司,或非IT的公司则正好相反。
在一些民营小公司,做软件就是小打小闹,软件小作坊,你会发现很多不如意的地方,可归结于不专业,不专业化带来是工作效率的低下,并且存于整个在公司的过程或流程的方方面面。还有一种情况,有的人就没有经历专业化,由于不求上进,所以他们就没有这个思想意识。由于不专业化,一些人也不求上进,混日子的人也不少,当你与这些不专业的人工作在一起,你会感到非常的郁闷。这时,可能你需要修改那些mess or crap code(垃圾代码),那可真是一种痛苦的事情。特别是,当你试图改变这一切时又受到上层阻碍,或得不到支持,没有上层的批准,整日在这些垃圾代码上工作,渐渐地你的愤怒情绪不断增长,终有一日需要释放,谁也不想每天让这些垃圾代码弄得心情不愉快呀,谁也不想由工作不愉快情趣影响对人的看法,即使做到对事不对人。
有时正因为这些垃圾代码让你加班,你需要实现某些功能。而那些垃圾代码作者根本没有意识这些问题,你在这边完善,他在那边乱搞。就像那句话:“不怕神一样的敌人,就是猪一样的队友”。记得某一年的程序员杂志上,采访某个软件公司Leader, 他说到让不好的人进入团队,就是对其它团队人员的不尊重。所以,你必须尽量争取去一个优秀的Team,无论是大公司还是小公司,与优秀的人在一起工作,你会学到更多。在今天很多的成果与业绩需要一个Team来完成,不再是个人主义的时代,而是依赖一个Team有效分工协作。Team才能创造出好的产品或服务,当你做为一个Leader时去负责管理Team时,需要遇到的情况就会更多了,当然越是困难多,对你的历练就越多,对你也是成长,这是一个过程。
综上所述,在一二线城市做软件开发,可以尽量去大型知名公司工作。在三线城市,因为没有大型IT公司,可以选择转型做PM或开发经理或其它IT职位,很多时候转型是受环境和平台影响,没有特定的环境平台你也做不了。还有就是寻找创业团队,并加入他们,但创业是不容易的,需要做好一切准备。
关于如何写优雅,可读性,可测试性的代码,什么是优秀的开发人员,可参考以下书籍:
《Code Complete: A Practical Handbook of Software Construction, Second Edition》
《The Clean Coder: A Code of Conduct for Professional Programmers 》
《The Pragmatic Programmer: From Journeyman to Master》
《Working Effectively with Legacy Code》
《Beautiful Code: Leading Programmers Explain How They Think》
《The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life)》
《Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman》
以上一些想法,是回顾过去工作经历而来。最后,希望各位选择好自己的职业生涯。
作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog。
国内IT软件开发人员现状的更多相关文章
- 软件开发人员真的了解SQL索引吗(索引使用原则)
原文:软件开发人员真的了解SQL索引吗(索引使用原则) 前两篇文章我总结了一些SQL数据库索引的问题,这篇主要来分析下索引的优缼点,以及如何正确使用索引. 索引的优点:这个显而易见,正确的 ...
- 2019 年软件开发人员必学的编程语言 Top 3
AI 前线导读:这篇文章将探讨编程语言世界的现在和未来,这些语言让新一代软件开发者成为这个数字世界的关键参与者,他们让这个世界变得更健壮.连接更加紧密和更有意义.开发者要想在 2019 年脱颖而出,这 ...
- 国内APM企业的现状
19世纪美国西部掘金热大起,大家听闻有人挖到了金子一夜暴富,于是蜂拥而上,但是很多人失望而归,最后居然是卖铲子的人赚到了钱. APM在互联网+时代表示应用性能管理,就是掘金万亿互联网市场的“铲子”,主 ...
- 东方国信 - 软件开发人员面试问卷(ver1.001.002)
1. 通用编程知识问卷(所有编程人员必做)... 1 1.1 SQL问卷... 1 1.2 翻译... 2 2. Java问卷(Java程序员应答,其他跳过)... 2 ...
- 每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识
2013-02-05 14:18 48人阅读 评论(0) 收藏 举报 关键字: Unicode, Character Set, 字符集, UTF-8, ANSI, ASCII, UTF-7 ...
- 从 2017 OpenStack Days China 看国内云计算的发展现状
目录 目录 China Runs On OpenStack 私有云正式迈入成熟阶段 混合云的前夜已经来临 China Runs On OpenStack OpenStack Days China 作为 ...
- IT外包行业与职业发展
在IT行业,总是有一些IT外包公司的存在,凡是存在的都是合理的.当你做为IT从业人员应该尽量避免去外包公司工作 .特别是你从事软件开发工作. 先来说说缘由,一些外包公司本来是从事软 ...
- Android IOS WebRTC 音视频开发总结(六一)-- 大数据解密国内实时通讯行业开发现状
本文主要介绍国内实时通讯行业现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 这几年移动互联网发展势头很猛,与 ...
- SLAM技术在国内的发展现状
近年来,由于扫地机的出现使得SLAM技术名声大噪,如今,已在机器人.无人机.AVG等领域相继出现它的身影,今天就来跟大家聊一聊国内SLAM的发展现状. SLAM的多领域应用 SLAM应用领域广泛,按其 ...
随机推荐
- PDO 数据访问抽象层
1.操作其它数据库 (1)造对象 $dsn = "mysql:dbname=test3;host=localhost"; //数据源:两个参数:数据库驱动,链接数据库 $pdo = ...
- Java基础-输入输出-2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt
2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt ...
- Leetcode-268 Missing Number
#268. Missing Number Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find ...
- thinkPHP入门之二
thinkphp提供了很多便利的方法,因为php要记的东西太多了,而thinkphp极大简化了这些,让编写过程更加快速. 为了预防那些了解它的人胡乱玩耍,thinkphp提供一个函数_empty 它是 ...
- C语言static
1. static 变量 静态变量的类型说明符是static. 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量. 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 ...
- meta标签中的http-equiv属性使用介绍(转载)
meta是html语言head区的一个辅助性标签.也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言, ...
- 创建分区表和查看分区表的Metadata
未分区的表,只能存储在一个FileGroup中:对table进行分区后,每一个分区都存储在一个FileGroup中.表分区是将逻辑上一个完整的表,按照特定的字段拆分成Partition set,分散到 ...
- 没有Hyper-V服务,WP Emulator无法启动
解决: 打开管理工具
- Socket实现仿QQ聊天(可部署于广域网)附源码(4)-加入数据库系统搭建完成
1.前言 这是本系列的第四篇文章,上一篇我们讲到实现了客户端对客户端的抖屏与收发各种类型文件,本篇文章我们加入SQLServer数据库实现登录与好友的添加等功能,并对界面做了美化处理.向往常一样我会把 ...
- Web APi之HttpClient注意事项以及建议(四)
前言 之前对于用SelfHost来手动实现Web API的宿主模式,似乎不是太深入,所以本篇文章我们一起来讨论关于利用HttpClient来访问Web API上的资源来进行探讨以及注意相关事项,希望此 ...