首先在这里讨论的是国内的大陆地区。在今天这个中国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职位,很多时候转型是受环境和平台影响,没有特定的环境平台你也做不了。还有就是寻找创业团队,并加入他们,但创业是不容易的,需要做好一切准备。

关于如何写优雅,可读性,可测试性的代码,什么是优秀的开发人员,可参考以下书籍:

The Art of Readable Code

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软件开发人员现状的更多相关文章

  1. 软件开发人员真的了解SQL索引吗(索引使用原则)

    原文:软件开发人员真的了解SQL索引吗(索引使用原则) 前两篇文章我总结了一些SQL数据库索引的问题,这篇主要来分析下索引的优缼点,以及如何正确使用索引.       索引的优点:这个显而易见,正确的 ...

  2. 2019 年软件开发人员必学的编程语言 Top 3

    AI 前线导读:这篇文章将探讨编程语言世界的现在和未来,这些语言让新一代软件开发者成为这个数字世界的关键参与者,他们让这个世界变得更健壮.连接更加紧密和更有意义.开发者要想在 2019 年脱颖而出,这 ...

  3. 国内APM企业的现状

    19世纪美国西部掘金热大起,大家听闻有人挖到了金子一夜暴富,于是蜂拥而上,但是很多人失望而归,最后居然是卖铲子的人赚到了钱. APM在互联网+时代表示应用性能管理,就是掘金万亿互联网市场的“铲子”,主 ...

  4. 东方国信 - 软件开发人员面试问卷(ver1.001.002)

    1.    通用编程知识问卷(所有编程人员必做)... 1 1.1      SQL问卷... 1 1.2      翻译... 2 2.    Java问卷(Java程序员应答,其他跳过)... 2 ...

  5. 每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识

    2013-02-05 14:18 48人阅读 评论(0) 收藏 举报 关键字:     Unicode, Character Set, 字符集, UTF-8, ANSI, ASCII, UTF-7   ...

  6. 从 2017 OpenStack Days China 看国内云计算的发展现状

    目录 目录 China Runs On OpenStack 私有云正式迈入成熟阶段 混合云的前夜已经来临 China Runs On OpenStack OpenStack Days China 作为 ...

  7. IT外包行业与职业发展

          在IT行业,总是有一些IT外包公司的存在,凡是存在的都是合理的.当你做为IT从业人员应该尽量避免去外包公司工作 .特别是你从事软件开发工作.     先来说说缘由,一些外包公司本来是从事软 ...

  8. Android IOS WebRTC 音视频开发总结(六一)-- 大数据解密国内实时通讯行业开发现状

    本文主要介绍国内实时通讯行业现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 这几年移动互联网发展势头很猛,与 ...

  9. SLAM技术在国内的发展现状

    近年来,由于扫地机的出现使得SLAM技术名声大噪,如今,已在机器人.无人机.AVG等领域相继出现它的身影,今天就来跟大家聊一聊国内SLAM的发展现状. SLAM的多领域应用 SLAM应用领域广泛,按其 ...

随机推荐

  1. 数据库基础,表及SQL语句

    数据库基础及T-SQL语句 字符类型: int 整型 float 小数 double 小数 varchar(20) 字符串 bit 布尔型数据 datetime 日期时间类型 text 长文本 (以下 ...

  2. iOS-----写一个规范的单例--->

    1.集成了一个宏 2.两句代码集成单例 3.一句代码调用单例 -------------> 1.集成了一个宏 //这里就要注意了,因为每个单例中,方法名可以不一样,那么我们就不能把名字写死,要灵 ...

  3. html 生成pdf

    HTML生成PDF(c#) 最近因为工作需要,小小的研究了一下HTML生成PDF的方法,这方面的内容很多,但要么是不尽如人意的方法,要么就是那种收费的类库!为了广大.neter的福利,把自己的一点小小 ...

  4. python发送邮件及附件

    今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题: 本人是mac如果没有按照依赖模块的请按照下面的截图安装 导入模块如 ...

  5. js实现图片轮播

    效果图

  6. Unity事件

    unity3d事件函数整理,事件,回调函数,消息处理 Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Star ...

  7. javascript运动系列第七篇——鼠标跟随运动

    × 目录 [1]眼球转动 [2]苹果菜单[3]方向跟随 前面的话 运动除了直线运动和曲线运动两种运动形式外,还有一种运动形式是鼠标跟随运动,而这种跟随运动需要用到三角函数的相关内容或者需要进行比例运算 ...

  8. Git 冲突合并

    在多人协作开发,经常遇到Git冲突,每次都不大记住命令.所以自己备注一下! git pull 之后有冲突: $ git pullremote: Counting objects: 5, done.re ...

  9. MySQL索引下推技术

    索引下推整个思路如下: To see how this optimization works, consider first how an index scan proceeds when Index ...

  10. 利用xinetd进行时间同步

    时间同步,往往是大型项目里一个基本的需求:如果现在有多台服务器需要时间同步为标准时间,一般有如下两种做法: 一:NTP服务 将一台能上外网的服务器配成公网时间服务器(譬如:ntp服务配置文件中的0.r ...