background image

到操作系统的建设,到数据库平台的建设,一直到应用层上各种数据营销平台的搭建,程序员在里面都扮演着举
足轻重的角色并为

IT

 

事业的发展做出了巨大的贡献。

中国有很多精于编码的人,但是中国软件行业,尤其是网络应用开发方面误区很大,很难形成有规模的软件开发
力量和产品能力,不但比美国差距甚远,和印度相比也是颇有不如。这些问题不是在于中国程序员的智商和工作
努力状况,也不是在于国家和民间对开发的投入程度,而是很大程度上,有一些对技术,对程序开发,对项目设
计方面的思想误区,这些误区,导致了软件行业的产品化能力不足,缺乏规模化和大型复用系统研发能力,可以
说,改变认识误区,是解决软件行业小作坊模式和个体英雄模式所带来的局限性的重要工作。

中国有很多小朋友,他们

18,9 岁或 21,2 岁,通过自学也写了不少代码,他们有的代码写的很漂亮,一些技术细

节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,
这些人,一个网上的朋友说得很好,他们实际上只是一些

Coding fans,压根没有资格称为程序员,但是据我所

知,不少小网络公司的

CTO 就是这样的 coding fans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很

 

吓人。

 

作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。

1.

 

团队精神和协作能力

把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。
把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如

linus 这样的天才,也需要通过

组成强大的团队来创造奇迹,那些遍布全球的为

linux 写核心的高手们,没有协作精神是不可想象的。独行侠可

以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏

 

这种素质的人就完全不合格了。

2.

 

文档习惯

说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为
代码程序员,

30

 

%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。

 

缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。

3.

 

规范化,标准化的代码编写习惯

作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空
行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。

有些

coding fans 叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己压根不配自称程序

 

员。代码具有良好的可读性,是程序员基本的素质需求。

再看看整个

linux

 

的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。

4.

 

需求理解能力

程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,
操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾经放言说写一个广告交换程序很简单,这种人从
来不知道在百万甚至千万数量级的访问情况下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系
统,他也做不出太极链的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员
需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这
一点,一个成熟的程序员至少需要

2 到 3

 

年的项目研发和跟踪经验才有可能有心得。

5.

 

复用性,模块化思维能力

经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代
码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完
全可以避免的。

复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当