攻城狮就是工程师,在互联网时代,对电脑程序员的一种调侃,对码农一种自嘲。
电脑程序员(码农)
程序员,俗称码农,是专门从事电脑程序开发,维护的专业人员。在我天朝,要成为一个具有中国特色的合格程序员,应该具有以下一些素质。
团队精神(TeamWork)
现代商业社会,各行各业都需要团队精神,而团队精神是一个程序员必备的最最基本的素质。随着如今,软件,规模越来越大,软件开发不再是编程,而是工程。像求伯君那样特立独行写出的wps时代,已经一去不复返。于是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
文档习惯
没有文字,没有书籍,人类灿烂辉煌的历史无法传承。同样,没有文档,一个软件系统就失去本身生命力。文档就是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
规范化代码编写
好的软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,这不是一名合格的程序员。
需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
模块化思维能力
作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。对于测试,请看我的文章《战斗bug技巧全攻略》。程序员有个424原则,40%时间用于设计,20%时间用于编码,40%时间用于测试。可见,测试对于程序员是何种重要。
学习和总结能力
程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员、项目经理。
工程师特点
作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质: 1、 需求分析能力 2、 整体框架能力 3、
流程处理能力 4、 模块分解能力 5、 整体项目评估能力 6、 团队组织管理能力
攻城狮,攻,就是要攻需求,把每个需求理解透彻,就是要攻bug,使每行代码都很健壮。就是要攻技术难点,一切技术bug应该不阻碍你攀登程序金字塔尖的绊脚石。让我们,以我们热情,把程序变成一门艺术吧。