很多程序员到了成熟阶段后,就会处于一个停滞状态。技术上已经驾轻就熟,工作上已经按部就班,心里虽然感觉有些不甘,但是何去何从他们显得很茫然很无助。我认为程序员到了成熟阶段后,如果还想要向优秀阶段发展,一定会遇到这个瓶颈的,穿过这个瓶颈就会走进另一片开阔的前景,穿不过则会停留在原地止步不前。
1、技术瓶颈
技术上的瓶颈是很明显的,主要表现在,对学习缺乏热情,对技术缺乏钻研,对新技术发展缺乏了解等三个主要方面。其中原因主要是:第一,成熟的程序员编程技术已经能够满足开发软件的要求,很多人认为只要能编出来就行了,至于编得更好,那就要看兴趣了,看时间允许了。第二,由于成熟程序员承担着比一般程序员更多的工作,比如软件设计和项目管理,比如和用户打交道、和领导打交道,很多时间精力无法放在编程上面。第三,由于软件开发任务一般都比较紧,工作起来必须加班加点才能完成,因此,没有时间再做技术上的深入。第四,很多程序员处于一个自发的发展状态,自己的成长完全取决于自己工作内容,工作内容强度和复杂程度决定了其技术水平的高低,因此,他自己根本不知道自己技术发展的方向是什么,技术上的差距是什么,也就无从谈起自己的努力的方向。
因此,成熟的程序员应该有更上一层楼的意识,千万不要固步自封,夜郎自大。首先要对自己在技术上有一个客观的分析,看看自己的长项在什么地方,弱项在什么地方。对自己的弱项就要想办法进行克服,千万不要留在那里,日后必然会影响自己的进步。比如,很多人弱项在面向对象的设计方法,人机界面交互,大数据量处理,处理效率等,如果有这些方面的问题就要想尽办法去解决。其二,要注重编程基础技能的深入掌握,很多时候程序员只是拿来主义,知其然不知所以然,把基础缺失的那个部分再补回来,为今后向更高的技术境界打下基础,比如像操作系统,网络知识、程序设计语言、数据库、系统构架、软件工程等基础知识,要重新审视,把其中有用的知识掌握好,并且要学会把各种基础知识给串联起来,加深对基础知识的认识。其三,要逐步把编程技术从功能实现方面转向参数化设计、软件构架等高级阶段方面的研究,在共享、通用、标准化方面有所建树。
2、工作上瓶颈
程序员在工作上也存在向上的瓶颈。就一般而言,很多程序员在这个阶段工作上比较稳定:领导对自己相对比较了解和信任,同事对自己的工作能力和技术水平也比较认可,软件用户对自己的服务也相对比较满意。因此,在充满工作上的满足感的同时,工作上日复一日,没有什么新意,疲倦感油然而生,而以往那种激情很少有地方释放了。所以,程序员有时也会思考自己在工作上究竟要在什么地方进行突破,究竟怎么才能更上一层楼。
程序员在工作上的现状,还是来自于软件公司或部门上级的安排所致,尽管自己在具体工作上付出很多,编程上有很大的自主权,但是从总体上来看,程序员只是企业经营过程中的执行人员,是一个被动的角色。因此,程序员要改变工作上的现状,程序员必须要有主动意识,尽可能主动地规划好自己的发展方向,主动地向上级反映自己的想法和打算争取上级的理解和支持,在工作条件许可的情况下,把自己的时间和精力以及主点放在自己关心的方面。例如,程序员感觉自己编程方面已经满足工作要求了,但是自己与客户打交道的能力,市场资源的积累很差。他就可以向主动上级提出自己想做售前工作,如果领导同意,则可以在这个岗位上,提高自己这方面的能力。在岗位不调整的情况下,可以根据自己的工作范围,尽可能多多和客户打交道,了解客户的需求,从而为自己开发的项目做好基础,同时通过与客户打交道和客户交朋友,为自己的市场资源做些积累。其实在工作层面上可以有很多值得改进的地方的。
3、收入上瓶颈
说到底程序员最大得瓶颈在于收入上的瓶颈,虽然经过多年的努力奋斗,收入也有了一定得提高,有的甚至达到了社会平均收入的中上水平。但是,面对中国的生活现实,买一套房需要花光几十年得收入(即使按揭还是要每月偿付本息的),而且工作很难稳定到几十年不变(除非是公务员)。因此,绝大部分程序员的收入是很难满足那种程序员向往的生活,尤其是过上中等生活的要求和过上稳定生活的要求。当然,例外总是有的,极少的程序员收入也是相当高的,生活过的很滋润。就普遍情况来看,我们付出的和得到的是不成比例的,这不能不说是社会的一种悲哀。回到某个程序员具体情况来看,程序员的收入一般比较稳定,有的一年动一次,有的几年动一次,这要看所在各公司情况和所在单位部门情况而定。程序员和其他职业的员工一样很少在工资收入方面有自己的话语权。
程序员经历了成长过程的风风雨雨之后到了成熟阶段,收入应该比过去高了许多。但是程序员的预期和实际收入的反差是程序员内心最大的烦恼,因此,增加收入或大幅度增加收入是程序员无法突破得瓶颈。
面对收入瓶颈,程序员应该调整心态,光靠埋怨是绝对无用的。要解决这个问题,程序员可以从以下几个方面来考虑。第一,程序员可以本公司部门进行收入增加的挖潜,可以主动提出调整到收入高的岗位,可以参加高奖金的项目开发,凡是能够增加收入的各种工作都可以考虑去做。第二,在这个基础上,如果程序员感到自己的收入还是无法达到自己的预期,不妨可以考虑离开这个公司或部门,通过应聘高薪工作的方式来提高自己的收入,当然这种选择还是要慎重的,要考虑多方面的影响,很多情况下收入不是唯一的因素,未来收入和现有收入很小的差距更是忽略不计的因素。第三,程序员在条件和精力的许可的情况下,可以从事一些第二职业,由于程序员这种职业特性,程序员可以独立完成某个编程任务,也可以和其他人共同完成编程任务的,通过从事第二职业,程序员可以增强市场意识,可以比本公司、本部门知道更多的软件的价值,结识更多的软件同行,学习更多编程技术,并且获得相应的劳动报酬。更重要的是在此期间可能会遇到自己发展的机遇。
满足现状的程序员就不可能遇到这些瓶颈,他们会在一个自己的世界中得到满足,他们会在这种满足下持续自己的工作,求得一份平静的生活。而那些不满足现状的成熟程序员,那些追求优秀的程序员,因追求而困惑,因瓶颈而求突破。程序员只要不甘于现状,只要认定一切要靠自己,只要准备付出比过去能多精力,只要准备克服比过去跟多的困难,只要求新求变,最终都会破茧成蝶的。那绚丽的天空下,那自由飘飞的彩蝶正是他们未来的身影。