`
lvwenwen
  • 浏览: 963907 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

高效程序员的 7 个共同特征

阅读更多
要想成为高效的程序员,你需要具备一定的综合素质才能够让你用你所掌握的技能、经验和知识编写出有效的代码。有一些开发人员在技术方面具备一定的技巧,但他们永远无法成为高效的程序员,就是因为他们缺乏所需的其它几项特质。本文将给出成为一个伟大的程序员所必须具备的7项特质。

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

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

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

2. 务实而不教条

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

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

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

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

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

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

4. 拥有激情

不喜欢这份工作,就无法成为这个行业中的顶尖高手。倒是也有一些仅仅把编程当作一份普通工作的程序员水平也还不错,但如果你的三观就是如此的话,你就不太会愿意去做能够将你引向成功的所有事情。

这个观点会使很多家伙不悦,因为他们会觉得这是一种人身侮辱。“我是一个很好的程序员,但我还有其它重要的事情要做,我不能让工作成为我人生的全部。”我完全理解;我也有别的更重要的事情。尽管我也痛恨这么说,当我们对我的工作热情高涨之时,我愿意(虽然不是渴望)抛弃我其它更重要的事情来首先完成手头的工作。要说你不愿意全情投入就无法成为高手,不算是人身侮辱,这是事实而已。

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

5. 将自负留在门外

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

6. 具有企业家的精神

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

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

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

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

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

英文原文:Seven traits of effective programmers / 译:oschina
分享到:
评论

相关推荐

    【高清完整pdf】高效程序员的45个习惯 敏捷开发修炼之道

    本书名为《高效程序员的45个习惯 敏捷开发修炼之道》,由Venkat Subramaniam和Andy Hunt两位作者共同撰写。书中所提到的45个习惯,不仅涉及软件开发过程、编程和调试工作,还包括了开发者的个人态度、项目和团队管理...

    高效程序员的45个习惯-读书笔记

    《高效程序员的45个习惯》一书,以其对软件开发各个方面的深入剖析,为我们展现了一条提高个人和团队生产力的光明之路。通过研读此书,并结合个人实践,提炼出的这45个习惯,不仅为个人的编程技巧提供了提升的途径,...

    高效程序猿的7个共同特征

    Justin James在文章中提出了高效程序员所应具备的七个共同特征,这些特征涵盖了学习态度、工作方法、解决问题的技巧、职业热情、团队合作精神、对技术的深入理解以及个人的进取心。 首先,高效程序员通常具有主动...

    高效程序员的10个习惯

    ### 高效程序员的10个习惯 #### 一、对事不对人 在软件开发过程中,团队成员之间经常会因为设计方案、技术选择等方面的意见不合而产生冲突。这种情况下,很容易将注意力从问题本身转移到个人身上,导致原本的技术...

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

    因此,一个高效程序员的成长离不开良好的工作习惯的培养。以下将详细介绍高效程序员应该养成的七个习惯,这些习惯对于程序员的工作效率和质量提升有着至关重要的作用。 首先,理解需求是高效程序员工作的基础。一个...

    高效程序员的10个习惯,希望对你有所帮助

    标题和描述中提到的“高效程序员的10个习惯”,实际上是在强调软件开发领域中,尤其是敏捷开发过程中,程序员应当遵循的一系列最佳实践和心态。这些习惯不仅有助于提升个人的工作效率,还能增强团队协作,最终确保...

    程序员必备的7种武器

    在IT行业中,程序员是构建数字化...这7种武器相互关联,共同构成了程序员的技能树。熟练掌握它们,不仅可以提高个人能力,也有助于团队协作和项目成功。持续学习和实践这些技能,是程序员职业生涯中不可或缺的部分。

    程序员的酒桌术语

    - **应用场景**:在团队合作中,如果两个或多个程序员需要共同解决一个棘手的技术问题,他们可能会被描述为“同床共枕”。 ##### 4. **“P2P”、“TCP”** - **含义**:“P2P”通常指的是点对点通信模式,在这里被...

    程序员的八重境界

    通过以上对《程序员的八重境界》的解读,我们可以发现,无论处于哪个阶段,每个程序员都应该清楚自己的定位和目标,并为之不懈努力。更重要的是,每个人都应该找到自己真正热爱的东西,并为之付出努力。在这个过程中...

    优秀程序员45个习惯

    【优秀程序员45个习惯】是一本旨在提升程序员专业素养的书籍,由敏捷开发领域的权威Venkat Subramaniam和Andy Hunt共同撰写。这45个习惯覆盖了态度、学习、开发流程、用户、编程以及团队协作等多个方面,旨在帮助...

    程序员九重境界,看看你到了第几重!

    六、持续学习:在这个快速变化的行业中,持续学习成为了每个程序员必备的能力。他们不断追踪最新的技术动态,努力跟上时代的步伐。“随着时间的推移,越来越觉得自己很渺小。”这句话生动地表达了程序员面对浩瀚的...

    程序员之我的奋斗 程序员之我的奋斗

    这种深度与广度的结合,可以帮助程序员在面对各种复杂问题时,都能够提出高效且优雅的解决方案。 职业规划方面,作者在毕业后拒绝了安逸的工作机会,选择了挑战更高的技术领域。这提示我们在职业规划时,应该将个人...

    作一个真正合格程序员的七种素质

    具备较强的需求理解能力可以让程序员在开发过程中更加高效地解决问题,减少返工的可能性。 #### 5. 复用性、模块化思维能力 复用性和模块化思维能力是指程序员在编写代码时考虑其可复用性和可扩展性的能力。这种...

    你是合格的程序员吗?—合格程序员应该具备的12种能力

    合格的程序员需要有想象力,能够设计出高效、可扩展且易于维护的系统。 3. **个人知识管理**:在快速发展的IT领域,持续学习和管理个人知识至关重要。这包括了解最新的编程趋势、框架和技术,以及如何有效地记录和...

    论程序员应具备的职业素质.doc

    1. **团队精神和协作能力**:无论技术水平如何,程序员都必须具备团队协作精神,因为任何复杂的项目都需要团队共同努力才能完成。像Linux这样的大型项目,正是由全球各地的开发者协同工作,通过高效的团队合作创造了...

    程序员考核办法细则.docx

    ### 程序员考核办法细则 #### 一、考核目的 本考核办法旨在通过量化与质化的评估手段,全面衡量开发工程师的工作表现,并以此作为薪资调整、职位晋升的重要依据之一,同时也为个人职业发展提供指导方向。 #### 二...

    程序员的岗位职责

    网页程序员这一职位的核心目的是为了确保公司的在线服务平台能够提供高效、稳定且用户友好的体验。具体而言,该职位需承担以下职责: - 负责公司旗下网站前后端服务功能的修改与升级。 - 保障公司软硬件平台的正常...

    程序员表白专用代码

    在IT行业中,程序员的创造力不仅限于编写复杂的算法和构建高效的应用程序,他们还善于将技术与生活结合,创造出独特的表达方式。"程序员表白专用代码"就是一个很好的例子,它利用编程语言来传达情感,给追求浪漫的...

    高效软件开发团队的特征 你能做到几点

    "高效软件开发团队的特征" 高效软件开发团队是建立在合理的...高效的开发团队需要具有明确且有挑战性的共同目标、团队具有很强的凝聚力、具有融洽的交流环境、具有共同的工作规范和框架、采用合理的开发过程等特征。

    本文详细列出了程序员的7个坏习惯以及解决方法,每个程序员都应该

    ### 程序员的七个致命坏习惯及解决之道 #### 一、代码自恋:除了我的代码,...通过持续学习、自我反省和团队协作,程序员可以转变为更高效、更负责任的专业人士。拥抱挑战,不断进步,是每位程序员追求卓越的关键。

Global site tag (gtag.js) - Google Analytics