2. 模块复用性思维习惯
用户控件
组件技术
3.测试习惯
单元测试 程序员
集成测试
系统测试
稳定性测试
软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,
程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。
4.学习和总结的能力
学习:程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。
总结:善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。
5.团队精神
木桶理论
学习性组织
6.沟通能力
在软件开发过程中,不仅程序员之间要进行交流合作,程序员和销售人员、测试人员等各个部门的人、甚至客户都要沟通交流。
四、项目实践
软件工程理论
质量体系:ISO9001和CMM体系
UML基本理论
测试理论和测试工具使用
加密理论和加密方法
源代码控制工具使用
说明书编写
程序的安装和部署
高级程序员的基本素质
1. 需求分析能力
需求分析是软件开发流程中非常重要的一个环节。对于研发项目的组织和管理者来说,他们不但要理解客户需求,还要具备把用户需求转化为系统设计的能力。
2. 项目设计方法和流程处理能力
高级程序员者必须能够掌握不少于两到三种的项目设计方法(比如自顶至下的设计方法,比如快速原型法等等),并能够根据项目需求和资源搭配来选择合适的设计方法进行项目的整体设计
3. 复用设计和模块化分解能力
4. 整体项目评估能力
作为系统设计人员,必须能够从全局出发,对项目又整体的清醒认识,比如公司的资源配置是否合理和到位,比如工程进度安排是否能最大化体现效率又不至于无法按期完成。评估项目整体和各个模块的工作量,评估项目所需的资源,评估项目可能遇到的困难,都需要大量的经验积累,换言之,这是一种不断总结的累计才能达到的境界
5. 团队组织管理能力
包括工作的量化和分配能力、团队协调能力。
没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码行数可以计算的,因此要求高级程序员能真正评估一个模块的复杂性和工作量。
项目组内程序员的水平是有差距的,同时用户需求又在不断变化,高级程序员要有动态调整责权和成员工作状况的能力。