background image

 

一、软件工程师应具备的素质

1

 

)具有扎实的计算机专业知识

这是软件工程理由能够从事软件一切工作最基本的前提,是软件工程最基本的素质,这要求软件工程师必须精通

 

高等数学、离散数学、电子学、编程语言、数据结构等课程。

2

 

)良好的语言表达能力和沟通能力

 

这是软件工程师应该具备的一个很重要的素质,因为软件工程师是为用户开发软件,常常需要直执着面对用户。

(3)

 

较强的工程经济分析能力

软件作为一个工业产品,它应当赚取足够的利润,才能软件开发公司生存下去。因此,从事软件开发的软件工程

 

师应当具有较强的工程经济分析能力,能够分析软件产品的市场前景和经济价值,并做出合理的投资效益预测。

(4)

 

健康的心理素质

开发软件本身就是一项艰苦的脑力和体力劳动,软件工程师开发成功一个软件,要经过反复修改,要花费大量的

 

进间和精力,这些都有要求软件工程师有较好的心理承受能力。

 我觉得对一个 Developer 来说最重要的能力是学习和总结的能力,新的概念和技术层出不穷,没有好的学习能
力意味着终将落伍。另一方面,虽然软件的领域很多,发展又很快,但是基础的一些东西还是十几二十年都没有
很大变化的,这就需要

Developer 在学习的过程中不断地进行总结和比较,找到变化中那些不变的东西。比方说,

一个

Java 程序员转成.net 程序员我认为有一个礼拜时间就足够了,如果做不到是因为他对 Java 的学习本就不

     

深入

    第二个重要能力是设计能力。对我们公司的 Developer 来说,语言和系统平台了解到一定程度就可以了,

没有必要过度深入下去。受限于精力,人很难做到即深且广,我认为广度比深度更加重要,我们是个开发 普通商

用软件 的公司,即便

Developer 懂得模板元编程和 Unix 内核这种东东,有多少机会能用到呢?所以语言和系

 

统学到一定程度就可以开始学习设计了。设计入手先看些

OO,UML 方面的书辑,逐渐领会设计模式和重构的价

值(这个需要一定的经验,没有足够经验打底又急于运用设计模式的程序我看过很多,大部分都看着很别扭),

     

设计的本质就是保持简单化--现在的实现要简单,应对将来的变化也能简单。

    第三个重要能力是软件工程能力,有了好的技术功底和设计知识可以称其为优秀的程序员,可还未必是个好
的软件工程师,好的软件工程师必须要懂得软件工程。这方面可以多看看

RUP 和 XP 的书辑,不过如果没有切身体

会,软工类书籍读起来往往比较空泛。从

XP 或者 PSP 入手是个比较好的学习方法,学习这些轻量级的方法然后再

     

根据实际条件应用到平时开发中,进步就会很快了

    我再补充几点:

    1。追求完美的精神,从测试驱动也好,重构也好,在我看来都是将一个软件不断趋于完美的过程。追求完

     

美,是最好的驱动力

    2。扎实的文档能力,在我看到文档的能力可以体现出一个程序员之后发展空间的大小。文档的过程就是总

     

结的过程,也是规划的过程。

    3。至少在开发的某一方面基础很扎实,的确技术发展很快,要全才很困难。但是人有个能力叫做举一反三,
或者触类旁通。

程序员是一种技术工作,在

IT 的发展中有相当重要的地位,从底层硬件通讯协议的建立,到数据传输层的处理,