高效程序员的7个特征

有些程序员虽然具有一定的经验技巧,但是他们无法成为高效的程序员,因为他们缺乏所需要的几项特质。业内顶尖高效的程序人员都具有哪些特征呢?

1.主动学习新的技术和非技术两方面的知识

不好的程序员只有在实在不行的时候才开始进行知识学习。良好的程序员会主动学习新的技术知识。伟大的程序员不仅会自行学习新的技术知识, 而且还会学习非技术方面的知识,对各种知识来源都有一种开放的心态,而不会象有的人那样固步自封。

具体点说,不好的程序员只有在参加了采用WPF的项目时才开始学习XAML;良好的程序员一年前就学习了XAML,因为他感觉它很有意思;而伟大的程序员还阅读了WPF应用程序的设计指南、可用性(usability)理论或者什么类似的学习课程,因而他能够制作出卓尔不群的UI。

2.务实而不教条

严格遵守那些不成文的“编程规则”往往是一种奢侈品,没有多少开发人员能够承受得起。如果你们的规格说明书不是由顶尖的开发人员编写的,也不是在顶尖的开发人员指导下编写的, 我就可以向你保证,你可能也承受不起。

我经常能够碰到一些程序员,他们无法或者拒绝做某个任务只是因为完成这个任务的做法通常不为最佳实践所接受。业务需求很少会受到实现需求所采用的技术的制约;没有人会说,“这我们不应该把这个需求写到规格说明书里,因为要实现这个需求,程序员就不得不写一段很臭的代码。”

在结束的那一天,程序员的任务是要生成一个有效的应用程序,而绝不是要求在技术方面达到十全十美。我可不是在为垃圾代码做辩护。我想说的是,总会在有些时候,你会写出一些代码,这些代码你永远不会作为范例向别人展示做事的正确方法。如果只有一种写法,那么这种代码就不是糟糕的代码 —— 但要保证你已穷尽了其它所有可能的方案。

3.懂得如何通过研究找到答案

通过研究找到答案可不仅仅只是在搜索引擎中键入几个关键字那么简单, 也不是到Stack Overflow或者MSDN forums这类网站发个问题帖。我就碰到过在搜索引擎里根本搜不到答案的问题,然后我Stack Overflow 或者MSDN forums里发的所有问题贴都没有一个像样的答案,不过我还是解决了我所碰到的问题使得工作得以继续。我不是魔术师 —— 我只是懂得如何找到答案,如何找出问题的根本原因。

有许问题都属于情景式的问题,如果你依赖于搜索引擎或者论坛,就会在各种链接中浪费大量的时间而最终无法得到真正的答案。要学习如何进行根本原因分析,学习底层系统方面的知识才能够找到其它的线索和解决方案,还要学习如果在对问题有个全局性的认识后才对其进行深入分析。

4.拥有激情

不喜欢这份工作,就无法成为这个行业中的顶尖高手。倒是也有一些仅仅把编程当作一份普通工作的程序员水平也还不错,但如果你的三观就是如此的话,你就不太会愿意去做能够将你引向成功的所有事情。这个观点会使很多家伙不悦,因为他们会觉得这是一种人身侮辱。“我是一个很好的程序员,但我还有其它重要的事情要做,我不能让工作成为我人生的全部。” 我完全理解;我也有别的更重要的事情。尽管我也痛恨这么说,当我们对我的工作热情高涨之时,我愿意(虽然不是渴望)抛弃我其它更重要的事情来首先完成手头的工作。要说你不愿意全情投入就无法成为高手,不算是人身侮辱,这是事实而已。

你的激情不能仅仅只在编程一个方面 —— 你必须在你的工作、你所使用的技术、你的老板、你的项目等等方面都有激情。 我目睹过一些非常好甚至很伟大的程序员其表现平平,只是因为有一些条件不太合适。比如,他们不喜欢手头的项目,或者项目中所用的技术让他们讨厌。我曾经就是一个这样的程序员,我也同这样的程序员一起共过事。无论从哪个角度讲,我都不喜欢这样的程序员。如果你发现你的情况就是如此,就需要立即解决这个问题,要么挖掘出手头的工作或项目中有意思的地方从而能让你调整心情,要么就不要接着干了。怪不值当的。

5.将自负留在门外

许多开发人员都非常自负。仅仅是比有些人聪明、懂得多一点或者经验更丰富一点,可不是意味着和那些人相比你才是好人。你要尊重别人,真正听取并考虑别人的观点,在需要的时候向他们求助,而且还不能小瞧别人。 你还应该更加关心团队的胜败,而不是仅仅关心你在工作中的荣誉得失。

6.具有企业家的精神

最优秀的开发人员不会是游手好闲者。对他们来讲,产品的成功不仅仅意味着他们的薪水有着落了。因为他们在工作中热情饱满,他们是为了项目有更好的发展而工作,而且会一往无前。

7.测量两次,下刀一次。。。但测量不要多于三次

开发人员可能会犯的最糟糕的错误之一就是还不知道要干什么呢,就一猛子扎到代码里去了。(当他们把这种做法称作敏捷开发时情况更为糟糕,好像用敏捷两字就能让情况好转似的)。当伟大的开发人员跳进代码里去的时候,那是因为需求规格说明同他们以前实现过的某种做法十分相似。伟大的程序员在面临新问题时,他们会进行思考、计划和研究。

开发人员当中最最优秀的不会堕入“分析瘫痪者(analysis paralysis)”陷阱。他们懂得要对某些事情小心谨慎(比如涉及钱或个人数据时),只有这些特殊领域才适合我所说的“要测量三次”。任何超过三次的情况发生就意味着你在浪费你的时间(除非在鲜有的特例中,比如核反应堆、宇宙飞船、对冲基金会计系统)。

在某个特定的时间点就要停止计划,开始编码,然后再看看你的计划在哪些方面需要进行相应的调整,这一点非常重要。顺便说一下,这就是我为什么成为敏捷方法拥趸的原因之一。我所知道的最优秀的开发人员在计划不再合适或者发现计划有缺陷时,都会愿意将计划放弃掉。

推荐阅读

程序员必须注意的十大编程禁忌

解析程序员的几个成长阶段

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-27 17:36:56

高效程序员的7个特征的相关文章

高效程序员的特征:聪明,懒惰

这里我使用了聪明,懒惰和程序员这几个词.我说的这几个词的意思是: 程序员:有积极活力的,专注于用代码解决真实世界里的问题.不是指那些梦想家,那些永远只想不做的人 聪明:能够周全的思考问题(不是那些耍小聪明的人) 懒惰:就像是程序中的lazy-loading,是指延后写代码的时间(而不是无所事事的人). 正确的软件开发应该是懒惰式开发,也被称作忍耐式开发:这种开发方式的表现是,在真正动手写代码前,程序员要花大量的时间通盘考虑所有可能的解决方案和途径.这可以看作是延缓写代码,在没有完全理解问题前绝不

高效程序员的特征:聪明,懒惰(转)

这里我使用了聪明,懒惰和程序员这几个词.我说的这几个词的意思是: 程序员:有积极活力的,专注于用代码解决真实世界里的问题 不是指那些梦想家,那些永远只想不做的人 聪明:能够周全的思考问题(不是那些耍小聪明的人) 懒惰:就像是程序中的lazy-loading,是指延后写代码的时间(而不是无所事事的人). 正确的软件开发应该是懒惰式开发,也被称作忍耐式开发:这种开发方式的表现是,在真正动手写代码前,程序员要花大量的时间通盘考虑所有可能的解决方案和途径.这可以看作是延缓写代码,在没有完全理解问题前绝不

高效程序员的45个习惯

本文转载 <高效程序员的45个习惯>一书 目录 第1章 敏捷---高效软件开发之道 第2章 态度决定一切 1.做事 2.欲速则不达 3.对事不对人 4.排除万难,奋勇前进 第3章 学无止境 5.跟踪变化 6.对团队投资 7.懂得丢弃 8.打破沙锅问到底 9.把握开发节奏 第4章交付用户想要的软件 10.让客户做决定 11.让设计指导而不是操纵开发 12.合理地使用技术 13.保持可以发布 14.提早集成,频繁集成 15.提早实现自动化部署 16.使用演示获得频繁反馈 17.使用短迭代,增量发布

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

有本关于敏捷开发方面的书非常不错<高效程序员的45个习惯-敏捷开发修炼之道>,Venkat Subramaniam和Andy Hunt著,该书简短.易读.精炼.深入,深刻且实用.对于想要采用敏捷方法的人很有价值.此书通过常理和经验,阐述了为什么应该在项目中实用敏捷方法.更难得的是,这些行之有效的实战经验,竟然从一本书中得到了.如果能拿这些习惯在项目中一以贯之,肯定会受益匪浅.下本罗列该书这45个习惯,一并列出其中的Key Point. -----------------------------

《高效程序员的45个习惯:敏捷开发修炼之道》

--敏捷开发入门经典-- [内容] <高效程序员的45个习惯:敏捷开发修炼之道(修订版)>总结并生动地阐述了成为高效的开发人员所需具备的45个习惯.思想观念和方法,涵盖了软件开发进程.编程和调试工作.开发者态度.项目和团队管理以及持续学习等几方面. <高效程序员的45个习惯:敏捷开发修炼之道(修订版)>适合所有程序员阅读. [作者] Venkat Subramaniam博士: Agile Developer公司创始人,敏捷开发权威人士.他培训并指导了美国.加拿大.印度和欧洲多国的上

『阿里巴巴内部分享』高效程序员的45个习惯笔记

敏捷(agility) 1 态度决定一切 1.1 做事 - 先解决问题,再追究责任 1.2 欲速则不达 代码除了可以运行外,还要保持整洁 不要为了追赶工期而陷入简单修复的陷阱(+1/-1修复) 第三方代码除了可用外,还要知道其大体原理 要进行代码复核,保证代码质量,增加知识 1.3 对事不对人 表达观点,懂得沟通技巧 容纳自己不能接受的想法 设定deadline,确保执行力 设定仲裁者,防止决策被资深员工控制,及时制止假大空话 支持已经做出的决定 1.4 排除万难,奋勇前进 发现问题,不要试图掩

读书笔记 -《高效程序员的45个习惯-敏捷开发修炼之道》

<高效程序员的45个习惯-敏捷开发修炼之道> 一本2010年出版的书,当时敏捷还只是在国外开始流行,像我这种菜鸟级根本听都没听过.这次通读了这本书,受益良多,回顾自己的职业生涯,多是漫无目的的瞎混,为了生活而生活而已.通过这本书才算对敏捷有了初步的了解,并有意向敏捷进行实践.愿此文可结识更多敏捷的先行者,带领我进入敏捷的世界. 第一章. 敏捷--高效软件开发之道 名言:  不管路走了多远,错了就要重新返回   -- 土耳其谚语 敏捷开发宣言  个体和交互 > 过程和工具 可工作的软件 &

高效程序员的45个习惯:敏捷开发修炼之道之主题建议翻译1-10

高效程序员的45个习惯:敏捷开发修炼之道1-10 阅读本书时,总共有45个建议,每个建议有一个主题,并且每个建议有2段话,第一段话是一般人的思维,之后作者对这种思维现象进行剖析,最后得出作者自己的结论,第二段话就是作者的观点. 本次翻译,主要分为5篇来完成,前四篇每篇为10个建议,最后一个为5个建议.每次翻译的中文在上面,原版英文在最下面展示,已方便大家的对照学习. 由于个人能力有限,如有翻译不恰当之处,还请大家多多指教,给我留言,给出建议,我会更新文章,让看到文章的人员有所裨益. 后续的剩余翻

《高效程序员的45个习惯》

敏捷开发是当下最流行的开发方法,它采用的是一种以人为核心.迭代.循序渐进的开发思想,值得你关注和学习. 最近我就阅读了一本有关敏捷开发的书籍,<高效程序员的45个习惯>. 它以"举反例"的方式来讲述了敏捷开发中程序员应该运用的45个好习惯. 本书涉及到的45个习惯是: 1 做事2 欲诉则不达3 对事不对人4 排除万难,奋勇前进5 跟踪变化6 对团队投资7 懂得丢弃8 打破砂锅问到底9 把握开发节奏10 让客户做决定11 让设计指导而不是操纵开发12 合理地使用技术13 保持