熟练人员 |
一般的开发人员 |
我 (2009.8) |
经过多年的积累加上自己的CodeSnip 的总结,基本不用额外再查找资料。 |
在开发过程中会花掉 10-20% 时间去查找资料。 |
有一定的积累,但没有养成良好的习惯,总要花时间找资料。 |
注意代码复用,并且时刻注意重构和抽取公用代码。 |
一般开发人员是代码拷来拷去完成功能。 |
开始注意复用以及重构,但总有吃力的感觉。 |
非常注意查找,定位,标签等各种快捷键的使用,定位查找方便快捷, IDE 环境也根据习惯定义到最方便状态。 |
|
懂得使用常用的工具 |
编码前先思考清楚整个流程,在头脑或纸张上规划好整个实现方式和方法函数的划分。 |
想到哪里写到哪里。 |
在面对较大工程时,很难在遍码前将整个流程考清楚 |
写了 50 行以上或更多代码才 Debug 一两次。 |
写了几行代码就要 Debug多次,完全通过 Debug 来验证代码正确性。 |
习惯于 Debug ,还没养成常思考的习惯 |
注重代码的质量,单元测试和可维护性,注重各种业务逻辑的验证和边界条件的校验。 |
只注重简单功能的简单完成。 |
开始注意代码的质量,单元测试和可维护性,但总会考虑不周 |
提交测试的代码 BUG 很少,返工工作量很小。 |
由于自测不完善 BUG 较多,造成大量的返工工作量。 |
BUG 较少 |
合理分配自己的时间,规划好每天工作任务,开发过程各位专注。 |
一心多用,边开发边聊 Q。 |
几乎没有规划 |
善于知识的总结和积累,形成自我的知识库和经验库。 |
则不善于这种总结。 |
经常总结 |
善于发现问题,分析不足而自我持续改进。 |
在外力干预下被动改进。 |
主动发现问题,但改进较少 |
熟练开发人员开发重点已经专业到对业务的深刻理解。 |
考虑的是开发上编程的语言和工具。 |
都有考虑 |
善于从各种影响自己开发效率的因素中挤时间,善于使用各种辅助开发工具。 |
|
有一定的经验 |
以上只是作出了比较,说明了好坏,那么你是否有想以下问题:
怎样才能提高效率?
我想来想去,就有一个结论:工作之余要多看优秀的代码和设计,并且多思考、多总结。
为什么工作的时候就不能做这些事呢?因为工作的时候来不及做了。如果说商场如战场,那么办公室就是程序员的战场,战场上都是性命相博的,哪有那么多时间来想那么多事啊!做软件开发其实也类似,每天8个小时感觉是不够的,如果把这些时间都花在学习,总结上,那么完成工作任务的时间就被占用了,这样就很难按时完成项目了。
实际情况是这样的:总会在开发过程中遇到形形式式的难题,我们要花不少时间来解决这些问题,如果能够解决那就演化成常见的软件延迟发布(这样的例子有无数),不能够解决的就成了烂尾工程(这种情况也很多)。
回到之前的结论,我必须在平时就做足准备,这样在工作的时候才能游刃有余。要知道,领导们可能在某天突然跟你说:客户们提出这样的要求,某某项目要在3个星期内完成。
工欲善其事,必先利其器。所以,要在项目之前做足工夫;磨刀不误砍材工。所以,我们又不能使用工作的时间来学习,实际上,工作的时间总让人觉得不足。其实,软件行业的加班文化是有其根源的,程序员花了大量时间来解决难题,而项目完成之后就把它一扔。下一个项目只是再次做这个循环而已。
最后一句:好枪需要经常用,好的身体需要天天运动,好的大脑需要常常思考,优秀的程序员要经常"加班"。