卓越程序员和优秀程序员有哪些区别(转)

add by zhj:  有两条非常受用,第一条:能够在完美主义和实用主义之间找到平衡。第二条:他们是否对软件工程的理解超越了代码的级别?他们是否对软件工程的理解达到了架构级别?或者他们是否能够深谋远虑?

对于第一条,非常有感触,因为我之前一直在追求完美,为此做事效率很低,好的程度员一定是能在完美主义和实用主义之间找到平衡的程序员。第二条,非常棒,他告诉我们不想当将军的士兵不是好士兵,如果当一辈子程序员,那一辈子就只能在最底层工作,只有站的高才能看的远,你必须要跳出程序员那一亩三分地,从更高的角度如架构师的角度来看问题,来研究问题,这样你才能有所突破,自己的薪水和能力才会有更大的提升。

本文由 伯乐在线 - alexxxx 翻译,Justin Wu 校稿。未经许可,禁止转载!
英文出处:Quora。欢迎加入翻译小组

伯乐在线导读:「卓越程序员和优秀程序员有哪些区别?」这个问题来自 Quora。本文摘编了两个热门回复。


Russel Simmons (Yelp 前 CTO & 联合发起人)2.5 k 赞

对这个问题来说,我的答案不具有普遍性,但是我确实注意到在一些卓越的程序员身上有一些不凡的品质。

  • 能够在完美主义和实用主义之间找到平衡——卓越的程序员既能够做出熟练、快速但是劣迹斑斑的解决方案,也能用简洁、优雅并且健壮的方法解决问题,他们能够明智地选择适合于所给问题的解决方法。一些稍欠火候的程序员看起来缺少对于必要细节的极致追求。另一些则被困在完美主义者模式中。
  • 乐意进行调试与Bug修正——平庸的程序员经常对调试感到厌恶和恐惧,即便是他们自己的代码也是如此。卓越的程序员则会以丘吉尔般的坚韧潜入和深挖。如果最终证明bug在他们自己的代码之外,他们可能也不会对此感到高兴,但是一定会找到它。
  • 良性的怀疑态度——一个优秀的程序员会得出一个看起来可行的解决方案后收工。但是一个卓越的程序员直到进行了大量的测试之后才会相信他们自己的代码。这在数据分析和系统管理中也很常见。普通程序员可能在看到一个看似无害的不符合之处时,并不在意。如果一个卓越的程序员看到同样的东西,他就会怀疑这可能是造成更大问题的导火索,并且深入研究。卓越的程序员总是倾向于做更多的事。

Davin Lafon ,1.4 k 赞

1.优秀的程序员会写自己必须写的代码,而卓越的程序员还会写自己本不需要写的代码。

2.从代码的行数来讲,成为卓越的程序员并不是意味着他们可以多快地写出一个代码库,而是可以多快地在不丢弃功能和性能的条件下缩减其代码。

3.如果你开始跟他们争论“最好的编程语言是什么”这个问题,他们会微笑着还是看起来厌烦地换个话题?或者他们开始向你喋喋不休地讲述?如果是最后一种,那他就不是一个卓越的工程师。

4.与代码或者语言无关。也与“痴迷”、“诀窍”、“天赋”或者其他任何装逼术语无关。很简单地——他们是否对软件工程的理解超越了代码的级别?他们是否对软件工程的理解达到了架构级别?或者他们是否能够深谋远虑?他们能否在对问题的数学抽象和和软件工程之间平滑地转化?他们能够和股东工作并且理解他们对于系统的需求吗?还是他们开发出自己想要编写的系统,然后认为这就是你真正应该想要的系统?有人可以成为卓越的黑客或者程序员,但那并不意味着他是一个卓越的软件工程师。我这么说并没有用来价值衡量——一个卓越的程序员的确就是一个卓越的程序员…但是你毕竟不能让一个天才焊接工去设计一座桥。

5.当其他人都在屋子里迷恋某个解决方案或者新的东西时他们能否“发现缺陷”,更甚,他们是否能用他们能听懂的方式向屋子里的人解释这个重要的缺陷。

6.能否倾听?如果不能,那就不是卓越的软件工程师。

关于作者: alexxxx

时间: 2024-09-30 05:46:38

卓越程序员和优秀程序员有哪些区别(转)的相关文章

卓越程序员和优秀程序员有哪些区别?

能够在完美主义和实用主义之间找到平衡——卓越的程序员既能够做出熟练.快速但是劣迹斑斑的解决方案,也能用简洁.优雅并且健壮的方法解决问题,他们能够明智地选择适合于所给问题的解决方法.一些稍欠火候的程序员看起来缺少对于必要细节的极致追求.另一些则被困在完美主义者模式中.乐意进行调试与Bug修正——平庸的程序员经常对调试感到厌恶和恐惧,即便是他们自己的代码也是如此.卓越的程序员则会以丘吉尔般的坚韧潜入和深挖.如果最终证明bug在他们自己的代码之外,他们可能也不会对此感到高兴,但是一定会找到它. 良性的

优秀程序员因何而优秀?

这些年我曾和很多程序员一起工作,他们之中的一些人非常厉害,而另一些人显得平庸.不久前因为和一些技术非常熟练的程序员工作感觉很愉快,我花了一些时间在考虑我佩服他们什么呢?什么原因让优秀的程序员那么优秀,糟糕的程序员那么糟糕?简而言之,什么原因成就了一位优秀的程序员呢? 根据我的经验,成为一个优秀程序员同年龄,教育程度,还有和你赚多少钱没有任何关系.关键在于你的做法,更深入地说,就是你的想法.我注意到我所钦佩的程序员都有一些相似习惯.不是他们所选语言的知识,也不是对数据结构和算法的深入理解,甚至不是

优秀程序猿因何而优秀?

这些年我曾和非常多程序猿一起工作,他们之中的一些人非常厉害,而还有一些人显得平凡. 不久前由于和一些技术非常熟练的程序猿工作感觉非常愉快,我花了一些时间在考虑我佩服他们什么呢?什么原因让优秀的程序猿那么优秀,糟糕的程序猿那么糟糕?简而言之,什么原因成就了一位优秀的程序猿呢? 依据我的经验,成为一个优秀程序猿同年龄.教育程度,还有和你赚多少钱没有不论什么关系. 关键在于你的做法,更深入地说,就是你的想法.我注意到我所钦佩的程序猿都有一些相似习惯.不是他们所选语言的知识.也不是对数据结构和算法的深入

程序员从优秀到卓越的几点建议

和其他技术一样,编程也有层次阶段之分——业余爱好者.普通级别和专家级别.关于这个问题我问过很多很多次—— 如何从优秀到卓越?这是一个程序员应该扪心自问的最重要的问题.至少,在他们职业生涯的某些时候. 为了给出一个令人满意的答案,让我们先来讨论一下何为“专家”.特别是在软件工程中. 专家能为疑难问题想出明显又简单的解决方案. 当答案并不显而易见的时候,他们知道去哪里找答案以及如何找答案. 他们能够更深层次地理解事物.因为理解透彻,所以他们能解释每个底层的抽象层面.虽然说没有必要了解太多的层面,但理

程序员老司机谈到的一位优秀程序员应该具备的十个优秀的习惯

在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer).经过一段时间后,这些人也许能够成为一个优秀的编码人员,他们会非常熟悉如何用计算机语言来完成自己的工作.但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需要注意,如果你能让下面十个条目成为你的习惯,那么你才能真正算得上是优秀程序员. 1. 学无止境.就算是你有了10年以上的程序员经历,你也得要

优秀程序员的10个习惯

在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer).经过一段时间后,这些人也许能够成为一个优秀的编码人员,他们会非常熟悉如何用计算机语言来完成自己的工作.但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需要注意,如果你能让下面十个条目成为你的习惯,那么你才能真正算得上是优秀程序员. 1. 学无止境. 就算是你有了10年以上的程序员经历,你也得

优秀程序员必备的23条好习惯

这一点错,那一点错,错到一起就是大错.--<我是特种兵之利刃出鞘> 编程是一项聪明人玩的游戏,它既是对智力的考验,也是对习惯的考验,智力的好坏取决于父母的基因,人们无从左右,但习惯的好坏却是可以不断培养.一项由美国芝加哥大学国家研究组织进行的综合社会调查,公布了"十大最痛苦工作"排行榜,其中IT主管成了最让人痛苦的职业.程序员如何才能让自己的"痛苦"的职业不那么痛苦呢? 世间少有天才,所谓天才,只不过是把别人喝咖啡的功夫都用在工作上了.所以,对于绝大多数

成为优秀程序员的10个有效方法

一个优秀的程序员就是那种即使是过单行道都要往两边看的人.——Doug Linder 作为一个在IT行业的软件程序员,每天促使我去上班的动力就是对编程的乐趣和激情.但是为了激发乐趣并获得永恒的快感,我们需要学习和遵守一些基础知识以成为一名优秀的程序员. 当然我总结的这些东西没有那么神,你说你要想学了之后就一定可以成为优秀程序员,那是不可能的.这只是从我的经验角度出发提供的一些捷径.对于优秀程序员的定义,此处可以理解为能开发出超棒的IT解决方案并且能促进行业整体发展的程序员. 1.掌握基础知识 不管

优秀程序员的七大特征(转)

世界上的很多事情都是有规律的,就像 <高效能人士的七个习惯>,优秀的程序员也有七个主要特征.这些特征有些是先天具备的,也就是天赋,但有些是在日常的编程工作中学习.进步.积累.总结获得的.每个程序员都想知道自己是不是一个优秀的程序员,那么,就参考一下下面这7条,看看自己是否达到了做一个优秀程序员的标准. 1.喜欢帮助他人,照顾比自己差的程序员 程序员的脾气通常很大,常常会和客户.同事,甚至老板在程序问题上发生争执.优秀的程序员能够站在对方的立场上想问题,能理解客户的无知.初级程序员的无能.老板的