background image

保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能
力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优
秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析
结构设计,详细设计,软件测试等。

--素质要求--

需求理解能力

程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到

软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影
响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能
说明他或许是认真工作过,但是没有用心工作。

模块化思维能力
  作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写
的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能
力的提高是一个程序员的技术水平提高的一项重要指标。

团队精神和协作能力
  团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近
三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发
财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不
夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。

文档习惯
  文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文
档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将

30%

的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。

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

测试习惯
  测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每
个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的
有针对性的异常调用测试,这一点要结合需求理解能力。

学习和总结的能力