在2021年,当一名优秀的软件工程师是一件令人感觉非常好的事情。世界上到处都是软件,而且每年都有更多公司出现,需要雇佣工程师来编写代码、运行系统。我知道自己很擅长这件事,也知道只要我愿意,我可以一直做下去。我热爱的工作似乎永远不会枯竭。
到了2026年,我已经不确定软件工程这个行业是否还能再存活十年。即使它还能存在,我也几乎可以肯定,它将会比过去二十年发生更大的变化。也许我会找到一种方式,在一个细分领域里通过监督 AI 代理来获得不错的收入;也许我最终不得不彻底离开这个行业。不管怎样,我曾经热爱的那种工作正在慢慢消失。
自食其果
不过,如果对此过度悲伤,其实也有些不太体面,原因有两个。首先,在2010年代成为一名优秀软件工程师的核心意义,就是代码可以提供巨大的杠杆,让我们自动化掉其他行业的大量工作。这正是编程为什么会成为(而且至今仍然是)一个如此高收入职业的原因。如今我们开始自动化自己的行业,从某种意义上说,这也许是一种宇宙层面的公平。但我想,今天任何一位在职的软件工程师心里都在担忧同一个问题:当 AI 代理完全渗透进这个行业之后,我还能做什么?
第二个原因是,说不定我会是最后一批被取代的人之一。作为一名资深工程师(staff engineer),我的工作在 AI 代理出现之前,其实就已经有点像在监督 AI 代理了:我大量的时间都在用人类语言与其他工程师沟通,确保他们的方向正确,协调各种工作等等。相比之下,初级工程师和中级工程师可能会更早受到冲击。毕竟,当你可以用远低于成本的价格租用 Claude Opus 4.6 的实例时,为什么还要雇一群工程师去充当少数高级工程师的“手和脚”呢?
高估与低估
我认为接下来的十年里,有一个问题会主导我的职业生涯:科技行业到底会高估还是低估 AI 代理的能力?
如果科技公司低估了 AI 代理的能力——也就是说,即使 AI 已经有能力取代工程师,公司仍然继续雇佣工程师——那至少我的工作还能保住更长一段时间。不过即便如此,“我的工作”也会越来越像是“监督一群 AI 代理”。我花在审查代码上的时间会比真正写代码的时间更多,阅读模型输出的时间可能会超过阅读我自己代码库的时间。
如果科技公司反而高估了 AI 的能力,那么情况会变得更奇怪,但从中期来看,我的处境反而可能更有利。在这种情况下,科技公司集体意识到自己过早停止招聘工程师,于是不得不急忙寻找足够的技术人才,来管理那些庞大而复杂的、由 AI 生成的代码库。随着初级工程师市场逐渐枯竭,真正有经验的高级工程师和资深工程师数量将会停滞不前,从而推高像我这样的人才需求——当然,这种情况会一直持续到模型最终足够优秀,可以完全取代我为止。
我是不是太悲观了?
当然,软件工程行业在过去也曾多次看起来像是要“完蛋”了。高阶编程语言曾被认为会让非技术人员也能编写计算机代码。外包也曾被认为会摧毁高生活成本国家对软件工程师的需求。但这些末日预言最终都没有成为现实。不过,这一点其实并不能给人太多安慰。历史上确实有很多行业因为技术进步而消亡。当某个行业真正被技术淘汰时,总会出现一个它无法再撑过去的危机。
最乐观的观点大概是:即便每一行软件所需的工程师数量减少了,但由于软件总量增长得太快,对软件工程师的需求反而会增加。这种现象通常被称为“杰文斯效应”。在这种思路下,有些工程师会说类似的话,比如:“总会有人需要清理这些 AI 生成的代码,所以我总会有工作。”
但我觉得这种情况不太可能。AI 代理不仅可以写代码,也可以修复漏洞、整理代码结构,而且在这些方面的能力和写新代码一样强——事实上,它们已经比许多工程师更好,而且每个月都在持续进步。既然如此,公司为什么要雇佣工程师来管理 AI 生成的代码,而不是直接投入更多、更强的 AI 呢?
如果杰文斯效应真的会发生,那可能意味着 AI 编程工具会进入某种平台期:它们足够优秀,可以生成大量代码(这一点我们已经看到了),但还不够优秀到能够很好地维护这些代码。乍看之下,这种情况似乎很合理。每个软件工程师都知道,维护代码往往比编写代码更困难。但遗憾的是,我并不认为事情会这样发展。
从我个人使用 AI 工具的经验来看,它们在代码维护方面也变得越来越强。过去一年左右,我几乎在查看代码库时遇到的每一个问题,都会同时问 AI 一遍,并且自己也去寻找答案。我亲眼看着它们从一开始的束手无策,进步到“有时候比我更快”,再到“通常比我更快,而且有时候还能给出更有洞见的答案”。
目前来看,一个能力合格的软件工程师仍然有很大的发挥空间。但这个空间正在不断缩小。我不认为 AI 代理需要出现什么真正全新的能力才能取代我的工作。它们只需要在已经能够做到的事情上变得更好、更可靠就足够了。因此,我很难相信未来对软件工程师的需求会增加,而不是减少。
最后的想法
这种感觉确实很糟糕。我很怀念曾经觉得工作稳定的日子,那时候我职业生涯中最大的难题似乎只是像倦怠这样的内部问题,而不是来自外部环境的冲击。不过,从某种角度来看,当自动化的列车最终追上软件工程师时,我们再抱怨也有点可笑。
至少我很庆幸,在好日子还在的时候,我意识到它们确实很好。即使在零利率时代结束、整个行业不再那么舒适之后,我依然觉得自己能成为一名软件工程师是非常幸运的事情。即使是现在,我的处境仍然比许多同行更好,尤其是那些刚刚进入行业不久的人。
而且,说不定我错了呢!到了这个阶段,我其实希望自己是错的。我希望软件开发中确实存在某种难以言喻的人类因素,是 AI 无法替代的。如果不是这样的话,那么我和我的同事们,最终可能真的需要去寻找另一种新的工作了。