人才市场报/2007 年/1 月/13 日/第A05 版
职场兵法
技术人才职场进阶要决(一)
程序员如何铺就职业坦途
程亮
刘晨,1996 年进入IT 业,从程序员干起。1999 年,在“群情激愤、血气方刚”之下开始与
朋友一起创业,建立技术团队,担任技术负责人,规划产品线,并获得两轮海外融资。现在公司
已经小有规模,但身为老技术员的他经历几次招聘之后,发现现在的程序员水平堪忧,于是他想
告诉大家———程序员如何铺就职业坦途。
低水平程序员已经过剩
随着开发工具的可视性、易用性增强,程序开发变得简单了。特别是随着软件工程方法的深
入人心,开发过程管理愈加规范,代码编写变得类似于机械性的动作。现在,程序员几乎是一个
没有门槛的职业,各培训机构都号称可在2-3 个月内打造一个软件蓝领。由此产生一个问题,这
样培训出来的程序员顶多只是编码人员,无法进行高水平的程序设计,而众多软件企业所苦苦追
求的恰恰是具有丰富项目经验、能够独立完成程序设计任务的程序员。在我看来,经过这几年大
学的扩招与培训机构的热捧,低水平的程序员已经过剩。
三大原因阻碍进步
其实,软件人才缺乏已经不是一年两年了,为什么前些年大量进入软件行业的人没有大量成
长为熟练人才呢?主观上来说,很多程序员心态浮躁,主要表现是:
一、不扎扎实实地钻研理论,打好基础。虽然很多程序员也读书,但读的大多是比较热门的
所谓“技术”书,业界炒什么“单词”,他就读什么,但理论基础不牢、功底太浅的缺点却不去
修正。例如,一些程序员和大学生成天读.NET、J2EE、Ajax 之类的书籍,但关于数据库原理、
数据结构与算法等基础理论,却一窍不通。甚至有些学生不好好学习学校规定的课程,却到外面
参加培训机构培训。
二、敬业精神差,程序漏洞百出。很多程序员工作带身不带脑,边写代码边上网聊天,程序
漏洞百出。很少考虑程序问题给用户造成的损失,给公司带来的负面影响,很少去研究自己写的
代码能否进一步优化,总认为代码只要通过编译就OK 了。
三、过于频繁地跳槽,没有长期规划。刚踏入社会,就成天想着房子和车子,由此抱怨工资
太低、待遇太差、老板太小气、房价太高。由于行业发展迅速,这些程序员就会频繁跳槽,他们
很少结合自己的实际能力和水平衡量自身的“价值”,更缺乏通过一个长期规划不断提升自身价
值的意识。
当然,造成这种现象的原因也不光是主观的,整个行业的环境也有一定的责任,比如中国的
IT 企业绝大多数是作坊式或半作坊式的,招聘人员的要求就是“能做事”,很少有企业想要真正
培养一个程序员;IT 企业管理和运作不规范;企业规模太小,没有研发投入..
三个结合铺就坦途
在任何一个行业里,初级人才都是不缺乏的。要为自己的职业生涯铺就坦途,就必须把自己
从初级之中“解救”出来,成为行业内的熟练人才。“解救”的关键在于三个结合:
把知识学习与企业需求相结合。大多数程序员都是科班出身,但大学教育是普及教育,教给
学生的只是知识,而企业对学生的需求是技能。当双方都不愿意承担“衔接”的作用时,就需要
学生自己想办法。目前,企业对软件工程流程越来越重视,所以,适应企业的需要就要学会规范
第1 页共2 页
的文档,然后才是技术。东软的副总、CTO 方发和这样描述他对IT 专业学生的要求:“我们要求
学生注重4 方面的能力:眼界、学习的方法、技能和规范。要学习如何与别人合作,比如在代码
风格上统一。虽然只是一名程序员,但仍需要站在项目经理的层面上看自己的工作,这样才能更
好地融入到团队中。”可见,不断积累能够和企业顺利接轨的素质与能力是迅速发展的基础。
将技术提升与行业相结合。程序员首先要在技术上做得比较深入,成为技术专家。无论是Java
还是.NET,还是数据库领域,都要成为行家里手。要想出头,必须提高系统设计能力。2000 年
以后,软件业的编程思维和模式、方法发生了翻天覆地的转变,软件工程流程的普及,使得对程
序员的基础要求降低了,但对系统设计的要求提高了。然而,系统设计能力是要与行业结合的,
也就是说,要从一个行业应用软件设计的角度来看待程序员的工作,这不仅能够帮助工作,还为
以后的“进阶”提供了保障。
把发展方向与自身性格相结合。已经工作两年以上的程序员有几种基本的职业规划:技术专
家、软件架构师、实施顾问或销售。最主要的发展方向是技术专家,但技术专家再往上就比较困
难,架构师总是只有那么几个。所以,程序员应该根据自己的情况,决定自己做软件架构师还是
高级的顾问销售,或者走向行政管理。实施顾问和销售比较偏向市场,除了一定的技术能力外,
需要掌握很多IT 以外的知识。这些发展方向对于从其他专业转入IT 的人员更为适合。比如烟草
行业,一定要了解大的趋势、烟草行业的产业政策是什么、直接导致需求是什么等,这些信息对
于职业发展很重要。IBM 的一些顾问都是行业内的资深专家,他们的发展就非常具有代表性。
TIPS:程序员应具备的7 个核心能力
1、团队精神和协作能力;2、文档习惯;3、规范化,标准化的代码编写习惯;4、需求理
解能力;5、复用性,模块化思维能力;6、测试习惯;7、学习和总结的能力。