编程卓越之路:从渴望到精通的必经之旅

本文探讨了成为优秀程序员的核心前提——内在驱动力与技术提升的关系,分析了缺乏进步意愿的深层原因,并提出了通过自我反思和目标引导来激发技术成长的有效方法。

代码简洁性:开始之前…

2011年1月17日 by Max Kanat-Alexander

我研究软件设计的一个主要目标是希望我们能够通过简单的教育和少量经验,将"糟糕的程序员"或普通程序员转变为优秀甚至卓越的程序员。我想知道——必须教给一个人的基本要素是什么才能让他们成为伟大的程序员?如果有人编程多年却没有进步——你如何帮助他们?他们缺少什么?

然而,在某人开始成为更好的软件开发者的道路之前,必须满足一个条件:要成为优秀的程序员,你必须首先想要成为优秀的程序员。任何培训都无法将不想变得优秀的人变成优秀的程序员。

如果你是一个对软件开发充满热情的人——或者只是一个喜欢做好本职工作的人——可能很难理解那些根本不想进步的人的观点。要充分理解这一点,可以想象自己尝试学习某个你个人没有欲望擅长的领域。

例如,虽然我钦佩运动员,喜欢踢足球,有时也喜欢观看体育比赛,但我从未有过成为伟大运动员的愿望。无论读多少书或接受多少教育,都无法将我变成伟大的运动员,因为我根本不想成为运动员。我甚至一开始就不会去读那些书。如果你强迫我上课或参加研讨会,这些知识一进入我的脑海就会消失,因为我根本没有了解这些数据的欲望。

虽然这很难想象,但当你告诉许多"糟糕"程序员如何或为什么应该编写更好的代码时,他们脑海中就会发生这种情况。如果他们不是真心想成为最好的程序员,那么无论你给他们多少教育,纠正他们多少次,或者他们参加多少研讨会,他们都不会变得更好。

那么你该怎么做?公平地说,我可能不是最好的询问对象——如果我要做某事,我觉得我应该尽力做到最好。也许你能做的最好的事情就是鼓励人们遵循这个概念。你可以对他们说:“如果你无论如何都要做,为什么不做好呢?如果你更熟练,至少做起来会更愉快吗?如果其他人对你的工作印象深刻,那会是什么感觉?一天结束时回家感觉自己做得好,会不会很好?你的生活会比现在更好吗,哪怕只是一点点?你的生活会变得更糟吗?”

最糟糕的情况下,你可以请某人列出"成为伟大程序员"的所有后果,直到他们在这个问题上感到一些解脱或开始以不同的方式看待这个想法。你可以问他们:“如果你是一个伟大的程序员,会发生什么?“并不断要求更多答案,直到他们感觉更好或开始真正看到变得优秀的好处。你不必用任何正面或负面的评论回应他们的答案,只需倾听并礼貌地承认他们所说的话。这个想法是给他们机会真正为自己审视可能性,也许能自己得出一些新的有趣的结论——不是通过你告诉他们该想什么或不同意他们的答案,而是通过与你沟通如果他们变得伟大真正会发生什么。

无论你怎么做,底线是人们在能够变得更好之前必须对提升自己感兴趣。你如何让他们达到那种兴趣水平并不重要,只要他们在你浪费大量时间给他们提供他们一听就会抛弃的教育之前达到那个水平。

-Max

评论

Jolie 说: 2011年1月17日下午3:53 哇!这既清晰又有用。事实上,你可以将其推广到任何工作。很好。

回复

Max Kanat-Alexander 说: 2011年1月17日晚上11:20 谢谢!是的,我同意,它几乎适用于任何卓越领域。 -Max

回复

Ahmed 说: 2011年1月17日晚上11:13 Max,这是成为伟大程序员的绝佳起点(欲望)。这么多程序员有这个欲望,但仍然是普通程序员,因为他们不知道道路。我希望你发表一篇关于初学者成为伟大程序员的步骤的文章。我的建议是:个人项目、博客、阅读代码、每年学习新语言/框架…… Ahmed。

回复

Max Kanat-Alexander 说: 2011年1月17日晚上11:23 谢谢Ahmed!确实,许多人想变得伟大但还没有找到方法!我知道的最好道路是我在《为什么程序员很烂》一文中概述的要点。那篇文章有很多信息,所以有些人错过了接近结尾的要点,但那些是文章中最重要的部分!

现在的问题是,其中一个要点——理解软件设计的基础——几乎是不可能的,因为它们从未被编撰!所以这就是博客其余部分的主要内容,但更重要的是,这将是我正在写的一本书的主题,这样人们才能真正拥有和理解这些基础,并继续走完剩下的道路。 -Max

回复

Dale 说: 2011年2月18日下午4:53 我觉得这很令人兴奋,希望容易学习! 谢谢你!

回复

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计