`
aigo
  • 浏览: 2676281 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

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

 
阅读更多

 原文:http://www.oschina.net/translate/seven-traits-of-effective-programmers

 

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

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

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

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

 

2. 务实而不教条

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

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

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

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

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

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

4. 拥有激情

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

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

5. 将自负留在门外

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

6. 具有企业家的精神

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

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

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

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

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

一段旅程就这样结束了。。。

写这篇文章让我有点伤心。作为TechRepublic的撰稿人足足七年多了,很不幸现在却到了暂时卸下我作为自由撰稿人的身份的时候了,因为我们的全职工作真的是太忙了。就在去年,我不得不终止为10 Things blog和 Patch Tuesday series撰稿,现在由不得不停止Software Engineer blog了。

我爱我同TechRepublic在一起的每一段时光。我很高兴能够认识到各位读者、我的共同撰稿人以及TechRepublic的各位员工。我的编辑,Mary Weilage,一直都是我所写的软件工程师博客的幕后英雄。正是他才让我看上去不象是个傻瓜、呆子,他还在很多场合下帮我纠正了许多语法错误。

 

 

分享到:
评论

相关推荐

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

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

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

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

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

    以下将详细介绍高效程序员应该养成的七个习惯,这些习惯对于程序员的工作效率和质量提升有着至关重要的作用。 首先,理解需求是高效程序员工作的基础。一个程序员必须明确客户的需求,并将这些需求转化为实际的功能...

    高效程序员的10个习惯

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

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

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

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

    ### 作一个真正合格程序员的七种素质 在IT行业中,成为一名合格的程序员不仅需要扎实的技术基础,还需要一系列软技能和个人素质。以下是成为一名真正合格程序员所必备的七种关键素质。 #### 1. 团队精神和协作能力...

    程序员的八重境界

    ##### 第七重:Guru Programmer - 宗师程序员 **定义:**宗师程序员是极少数能够达到的境界。他们在技术领域达到了极致,并且具备深远的影响力。 - **特征:** - 在行业内享有极高的声誉,被视为精神领袖。 - 对...

    程序员的酒桌术语

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

    优秀程序员45个习惯

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

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

    七、技术分享:随着技术能力的提高和个人影响力的扩大,程序员开始尝试将自己的经验和心得分享给更多的人。“开始喜欢分享,开始喜欢说SDK API背后的原理。”这反映了程序员从单纯的自我提升向帮助他人转变的心态...

    程序员必备的7种武器

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

    一个创业公司程序员的自我修养-范凯.pdf

    ### 一个创业公司程序员的自我修养 #### 一、引言 随着互联网行业的快速发展,越来越多的人选择加入创业公司,特别是作为技术核心的程序员们。在这样的环境中,如何快速适应并成长成为了每个程序员面临的挑战。本文...

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

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

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

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

    程序员考核办法细则.docx

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

    程序员的岗位职责

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

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

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

    程序员表白专用代码

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

Global site tag (gtag.js) - Google Analytics