【外评】如何成为最优秀的程序员
伟大的程序员不是天生的,而是后天造就的。
Daniel Terhorst-North 在布达佩斯举行的 Craft 会议上更详细地解释了他所说的 “他认识的最好的程序员 “的含义。
他的演讲灵感来自于他在 Twitter 上撰写的一条关于最佳程序员品质的话题,这条话题引起了病毒式传播。丹的一篇关于 “他认识的最差程序员 “的博文,实际上是关于衡量开发人员工作效率的荒谬之处,也引起了热议,但这是另一个故事了。
他所说的最好的程序员是一个真实的人;他认识这个人已经有 20 多年了。而这个人之所以是最好的程序员,并不是因为他们最擅长解决 LeetCode 或最擅长解决算法问题(丹说,这些程序员将首先被 人工智能取代)。
丹说,他认识的那位最佳程序员并没有计算机科学学位,但他并不因此而成为最佳程序员。其他一些最好的程序员也有学位。丹所说的这位最佳程序员恰好也是男性,但这也不是他成为最佳程序员的原因。有些最好的程序员是女性。
但为什么他是最好的程序员呢?
正如丹所说,最优秀的程序员都拥有永不满足的好奇心,并坚信他们可以说服计算机做任何事情。他们对语言和工具的狂热也是健康的。
以下是丹所指出的使程序员成为最佳程序员的特征和工作方式:
完成工作
程序员的工作就是完成任务。 如果不能完成任务,再优秀的程序员也没用!
1.1.立即开始
最好的程序员不会一开始就对手头的问题做大量研究,阅读教程等。他只是开始,即使他并不了解任务的所有情况。他只做一件事,如果不成功,他就尝试其他方法。
他抵制拖延的冲动,知道做(和做错)就是研究!
1.2.知道自己不知道
大多数人都想做一件事,但前提是自己能做好。我们害怕暴露自己不擅长某件事情。最优秀的程序员知道,这只是自我感觉良好,他们不必每次都做得很好或很正确。他们写代码的座右铭是:’如果不好,我就重写!’。
1.3 疯狂迭代
他们对尝试、失败、学习和重复充满信心。而且是反复尝试。
写出你能写出的最好的代码,因为你知道有一半的代码下周将不复存在(但还有一半会存在,所以不要写垃圾代码!)。
1.4 构建产品
最优秀的程序员都知道,他的工作不是展示软件工艺或构建精美的软件。他们的工作是构建产品!
这就是为什么他们对自己编写的代码没有感情,而是对结果有感情。他们投入的是结果,是他们构建的产品;代码只是实现这一目的的手段。
最好的程序员在构建产品时,会对最终用户的问题感兴趣。如果他要为护士打造一款产品,他会去观察她们,与她们交谈,然后将这些发现用代码表现出来。
1.5.解决当前问题
最好的程序员解决的是真正的问题,而不是某个花哨的通用版本。他们要学会看到真正的问题所在,并在第一时间进行开发。
选择正确的工具
丹承认,他彻底改变了对如何选择合适的技术栈/工具的看法,这花了他一段时间。现在,他认为最好的开发人员会选择适合工作的工具,即使他们以前从未使用过该工具。
2.1.团队可以学习
为产品选择合适的工具,而不是为团队选择合适的工具。如果团队只知道 Java,那么选择在项目中使用 Java 就很容易。团队是可以学习的,他们并不是生来就会 Java。优秀的开发人员会找出学习工具的投资是否值得,从而以正确的方式解决问题。
为什么这一点如此重要?因为代码的寿命会超过团队和组织。
2.2.做最简单的事,而不是最容易的事
要知道,这是不一样的。最优秀的程序员不会写最容易写的代码;他写的代码简单明了,便于日后修改。
2.3 正确的工具可能会改变
优秀程序员编写的代码易于分解、重组和重写。正如 Kent Beck 所说–让修改变得简单,然后再进行简单的修改。
你可以通过最小化爆炸半径、编写小型、自成一体的黑客程序,以及使用可堆肥、易于丢弃的材料来实现轻松更改。
2.4 成为多面手
探索语言、工具和范式至关重要,这不是为了成为一个无所不知的 Leetcode 聪明人,而是为了获得不同的视角和观点。尝试黑客马拉松和 “代码降临 “之类的挑战!你体验和使用的东西越多,就越善于选择正确的工具。
成为一名全栈开发人员!无论是前端、应用程序接口(API)还是架构,你都要对所有能造就优秀网页的东西充满好奇心。
真正的全栈!努力学习流程、业务或硬件方面的知识。
关心团队
没有一个优秀的程序员是孤立工作的,关心团队是他成为优秀程序员的重要原因。
3.1 帮助他人
优秀的开发人员会在帮助他人中找到快乐。有时,他只是说一些鼓励的话,有时,他是在教别人(这也是最好的学习方法)!
3.2 让团队回家
任何人都不应加班;休息好的团队才是高效的团队。
3.3 善意
假定每个人都在竭尽全力
3.4 保持联系
加入社区、尝试新事物、练习、练习、再练习!
最好的程序员之所以是最好的,是因为他为此付出了极大的努力。软件工程天赋并非与生俱来,而是一种有意识的行为。
3.5 关心自己
虽然他工作很努力,但他也做其他事情,有编程之外的兴趣爱好。他确保按时回家(睡眠是最好的调试器!)、
Dan 说,最重要的是,他认识的最好的程序员都很善良–对同事和自己都是如此。
丹总结说,你可能会在自己身上发现其中的一些特质–你可能会决定要向其中的一些特质看齐;你可能会选择作为面试官或候选人来参考这些特质:
我只是希望你能从中找到有用的东西,并在某种程度上受到启发。
本文文字及图片出自 How to be the best programmer
你也许感兴趣的:
- 【外评】80% 的开发人员不开心
- 【外评】如何判断自己已成为高级程序员
- 【外评】程序员大神每天什么都是时候工作?
- 【译文】在 Meta 工作 12 年:回顾我参与的所有项目
- 【译文】每个开发人员都需要问自己的一个问题
- 【译文】程序员工作很累,但 70% 的程序员在周末休息时以写代码为乐
- 【译文】我是一个糟糕的程序员
- 在技术圈逢凶化吉,靠的居然不是技术?Altman 晒出17条年终总结,人际关系占首位
- 【译文】加密货币交易平台FTX审判,第四天:欺诈在代码中
- 【译文】给程序员的一些额外建议
你对本文的反应是: