高效程序员应该养成的七个习惯

转载 2007年10月07日 09:56:00
        对于软件工程师来说,工作也许意味着许多东西 -- 稳定的收入、做自己感兴趣的项目、找一份更好工作的跳板,或者你只是喜欢与其他程序员共事。但说到“效率”,强调的是在一定时间内按质完成项目的能力。Phil Chu根据自己的经验提出了高效程序员应该养成的七个习惯。建议去看看作者的原文(可能需要代理才能正常访问)。

  理解你的需求

  成为一个有效率的程序员首先要知道如何正确的支配自己的时间。对时间最大的浪费莫过于去做那些没有用处或者永远不会上线的项目。而导致这种结果的根源往往是对需求理解的偏差。

要最大程度避免这种情况的发生,最好的办法是快速建模,尽可能让演示系统早点出来。对于客户来说,只有看得到摸得着的产品摆在面前,他们才会有兴趣去试用观察,才会在实际的操作中发现供需双方在需求理解上的偏差。否则即使你写上几百页的需求分析文档也只能是自己的一面之词,客户可没耐心去检查这些文档写的是否准确。

  另一方面,你应该让每一个阶段的开发成果都能够尽早的提交给客户。让他们以完全不考虑操作合理性和业务逻辑性的傻瓜级操作来发现程序员编程中的固有思维局限。尤其必须让QA尽早的介入到项目开发中来。如果能够每天提交一份测试版本给QA自然是最理想的了,但大多数项目开发做不到这样的粒度,那么就争取每周提交一份可测试版本。重要的是应该让QA和开发能够保持交错并行状态。只有这样,才能让QA尽早发现bug,降低每个bug的修复成本,同时缩减独立测试周期的跨度。

  程序员往往不愿意把半成品代码交付给测试人员,相反他们更喜欢在所有代码都完工,达到自己满意的程度之后再让别人来测试。因为在这之前的代码往往存在很多程序员自己知道需要修改(或者故意留待后续补全)的流程缺失和Bug,测试人员并不知道哪些是真正的Bug,哪些只是临时性的运行错误,每次都会一股脑儿作为Bug反馈给程序员。这往往让程序员们心烦。同时测试人员有时候也不喜欢测试这种很多分支都走不通的中间版本。

  但不管喜不喜欢,测试并发现问题是测试人员的工作;程序员则应该认识到,Bug反馈得越早就越是件好事情。QA和开发之间的关系往往很敌对,可实际上双方的目标是一致的。“忠言逆耳”古训有之,对于程序员来说就应该“有则改之,无则加勉”。总好过项目完成之后才发现一堆的问题,到那时候再要做修改,基本上都会牵一发而动全身,痛苦的还是程序员自己。

  保持真实性

  尽可能让你的系统运行在最接近真实环境配置下面,使用有实际意义的数据和真实的编译版本,并经常性进行模块整合。如果你的测试环境使用的数据都是些胡乱添加的东西,那么将来和测试数据大相径庭的真实数据这块大冰山早晚会撞沉你的程序。另一方面如果你只在开发环境来编译运行测试,会发现正式发布之后有各种各样莫名其妙的问题产生,到最后原来都是因为环境配置与开发环境有些不起眼的差异所导致。把所有模块整合进行编译联调,看上去应该是最后作的一项附加工作,但实际上这是一项需要在开发过程中经常性进行的工作。只有这样QA才能有最完整的东西拿来测试,得到更多的Bug反馈,同时降低模块整合的难度。

  理解你的代码

  书写规范的代码,并保持代码的整洁。Coding是一门艺术。正如写作一样,同样的文字在文豪的笔下就能够熠熠生辉,读起来赏心悦目;在普通人的笔下大概就只是词能达意的效果了;在某些人的笔下或许就需要研究半天才能猜出个大概来。当然不可能人人都成为艺术家,但至少你可以学会欣赏艺术、学习艺术。书写漂亮的代码是对自己工作的尊重,也是对其他程序员的尊重。如果你的代码中间充斥着大段过时的注释、可读性差的变量/函数,怎么去要求别人或者自己以后能够理解它们?

  最优编程

  把你的时间花在代码的功能上, 而不是去把现有的代码改得对自己胃口(尤其对于那些copy/paste过来的代码);要找到系统的瓶颈进行优化,而不是对那些无益于系统整体性能提高的地方做无用功。

  管理好你自己

  也许有人会说计划和进度控制是PM的事情,但一个好的程序员应该比PM更了解自己目前工作的进度。不论上头给的进度计划是否合理,你都应该有自己的原则和概念,清楚知道每天该做什么怎么去做。

  持续教育

  只有不断的学习、实践、犯错误,你才会真正有所提高。在我看来,对于程序员来说最好的老师不在学校,而在书本、网络、社区。学会自我学习才能保持与时俱进。

  R-E-S-P-E-C-T

  互相尊重是一切的基础。 
 

高效程序员应该养成的七个习惯

对于软件工程师来说,工作也许意味着许多东西 -- 稳定的收入、做自己感兴趣的项目、找一份更好工作的跳板,或者你只是喜欢与其他程序员共事。但说到“效率”,强调的是在一定时间内按质完成项目的能力。Phil...
  • xuejinyoulan
  • xuejinyoulan
  • 2007年11月20日 11:57
  • 1378

高效程序员应该养成的七个习惯

  对于软件工程师来说,工作也许意味着许多东西 -- 稳定的收入、做自己感兴趣的项目、找一份更好工作的跳板,或者你只是喜欢与其他程序员共事。但说到“效率”...
  • hongyu6
  • hongyu6
  • 2006年12月01日 19:04
  • 643

高效程序员应该养成的七个习惯

        对于软件工程师来说,工作也许意味着许多东西 -- 稳定的收入、做自己感兴趣的项目、找一份更好工作的跳板,或者你只是喜欢与其他程序员共事。但说到“效率”,强调的是在一定时间内按质完成项目...
  • wygyhm
  • wygyhm
  • 2008年01月10日 08:31
  • 274

高效能人士的七个习惯笔记

习惯是知识、技巧和意愿的交叉点。知识是做什么和
  • u011014707
  • u011014707
  • 2014年07月17日 16:27
  • 2282

高效能人士的七个习惯——习惯一:积极主动

我以前所理解积极主动是,做事的时候表现的非常积极,主动去做一些事情而不是等着领导分配任务才去开始。这是比较狭隘的一种理解。积极主动不仅仅指行事态度,还意味着人一定要为自己的人生负责。它强调的是:个人行...
  • Excaliburace
  • Excaliburace
  • 2016年05月23日 08:19
  • 1025

高效能人士的七个习惯总结

习惯一:积极主动 习惯二:以始为终 习惯三:要事第一 习惯四:双赢思维                                 ...
  • u012017783
  • u012017783
  • 2017年06月16日 17:10
  • 807

《高效能人士的七个习惯》读后感

入职前应组织要求粗略阅读了《高效能认识的起个习惯》一书。刚写完第一句话,就感觉出自己目前显然还不能算是一个高效能人士,因为七习惯的第一个即是要【积极主动】,而不是被动接受。但是暴露不足,才能自省,自省...
  • wwHRestarting
  • wwHRestarting
  • 2016年07月06日 17:50
  • 1083

笔记:《高效能人士的七个习惯》第六章 人际关系的本质

1、所谓情感帐户,储存的是增进人际关系不可或缺的“信赖”,也就是他人与你相处时的一份“安全感”。能够增加情感帐户存款的,是礼貌、诚实、仁慈与信用。 2、没有信任就谈不上友谊,没有诚实也就谈不上信任。...
  • icamera0
  • icamera0
  • 2016年01月13日 23:09
  • 892

学习笔记之《高效程序员的45个习惯》

有本关于敏捷开发方面的书非常不错《高效程序员的45个习惯-敏捷开发修炼之道》,Venkat Subramaniam和Andy Hunt著,该书简短、易读、精炼、深入,深刻且实用。对于想要采用敏捷方法的...
  • Jerry_1126
  • Jerry_1126
  • 2015年04月25日 21:29
  • 2432

《高效能人士的七个习惯》总结

在网上看到这本书的时候,一直以为就只有短短几句话而已,前几天工资总监也向大家推荐了这本书,网上再搜了一下,没想到是一本足足有将近300页的书。看了一下书评,确实很高,一下子来了阅读的兴趣。 作者在正...
  • wiesin
  • wiesin
  • 2013年06月30日 17:38
  • 2313
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:高效程序员应该养成的七个习惯
举报原因:
原因补充:

(最多只允许输入30个字)