乐于分享
好东西不私藏

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余项技术发明专利。

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