卓越程序员和优秀程序员有哪些区别?这个问题来自Quora。本文摘编了两个热门回复。
Russel Simmons(Yelp 前CTO & 联合发起人)2.5k赞
对这个问题来说,我的答案不具有普遍性,但是我确实注意到在一些卓越的程序员身上有一些不凡的品质。
- 能够在完美主义和实用主义之间找到平衡——卓越的程序员既能够做出熟练、快速但是劣迹斑斑的解决方案,也能用简洁、优雅并且健壮的方法解决问题,他们能够明智地选择适合于所给问题的解决方法。一些稍欠火候的程序员看起来缺少对于必要细节的极致追求。另一些则被困在完美主义者模式中。
- 乐意进行调试与Bug修正——平庸的程序员经常对调试感到厌恶和恐惧,即便是他们自己的代码也是如此。卓越的程序员则会以丘吉尔般的坚韧潜入和深挖。如果最终证明bug在他们自己的代码之外,他们可能也不会对此感到高兴,但是一定会找到它。
- 良性的怀疑态度——一个优秀的程序员会得出一个看起来可行的解决方案后收工。但是一个卓越的程序员直到进行了大量的测试之后才会相信他们自己的代码。这在数据分析和系统管理中也很常见。普通程序员可能在看到一个看似无害的不符合之处时,并不在意。如果一个卓越的程序员看到同样的东西,他就会怀疑这可能是造成更大问题的导火索,并且深入研究。卓越的程序员总是倾向于做更多的事。
Davin Lafon, 1.4 k 赞
1.优秀的程序员会写自己必须写的代码,而卓越的程序员还会写自己本不需要写的代码。
2.从代码的行数来讲,成为卓越的程序员并不是意味着他们可以多快地写出一个代码库,而是可以多快地在不丢弃功能和性能的条件下缩减其代码。
3.如果你开始跟他们争论“最好的编程语言是什么”这个问题,他们会微笑着还是看起来厌烦地换个话题?或者他们开始向你喋喋不休地讲述?如果是最后一种,那他就不是一个卓越的工程师。
4.与代码或者语言无关。也与“痴迷”、“诀窍”、“天赋”或者其他任何装逼术语无关。很简单地——他们是否对软件工程的理解超越了代码的级别?他们是否对软件工程的理解达到了架构级别?或者他们是否能够深谋远虑?他们能否在对问题的数学抽象和和软件工程之间平滑地转化?他们能够和股东工作并且理解他们对于系统的需求吗?还是他们开发出自己想要编写的系统,然后认为这就是你真正应该想要的系统?有人可以成为卓越的黑客或者程序员,但那并不意味着他是一个卓越的软件工程师。我这么说并没有用来价值衡量——一个卓越的程序员的确就是一个卓越的程序员…但是你毕竟不能让一个天才焊接工去设计一座桥。
5.当其他人都在屋子里迷恋某个解决方案或者新的东西时他们能否“发现缺陷”,更甚,他们是否能用他们能听懂的方式向屋子里的人解释这个重要的缺陷。
6.能否倾听?如果不能,那就不是卓越的软件工程师。
相关推荐
”然而,在早期,由于计算机行业的快速发展和技术的不断进步,很多非计算机专业的人员也加入了编程的大军,这些人往往凭借着自己的热情和努力,成为了优秀的程序员。 #### 三、程序员的特点与心态 程序员群体拥有...
这类程序员通常有深厚的编程功底和良好的审美观,能够打造出令人赞叹的软件产品。 二流程序员的境界在于沟通和性格。他们具备优秀的团队协作能力,能够有效地与同事、上级和客户进行交流,理解并满足各方需求。他们...
这类职位要求从业者具备敏锐的洞察力和卓越的问题解决能力,能够在复杂的业务环境中提供有价值的意见和支持。 ### 总结 总之,程序员的职业发展道路非常宽广,可以根据个人的兴趣、能力和职业规划来选择适合自己的...
本文从一名程序员的角度出发,分享了对于“程序员”这一职业的理解和个人感悟,并提出了几个重要的基本素质:认真负责、坚持上进以及良好的表达沟通能力。 #### 认真负责 作为一名程序员,认真负责是最基本的要求...
从给定的文件信息中,我们可以提炼出一系列与C程序员成长相关的知识点,这些知识点对于初学者尤其具有指导意义。...希望这份成长计划能为每一位致力于成为优秀C程序员的朋友提供有益的指导和启示。
- 对数据结构、算法、操作系统和计算机网络有一定理解,这是成为一名优秀程序员的基础。 5. **绘图与设计技能**: - 精通AutoCAD绘图,能用Solidworks建立三维模型,熟悉机械设计流程,这表明他在机械设计领域有...
《卓有成效的程序员》这本书聚焦于如何提升程序员的工作效率和产出质量,通过分享实践经验和深入探讨编程工具的使用,帮助读者成为一名更优秀的开发者。标签“源码”和“工具”提示我们,这本书将深入讨论代码管理和...
高效能程序员的修炼(中文版)pdf part3,Jeff Atwood著,很清晰哦
【程序员成长路线】是一个关于个人在IT行业中从入门到卓越的详细发展路径的讨论。...在这个过程中,不断反思、迭代和调整个人成长计划,将有助于程序员在IT行业中稳步前行,实现从入门到卓越的转变。
标题和描述中的知识点主要围绕着IT行业的核心领域——软件开发,特别是从个人角度出发,探讨了成为一名合格且优秀的程序员所需要具备的素质、态度以及必备的知识体系。以下是对这些知识点的详细解析: ### 一、软件...
【程序员的成长之路】 成为一个伟大的程序员并非一蹴而就,它涉及到持续的学习、坚持正确的实践、勇于面对挑战以及...这需要时间和经验的积累,但只要保持对技术的热情和对卓越的追求,任何人都有可能达到这个目标。
最后,疯狂程序员具备优秀的软技能,如沟通、协作和问题解决能力。他们能够有效地与团队成员、产品经理、设计师等进行沟通,理解需求,提出解决方案。 综上所述,"疯狂程序员"不仅是一个标签,更是一种追求卓越的...
1. **编程思维**:书中可能会涵盖如何培养和提升编程思维,包括逻辑分析、问题解决和抽象思维能力,这些都是成为一名优秀程序员的基础。 2. **软件工程原理**:理解软件开发的生命周期,包括需求分析、设计、编码、...
《程序员羊皮卷》是一本深受程序员群体喜爱的...它鼓励程序员追求卓越,不仅仅是在技术层面,更是在职业素养和个人发展上。阅读这本书,就像是翻阅一本程序员的智慧宝典,帮助你在这个充满挑战和机遇的行业中走得更远。
总之,程序员钻研技术的目的多种多样,既有物质层面的追求,也有精神层面的满足,涵盖金钱、权力、名誉、尊重、自由、全面发展和个人价值的实现等多个方面。在这个过程中,他们不断提升自我,适应快速变化的科技环境...
优秀的架构师不仅要具备深厚的技术功底,还需要有卓越的沟通技巧,以便将复杂的系统设计转化为易于理解的方案,并协调各个开发团队的工作。 【编程技能的重要性】 尽管架构师的工作更多地涉及到系统设计和决策,但...
在编程世界中,C#是一种广泛使用的面向对象的编程语言,尤其在开发Windows应用程序、游戏以及Web服务方面表现卓越。...通过实践,你将更好地掌握C#语言,提升自己的编程技能,为成为一名优秀的程序员奠定坚实基础。
在IT行业中,成为一名优秀的程序员不仅需要扎实的技术基础,还需要具备良好的职业素养和持续学习的习惯。在《第2章 做好程序员》中,我们深入探讨了如何在编程世界里不断提升自我,成为一名卓越的开发者。 首先,让...