几年前,“美版知乎” Quora 上的一个提问在程序员圈内掀起热议:
“随着年龄的增长,人们会对编程失去兴趣吗?预计大龄程序员的速度会变慢、更容易犯错,宁愿做其他事情(如管理岗等),这是否准确?”
出品 | 程序人生(ID:coder_life)
由这个问题所衍生出来的,是各种“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
欢迎加入极客星球,分享多年工作经验和技术深度理解,帮助大家扩展视野,直播分享,面试问题,打牢基本功,作为大厂专业面试官,可以帮助想进各类大厂(芯片,自动驾驶,嵌入式,互联网等)的制定学习路线和学习帮助,由于在各种类型公司都待过(华为->外企->到互联网大厂),在工作中想要普升和高薪的同学找到最佳学习和转型指导, 可以分享各种不同公司宝贵的职场工作经验, 项目经验,普升经验,希望大家站在前辈们的肩膀上,少走弯路,做得更好。详细点击查看-> 极客星球。最近有优惠,用下面优惠劵,还能再减50。
IT工程师的成长路线
这里我正在准备搞一个后端集训营,针对那些想彻底改变提高自己技术能力,当前招聘要求越来越高,要想获得高新offer或者快速普升高级职位,必须拿出自己的实力,尤其是背景不怎么好的同学,技术实力就是最好的竞争力,但很多知识需要历练才能理解深刻,所以需要有人指导才行,这样才能快速崛起,从上到下打通整个技术链条(从编程语言,算法,应用框架,中间件,到底层(Linux内核),甚至到底层硬件等),加强内功修炼(硬件+软件),加强基本功, 让以后路更好走,希望尽最大努力帮助大家。
详细了解-->>后端集训营|突飞猛进并发/并行技术全景指南
Linux调度系统全景图
你好,这里是极客重生,我是阿荣,大家都叫我荣哥,从华为->外企->到互联网大厂,目前是大厂资深工程师,多次获得五星员工,多年职场经验,技术扎实,专业后端开发和后台架构设计,热爱底层技术,丰富的实战经验,分享技术的本质原理,希望帮助更多人蜕变重生,拿BAT大厂offer,培养高级工程师能力,成为技术专家,实现高薪梦想,期待你的关注!点击蓝字查看我的成长之路。
校招/社招/简历/面试技巧/大厂技术栈分析/后端开发进阶/优秀开源项目/直播分享/技术视野/实战高手等, 极客星球希望成为最有技术价值星球,尽最大努力为星球的同学提供面试,跳槽,技术成长帮助!详情查看->极客星球
感谢大家转发,点赞