程序人生之软件工程师应具备的素质技能
程序人生之软件工程师应具备的素质技能
序号 | 技能项 | 说明 |
---|---|---|
1 | 写文档和注释的习惯 |
优秀程序员是非常注重注释和文档的编写的; 作为程序员,30%的工作时间用来写注释和技术文档是很正常的,而作为高级程序员和系统分析师,这个比例还要高很多。 |
2 | 模块复用性思维习惯 | 软件最大的优点是能够复用,因此程序员在完成任何一个模块或者功能时,不要局限于完成当前的任务,要多思考一些,想想这个模块或功能是否可以脱离这个系统,是否可以重复使用。 |
3 | 测试习惯 | 程序员在编码接口的测试工作将会大大提高系统的可靠性。任何编码阶段的疏忽都会带给后续阶段几倍甚至几十倍的解决代价,程序员应在编码之后完成所写代码的白盒测试与黑盒测试。 |
4 | 学习与总结的习惯 |
现代社会,技术的发展日新月异,程序员是很容易落伍的职业。 养成学习总结的习惯,不断提升自己技能,程序员才能跟得上时代的步伐,不至于被行业淘汰。 |
5 | 团队精神 |
现代的软件开发往往是由一个团队共同完成的。 独立承担自己的工作任务、遵守共同的编码规范、书写规范化的代码、协助其他成员完成任务、代码评审指出其他成员的代码问题等等都是团队精神的体现。 |
6 | 沟通能力 | 在软件开发过程中,不仅是程序员之间要进行交流合作,程序员也可能要与产品人员,测试人员,运维人员,销售人员等其他各个部门的人沟通交流。 |
序号 | 技能项 | 说明 |
---|---|---|
1 | 需求分析能力 | 需求分析是软件开发流程中非常重要的一个环节。对与研发项目的组织和管理者来说,他们不但要理解客户的需求,还要具备把用户需求转化为系统设计的能力。 |
2 | 系统设计能力 | 高级程序员必须能够掌握不少于两种的项目设计方法(比如自顶至下的设计方法,比如快速原型法等),并能够根据项目需求和资源搭配来选择合适的设计方法进行项目的整体设计。 |
3 | 模块分解能力 | 高级程序员要有能够把整体系统进行模块化分解的能力,同时还要对分解产生模块的复用性进行考虑,尽量提供能够共用的接口或方法。 |
4 | 整体项目评估能力 | 作为高级程序员,必须能够从全局出发,对项目有整体的清醒认识,包括评估项目整体和各个模块的工作量、评估项目所需的资源等。 |
5 | 项目组织能力 | 包括工作的量化和分配能力、团队协作能力。没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码行数可以计算的,因此要求高级程序员能真正评估一个模块的复杂性和工作量。项目组内程序员的水平是有差距的,同时用户需求又在不断的变化,高级程序员要有动态调整责权和成员工作状态的能力。 |