【外评】如何成为最优秀的程序员

伟大的程序员不是天生的,而是后天造就的。

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

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注