整理 | 郑丽媛
几年前,Quora 上的一个提问在程序员圈内掀起热议:
“随着年龄的增长,人们会对编程失去兴趣吗?预计大龄程序员的速度会变慢、更容易犯错,宁愿做其他事情(如管理岗等),这是否准确?”
由这个问题所衍生出来的,是各种“35 岁危机”、“坚持技术岗 vs. 转为管理岗”等程序员群体尤为关注的话题。许多年轻程序员认为,未来年纪大了体力和精力跟不上,没法跟上日新月异的技术发展必然会被淘汰,转为管理岗或许是最体面的选择。
但事实是怎样的呢?近来 Jorge Manrubia 撰写的一篇文章《当程序员老了》在 HN 热议榜上引发关注——在这篇文章中,Jorge Manrubia 分享了他作为一名 40 岁程序员的回顾与反思。
以下为《当程序员老了》的译文内容:
在大学时很多人都跟我说,我的职业生涯将从编写代码开始,但最终,我还是会变成一个让别人为我编码的职位,也就是管理岗——事实证明,这个想法完全错误。
如今的我已经 40 岁,回头看看这十几年的编程生涯,有些经验想要与你分享:
与年轻时相比,我觉得目前我处于最佳状态。当然,学习最新技术会有所帮助,但积攒多年的编程经验和工作经验更为重要。我认为我比 15 年前好得多,同时也希望 15 年后能更好,这种不断学习的感觉对我来说就是我的工作世界。
与可以学习的人一起工作是一个很好的动力来源。
我有很多缺点,但现在我更了解自己和它们的影响,所以至少我可以尝试着克服它们。
我对于作为管理人的欲望处于历史最低点。
我渴望与人讨论技术问题,无论是帮助还是被帮助,都达到了历史最高点。
我对吞吐量预测得更准确。
我曾对工作场所的语气和举止都非常敏感,现在仍然如此。
我学会了给自己一个重新考虑技术战的机会。以前,我会跟他们所有人奋战到最后;现在,当感觉不对或没什么兴趣时,我很乐意提前改变方向。
以前,我不会花费时间考虑时间、范围和兴趣;现在,我很少做那些无关决策的事情。
我不喜欢老是切换手头的事情,我理想中的工作状态是几天都专注于一个任务。
有效沟通是一项复杂的技能,需要多年磨练才能进步,如果你想做专业的编程,这是一项必不可少的技能。
我在部署事情时更加谨慎。
我不知道结对编程的效果如何,我也没兴趣了解。
同样,我也不会讨论让人们共同解决问题的好处,因为我也不是很感兴趣。
我喜欢接受挑战,喜欢那种一开始不知道如何解决问题的感觉。
我自认我是一个“多面手”。不过做太多基础设施工作,我就会错过产品开发;做太多后端,我就会想念前端。这自然有利有弊,但我对此是接受的,我不理解为什么有人会鄙视“全栈”这个词。
我远程工作了近 10 年,如今应该不可能重返办公室。
我开始认为问责制是一项基本福利。我的职业生涯始于一个没什么人关心的工作内容,但我需要完全相反的环境来保持自己的动力。
我现在对编程领域的任何热门新事物都持怀疑态度,因为我认为这可能是一把双刃剑——年轻时的我则完全相反。
Gerald Weinberg 说过:“无论问题最初看起来怎样,它始终是人的问题。”这句话本质上是正确的,在技术人看来也是非常真实的。
从 Jorge Manrubia 的分享来看,作为程序员来说,40 岁的他非常满足目前的状态——比年轻时更有经验,更谨慎周全,也更清晰果决。
程序员的年龄一直都是一个极具争议的话题,随着越来越多有关程序员中年危机的报道,人们会先入为主地认为:“程序员就是吃青春饭的。”因此,Jorge Manrubia 这篇难得为大龄程序员发声的文章引起了许多人的共鸣,我们也能听见更多声音。
拥有 25 年游戏编程经验的 Jeff Kesselman:
只有两种人会对“对编程失去兴趣”。
(1) 一开始就对编程不感兴趣,只认为这是一个赚钱的职业。
(2) 被迫一遍又一遍地解决相同问题的人。
只要在工作能持续接触到新的挑战和新的学习内容,就不会感到无聊。
一些年轻和不成熟的程序员有时对此可能会有误解,但要知道:随着程序员的水平进步,他们花在编写代码上的时间会减少,但花在思考问题上的时间会增多——他们学会了,要用更少的汗水和泪水得到相同或更好的结果。
自 1964 年以来就一直是一名程序员的 Robert Martin:
今年我 60 多岁了,但我对编程并没有失去兴趣,依旧喜欢编写代码。我不再像以前那样写那么多代码,主要因为我忙于讲课、写书、写博客、制作视频,以及辅导孙子孙女等,不过我仍然会抽空花费大量时间编码。
我没有发现我的认知或记忆发生了变化。我仍可以理解系统,我的脑海中也仍能建立所有的联系、理解所有的细节,并且很享受这些过程。
硬要说的话,我发现我的耐力已经减弱了。我曾经每天能够编码超过 8 小时,但现在我大约只做 6 小时。不过反过来说,在这 6 个小时内我完成的工作量比我以前在超过 8 小时中完成的要多得多。
从事编程超过 40 年的 Tim Daly:
我从事编程已经 40 年了,正处于职业生涯的巅峰。我正在开发 iPad 和 Android 应用,并且是 3 个开源项目的主要开发者。从大学开始,我几乎每天都在编程。
我遇到过更好的程序员,遇到过更快的程序员等等,但目前我是我知道的最老的程序员(我相信肯定还有其他人)——我发现,年龄越大,我就变得越优秀。我知道的越多,就越不会犯糟糕的设计错误或低级错误。我学会通过自我反省来寻找是什么导致了我的错误(我所有的错误中有 50% 都是复制/粘贴,所以我不再这样做了)。简而言之,我一生都在努力提高我的编程技能。
因此,我的编程速度更快,犯的错误更少(包括设计和编码),努力学习最新的技术,并且每天都在写代码。
某种程度上来说,人们认为年轻程序员更吃香的原因之一是,现实中大龄程序员的数量太少了。
但其实伴随着各行各业对程序员需求的急剧上升,我们或许也可以理解为:坚持编程的大龄程序员自然无法凭空增长,年轻程序员的数量却在不断增加——在此趋势下,大龄程序员的数量自然处于劣势。
不要质疑,总会有那么一些程序员,他们对编程的热爱并不会随着时间流逝,不论年轻或年长,始终保持着最初的热情和梦想,默默打破人们对他们的偏见与枷锁。
参考链接:
https://world.hey.com/jorge/aging-programmer-d448bdec
https://www.quora.com/Do-people-lose-interest-in-programming-as-they-age-Is-it-accurate-to-expect-that-older-programmers-are-slower-make-more-mistakes-and-would-rather-be-doing-something-else-such-as-managing-programmers
https://news.ycombinator.com/item?id=32961933