35岁了,程序员的路该怎么走?在中国,对程序员的认识还停留在码农阶段。工作层次之低可想而知,导致这种情况的原因是多方面的,首先国内软件开发性质决定了技术含量不高,大专以上学历的同学经过几个月的专业培训都能掌握,再加上很多公司缺少对软件的设计,对软件开发认识不足,往往只关注进度,快速开发难免会质量无法保证。
实际,之所以出现这种问题,是由于国内对软件开发一直抱有一种错误理解。如果软件开发仅仅是代码编写,查找BUG,可以说,那确实是在做一些低级的软件行为。做了十年的开发人员,确实不见得比作了3年的人更强多少,反正是简单重复的工作,工作3年的一样可以做,而且有更大的热情和精力。
软件业要发展,就应该跳出这个怪圈,走向更高的领域,对软件开发重新进行认识。我们要明白,软件开发要融入工程化的思想,要有高度的设计能力,关注更多的软件运行属性和设计质量属性。同样的系统,不同的软件人员会做出完全不同的软件,正规,高效的开发团队要比游击队开发团队不只高出几十倍的效率。
软件开发,不仅仅需要关注功能、性能,更应该去研究可维护性、可扩展性等质量属性;不仅仅只关注代码,而更要上升为设计,复用等。软件开发不能只是写出C语言的代码,单元测试、同行评审、培训与学习,这些都是开发人员基本的素质,也是提高软件质量的最基本手段;举例来说,单元测试做好了,就可以让开发效率大大提高,也能让软件的维护成本降下来,把开发人员解放出来;同行评审可以让开发人员之间更多的交流和沟通,在设计,编码阶段严格控制软件质量;培训则是提高自身技术水平,从理论上提升自己的最好方法。现在基本上所有这些主要的质量行为都被忽略了,而这恰恰是走出低级开发的最好途径。同时,还有更高层次的设计开发、软件重构、模块化、系统构架、搭建统一软件平台、度量软件质量等等。有了重构,就会写出可读性好,可维护性好的软件,甚至因此提高自己的软件设计能力,减少出错的几率;模块化,让软件最大程度的实现复用,提高软件开发效率和开发质量;软件构架设计,从技术层次上最早决定了软件的命运,而这里又有太多的技术,设计模式,软件规划等,让软件开发从编码上升到设计的层次,搭建统一软件平台,是大产品,系列化开发的必然之路,对于软件质量的度量,会让我们的软件开发变得更加透明,清晰,让我们更清楚地把握到软件的开发过程,从各个环节去控制软件质量,而不是仅仅凭着感性的认识到了最后才去补救。
以上这些知识,一个人,哪怕勤奋学习一辈子,也不可能完全具备所有的技能。35岁算什么,做到70岁都不晚。当然,你需要真正的热爱它,并且不断得学习和进修。所以说,软件开发人员,要作的事情太多了,软件实在是一项浩大的脑力工程,甚至会让人觉得这是一个投入/产出比最低的行业,因为要学习的知识实在太多了,每时每刻都要处于不断的学习和更新当中。既然选择了,既然喜欢了,就应该投入进去,享乐于此了。最重要的是,我们自己能并且愿意去认识到这一点,跳出低级开发的怪圈,走向更高的层次。
同时,要意识到,一个资深开发人员的作用绝不亚于一个管理人员,高明的企业应该给予相同的待遇,要把培养和储备高级技术人才作为高科技企业的重点发展方向,这样才能让企业在人才领域得到不断积累,资深开发人员才会带出高效的开发团队,从而开发出高质量,高效率的软件,让企业在不断激烈的竞争中取胜。要明白,不是每个人都适合或者乐于转向管理的,很多人就是适合做开发工作,他们可以走得更深入,成为专家,应该充分发挥出他们的能力,让整个团队高效运作起来。