background image

前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系
统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次
研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入

 

到创新的代码工作中去。

一些好的程序模块代码,即便是

70 年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现

在我看到的是,很多小公司软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。
 

6.

 

测试习惯

作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员
就可以不进行自测;软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,
程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样

 

对整体系统建设的效率和可靠性就有了最大的保证。

测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,
这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的
测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受
影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都需
要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性

 

的进行相关测试并尽早发现和解决问题,当然这需要上面提到的需求理解能力。

7.

 

学习和总结的能力

 

善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。

但是学习也要找对目标,一些小

coding fans 们,他们也津津乐道于他们的学习能力,一会学会了 asp,一会

儿学会了

php,一会儿学会了 jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,

做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,

 

永远不会有质的提高。

善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应

 

用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。

 

一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候马上就到了。

具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由

IQ 决定的,也不是大学某些

课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。

 

软件工程师应具有的素质

 

 

作为软件工程师,以至于系统分析员,也就是对于一个程序项目的设计者而言,需要具备以下素质:

 

第一,需求分析能力

对于软件工程师而言,理解需求就可以完成合格的代码,但是对于研发项目的组织和管理者,他们不但要理解客

 

户需求,更多时候还要自行制定一些需求,为什么这么说呢?

一般而言,进行研发任务,也许是客户提出需求,也许是市场和营销部门提出的需求,这时候对于研发部门,他
们看到的不是一个完整的需求,通常而言,该需求仅仅是一些功能上的要求,或者更正规些,可能获得一个完整
的用户视图;但是这都不够,因为客户由于非技术因素多一些,他们可能很难提出完整和清晰,或者说专业性的
性能需求,但是对于项目组织者和规划者,他必须能够清醒认识到这些需求的存在并在完成需求分析报告的时候