乐于分享
好东西不私藏

AI 时代的资深软件工程师供应链危机

AI 时代的资深软件工程师供应链危机

代码越来越便宜,工程经验会不会越来越稀缺?

AI 编程真正带来的风险,不是程序员立刻被替代,而是程序员成长路径被改写:代码生成越来越便宜,但理解、验证、调试和架构判断越来越昂贵。

过去两年,围绕 AI 编程的讨论,几乎总会落到同一个问题上:AI 会不会取代程序员?

这个问题当然重要,但我越来越觉得,它可能不是最值得担心的问题。真正更隐蔽、也更长期的问题是:当 AI 大量接管日常编码任务之后,软件行业还如何培养下一代资深工程师?

资深工程师不是天生的。他们不是因为看过几本文档、刷过几套课程、读过几篇架构文章,就突然拥有了复杂系统判断力。过去一代又一代软件工程师,是在手写代码、单步调试、线上事故、遗留系统、性能瓶颈和无数次“为什么又不行”的折磨中被训练出来的。

而 AI 编程正在改变这个过程。它让代码生成更快,也让新人更容易在入行初期就交付看起来不错的功能。这当然是进步。但问题在于,如果新人跳过了大量亲手犯错、亲手排查、亲手修正的过程,他们是否还能成长为未来那个能解决最难问题的人?

一. AI 没有让代码消失,而是让代码变便宜了

首先要承认,AI 编程已经不是实验室里的玩具,而是进入了软件开发的日常流程。Stack Overflow 2025 年开发者调查显示,84% 的受访者已经在使用或计划使用 AI 工具;在专业开发者中,51% 每天使用 AI 工具。同时,开发者对 AI 输出准确性的态度并不盲目,表示“不信任”的比例高于“信任”的比例。

这组数据很有意思。它说明两个事实同时存在:一方面,AI 工具已经深度进入开发流程;另一方面,工程师并没有真的把 AI 当成可以完全托管判断的对象。大家用它,但也怀疑它。

这很符合很多团队的真实体验。AI 写接口、补样板代码、解释报错、生成测试用例、迁移框架、写脚本,都非常有用。GitHub Copilot 相关受控实验曾显示,在一个 JavaScript HTTP server 任务中,使用 Copilot 的开发者完成任务速度快了 55.8%。 Google DORA 2025 报告也显示,很多开发者认为 AI 提升了个人生产力和代码质量感知。

所以,本文并不是要否定 AI 编程。相反,AI 编程的效率提升是真实的。问题在于,软件行业过去长期默认“写代码”是工程师成长的主要训练场,而现在这个训练场正在被重构。

AI 时代最危险的不是没人写代码,而是越来越多人没有机会通过写代码长成真正的工程师。

二. 过去的资深工程师,是被真实反馈训练出来的

我们可以回忆一下,一个传统意义上的程序员是怎么成长起来的。

他先从最简单的功能开始:写一个接口、查一张表、改一个页面、补一个脚本。刚开始写得慢,也经常错。编译错误、空指针、数组越界、SQL 写错、事务没包、缓存没清、日志没打、异常没处理,这些问题像钉子一样一颗颗扎进他的经验里。

一开始,他只是想让功能跑起来。后来他发现,跑起来不等于正确;正确不等于稳定;稳定不等于可维护;可维护不等于能扛住业务增长。

比如一个新人写数据库查询。第一次,他只关心能不能查到数据。第二次,他发现接口很慢。第三次,他发现索引没有用上。第四次,他发现分页方式在大数据量下会越来越慢。第五次,他发现缓存会击穿。第六次,他发现一次看似简单的查询改动,可能影响整个服务的吞吐。

这些东西不是靠背概念真正学会的。它们往往是在真实项目里被问题逼出来的。

过去的软件工程训练,有一个很重要但经常被忽略的机制:完整反馈循环。

你写错了,系统会报错;你以为修好了,测试会失败;你以为测试过了,线上会暴露边界条件;你以为需求完成了,半年后的维护会告诉你当初的设计有多短视。

这个过程很痛苦,也很低效。但它恰恰是工程师成长的核心。

资深工程师不是因为写过很多正确代码才资深,而是因为亲手修过足够多自己和别人写下的错误代码。

三. AI 让新人入门更容易,也可能让成长更困难

AI 编程带来的第一个变化,是入门门槛大幅降低。

一个刚入行的新人,过去可能需要几周甚至几个月,才能熟悉语言、框架、项目结构和常见 API。现在,他可以让 AI 帮他生成一个后端服务、一个前端页面、一个爬虫脚本、一个自动化流程,甚至一个看起来完整的小产品。

这当然是好事。很多过去被语法、框架和样板代码挡在门外的人,现在能更快进入创造阶段。

但问题也在这里:当 AI 太快给出答案时,新人可能跳过了最重要的理解过程。

过去一个 bug 卡半天,虽然痛苦,但卡的过程会迫使你去看调用栈、看日志、看变量状态、看边界条件、看框架源码。你会逐渐形成一种系统直觉:这里为什么会错?还有哪里可能错?这个现象背后的真正原因是什么?

现在,很多时候新人把报错贴给 AI,AI 直接给出修改建议。问题也许解决了,但能力未必增长了。

这会形成一种新的风险:产出能力提升很快,理解能力增长很慢。

在简单任务里,这种新人看起来效率很高。需求来了,AI 生成代码;报错来了,AI 给解决方案;测试不会写,AI 补一套;文档不会写,AI 再润色一下。

但一旦遇到 AI 也绕不出来的问题,比如上下文不完整、日志互相矛盾、系统有历史债务、多个服务相互影响、性能问题没有明显瓶颈,底层能力不足就会暴露出来。

AI 让新人更快成为“能交付的人”,但不一定更快成为“能判断的人”。

四. 真正的危机,是资深工程师供应链被压缩了

软件行业过去有一条隐形的人才供应链:初级工程师通过大量具体任务成长为中级工程师,中级工程师通过复杂项目和线上责任成长为高级工程师,高级工程师再逐渐成为架构师、技术负责人和关键问题解决者。

这条链路不是写在组织架构图里的,但它长期存在。

新人写 CRUD、改小 bug、补测试、做迁移、写脚本、读遗留代码、处理简单线上问题。这些任务看似低级,却是工程能力的矿石。它们训练语法、训练调试、训练代码阅读、训练边界意识,也训练一个人对复杂系统的敬畏。

可是 AI 编程正在压缩这些初级任务。

商业公司天然追求效率。如果 AI 可以把一个初级任务在几分钟内生成出大致可用的结果,团队就很难再给新人几天时间慢慢手写、慢慢调试、慢慢犯错。短期看,这很合理;长期看,问题就出现了。

如果初级任务被自动化,中级能力从哪里来?如果中级能力没有充分训练,高级工程师从哪里来?如果高级工程师供给减少,未来谁来解决 AI 也解决不了的问题?

这就是本文所说的“资深软件工程师供应链危机”。

它不是说今天的软件行业马上没人可用。今天我们还有大量资深工程师,他们经历过没有 AI 的年代,手写过大量代码,也背过足够多的生产事故。AI 对他们来说,是强大的杠杆。

但问题是,十年以后呢?当今天的资深工程师继续被 AI 放大,下一代资深工程师是否还会以同样的密度被训练出来?

AI 可以补充产能,但不能自动生产资深工程师。资深工程师是被真实复杂系统训练出来的。

五. AI 会放大资深工程师,而不是平均增强所有人

很多人说 AI 编程会替代程序员。我更倾向于另一个判断:AI 会先放大资深工程师。

因为 AI 真正放大的,不只是“写代码”的速度,更是使用者已有的判断力。

资深工程师使用 AI 时,通常不是把 AI 的答案照单全收。他会让 AI 生成几个方案,然后判断哪个方案符合当前系统;他会让 AI 写初稿,然后删掉危险的部分;他会让 AI 生成测试,然后补上真正关键的边界条件;他会让 AI 解释报错,但最终自己决定验证路径。

同样是让 AI 写一个鉴权模块,新人可能看到代码能跑,就觉得完成了。资深工程师会继续追问:token 过期怎么处理?refresh token 是否轮换?并发请求有没有竞态?密钥如何管理?日志里会不会泄漏敏感信息?权限变更后如何立即生效?多租户场景下会不会越权?出了问题以后能不能审计?

这些问题不是 prompt 技巧,而是工程经验。

DORA 2025 报告有一个很重要的判断:AI 更像是放大器,会放大组织已有的优势和问题;最大的回报不只来自工具本身,而来自组织系统、平台、流程和协作方式的质量。这个判断放到个人身上同样成立。

判断力强的人,用 AI 会更强;判断力弱的人,用 AI 可能只是更快地产生更多需要别人兜底的代码。

AI 最先放大的不是编码能力,而是判断能力。判断力越强,AI 越像杠杆;判断力越弱,AI 越像幻觉放大器。

六. 复杂问题的难点,不是写代码,而是知道什么才算真正解决

很多复杂软件问题,最难的地方并不是写出某段代码。

比如,一个线上接口偶发超时;一个服务在高峰期内存持续上涨;一个分布式任务偶尔重复执行;一次发布后用户转化率下降;一个老系统改一处坏三处;一个架构决策短期看没问题,半年后变成技术债。

这些问题往往没有清晰题面,也没有标准答案。它们需要工程师还原上下文、找到关键变量、排除干扰因素、提出假设、设计验证路径、观察系统行为,然后做出取舍。

AI 可以参与这个过程。它可以帮你列排查方向,帮你解释日志,帮你写 profiling 脚本,帮你总结可能原因。

但真正困难的是:哪些信息是关键的?哪些现象只是噪音?哪些修复会引入新的风险?什么样的结果才算真正解决?这个判断依然高度依赖资深工程师。

所以,不要简单地说“AI 没见过就不会”。AI 并不是只会复制训练数据,它有组合和迁移能力。更准确的说法是:AI 在公开样例丰富、目标清晰、验证信号明确的问题上很强;但在上下文隐含、约束冲突、验证困难、责任后果真实存在的问题上,仍然需要人类工程师主导。

复杂问题的难点不是写出一段代码,而是知道哪一段代码不该写。

七. 代码越来越多,并不等于工程经验越来越多

AI 编程还有一个更长期的问题:未来模型训练所依赖的代码生态,会不会发生变化?

今天的 AI 编程能力,离不开过去几十年人类程序员在开源社区、技术博客、问答网站和真实项目中留下的高质量代码与工程经验。可如果未来公共代码生态里充斥大量未经验证、缺乏上下文、缺乏维护责任的 AI 生成代码,那么“代码数量变多”未必等于“经验密度变高”。

Nature 2024 年关于模型坍缩的研究提醒我们,如果生成模型反复学习由前代模型生成的数据,可能会逐渐偏离真实数据分布,尤其损失长尾信息。 这并不意味着 AI 生成代码一定不能用于训练,也不意味着未来模型必然退化。合成数据、反馈学习、测试验证和人工筛选都会继续进步。

但它至少提醒我们一件事:真正有价值的训练数据,不只是文本上的代码,而是带有真实约束、真实反馈、真实维护成本和真实故障经验的代码。

软件工程里的高质量代码,不只是“能运行”的代码。它背后包含需求权衡、架构约束、性能边界、安全考虑、团队协作、长期维护和事故复盘。

如果行业未来只生产大量看起来正确的代码,却不再生产足够多真正理解代码的人,那么问题不会立刻显现,但会慢慢积累。

当代码变得廉价,真正昂贵的是判断代码是否值得进入系统。

八. 这不是反 AI,而是反对把 AI 当成新人训练的替代品

我并不认为程序员应该拒绝 AI。恰恰相反,拒绝 AI 很可能是一种新的职业风险。

AI 编程会成为软件开发的默认基础设施。未来的工程师不会因为“坚持手写一切”而更有竞争力,就像今天的工程师不会因为拒绝 IDE、拒绝云服务、拒绝自动化测试而显得更专业。

真正的问题不是用不用 AI,而是怎么用 AI。

对资深工程师来说,AI 应该是杠杆。它可以加速探索、生成草稿、补齐测试、总结代码、辅助迁移,让资深工程师把更多精力放在架构判断、风险识别和系统设计上。

对新人来说,AI 更应该是陪练,而不是代练。

陪练会让你变强。它会解释原理、指出盲区、提供反例、生成练习、帮助复盘。代练则会替你打完比赛,让你拿到结果,但能力没有长在你身上。

如果新人一遇到问题就让 AI 写完,一遇到报错就让 AI 修改,一遇到不懂就直接复制答案,他可能很快拥有表面的交付能力,但底层能力会被掏空。

对新人来说,最危险的不是不会用 AI,而是只会用 AI。

九. 企业要重建 AI 时代的工程师训练机制

如果资深工程师供应链真的面临压力,责任不能全部推给新人。企业和团队也需要重新设计训练机制。

第一,保留必要的“无 AI 训练场”。

不是所有任务都应该一开始就交给 AI。对于核心业务逻辑、复杂 bug 定位、性能问题分析、关键模块重构、线上事故复盘,团队可以要求新人先独立分析,再使用 AI 对比。这不是为了怀旧,而是为了让新人经历完整思考过程。

第二,Code Review 要从“看代码对不对”升级为“看人懂不懂”。

AI 时代,代码本身会越来越像样。Review 时更应该问:这段代码为什么这样写?有没有替代方案?边界条件是什么?你让 AI 生成了什么?哪些建议被你拒绝了?你为什么相信最终版本?你如何验证它不会在生产环境出问题?

第三,要求新人记录 AI 使用过程。

对于重要代码,可以让新人写简短的 AI 使用说明:AI 提供了哪些方案、采纳了什么、拒绝了什么、最终如何验证。这样可以把 AI 使用过程变成学习过程,而不是把思考过程藏起来。

第四,强化调试训练。

调试能力不能完全外包。团队应该有意识地让新人参与日志分析、调用链排查、性能 profiling、内存泄漏定位、数据不一致排查、灰度发布和回滚演练。很多工程能力,只有在真实系统里才会生长。

第五,让资深工程师带新人使用 AI。

AI 时代的 mentoring 不应该消失,反而应该更重要。资深工程师要示范如何拆解问题、如何向 AI 提问、如何验证答案、如何识别幻觉、如何用 AI 加速但不失控。

企业不能只享受 AI 带来的产出红利,却不投资新人基本功的再生产。

十. 新人要学会把 AI 变成训练工具,而不是思考外包

对新人来说,AI 时代最重要的能力之一,是有意识地保护自己的成长曲线。

第一,先想,再问 AI。不要一上来就让 AI 写完整代码。先自己拆解问题,写出方案,再让 AI 对比。

第二,先读懂,再复制。AI 生成的每一行关键代码,你都应该能解释。解释不了,就不应该合并。

第三,先调试,再求助。遇到 bug,不要马上把报错丢给 AI。先自己看调用栈、日志、输入输出和边界条件,再让 AI 帮你验证假设。

第四,把 AI 当成面试官,而不是答案机器。你可以让 AI 反问你:这个方案有什么风险?有哪些边界条件?怎么测试?线上可能怎么出问题?有没有更简单的实现?

第五,主动做困难任务。越是 AI 不能直接解决的问题,越是成长机会。不要只做那些 AI 很容易完成的任务,否则你的能力会被训练得越来越窄。

AI 时代,新人最重要的自律,是不要把所有痛苦都外包给 AI。因为成长本身就藏在那些痛苦里。

十一. 几个常见反驳,以及我的回应

反驳一:AI 会越来越强,也许未来不需要那么多资深工程师。

AI 当然会越来越强。但软件系统也会越来越复杂。当代码生成成本下降,人类往往不会停止开发,而是会构建更多、更快、更复杂的系统。复杂度不会消失,它只会转移。云计算没有让运维问题消失,而是让系统规模和治理复杂度上升;高级框架没有让工程复杂度消失,而是让工程师关注更高层的问题。AI 编程很可能也是如此。

反驳二:新人可以通过 AI 学得更快,不一定成长更慢。

这个反驳是成立的。AI 如果用得好,确实是非常好的学习工具。它可以解释概念、生成例子、指出错误、模拟面试、辅助复盘。问题不在 AI 本身,而在使用方式。如果 AI 是教练,它会加速成长;如果 AI 是代工,它会削弱成长。

反驳三:未来代码也许不重要了,自然语言就能生成软件。

即使编程界面发生变化,工程判断也不会消失。自然语言生成应用,同样需要定义需求、处理歧义、验证行为、管理权限、保证安全、控制成本和维护系统。代码可能不再是唯一界面,但软件工程中的复杂性仍然存在。

AI 可能改变编程的界面,但不会消灭软件工程中的复杂性。

十二. 结语:代码会越来越便宜,工程经验会越来越贵

AI 编程时代,代码会越来越便宜。

这是一件好事。它会让个人开发者更强,让小团队更高效,让很多想法更快变成产品。

但代码便宜之后,软件工程真正稀缺的东西会浮出水面:判断力、调试能力、架构能力、系统直觉、工程责任感,以及对复杂问题的耐心。

这些能力不会自动从 AI 工具里长出来。它们仍然需要人在真实项目中训练,在错误中训练,在复杂系统中训练,在长期维护中训练。

如果我们只看到 AI 提高了今天的交付效率,却忽略了新人训练机会的减少,那么未来的软件行业可能会面对一个更隐蔽的危机:我们拥有越来越强的代码生成工具,却缺少足够多真正知道代码该不该这样生成的人。

AI 不会让资深工程师不重要。恰恰相反,AI 会让资深工程师更重要。真正的问题是:当这一代资深工程师被 AI 放大之后,下一代资深工程师还能不能被培养出来?

这才是 AI 时代的软件行业必须认真面对的供应链问题。

2026年5月4日,杭州


关于作者:蒋能学 Neil

  • 杭州学以致用科技创始人,创立了妙言小智等AI工具品牌。

  • 17年互联网技术老兵,曾任网易云音乐高级技术总监、百度国际广告平台负责人。

  • 深度学习框架 PineNut 作者,主导40余项技术发明专利。

  • 毕业于美国马里兰大学。比起流量的喧嚣,更相信底层逻辑的力量。