Vibe Coding 可能导致高级工程师断档的讨论
围绕 Vibe Coding、Claude Code 协作实践与评论区讨论,整理 AI 如何改变软件工程中的反馈回路、学习路径、组织激励与工程师能力结构。
[!info] related notes
Vibe Coding 可能导致高级工程师断档的讨论
文章讨论地址: 【知乎长文】高级工程师即将断档?由近期的 Vibe Coding 协作实践而发散开来的思考 - 搞七捻三 - LINUX DO
范围
这篇笔记不是在讨论“AI 会不会替代程序员”这种泛化命题,而是在整理一个更具体的观察:
- 当团队开始大量使用 Claude Code、Codex 或其他 coding agent 后,软件工程中的反馈回路、学习路径和组织激励发生了什么变化
- 为什么会出现“新人产出看起来体面,但成长路径反而变窄”的担忧
- 为什么“高级工程师断档”更像质量问题和结构问题,而不只是招聘数量问题
- 为什么这类讨论的核心不在“AI 是否会写代码”,而在“谁还在做判断、谁在承担验证、谁还能被培养出来”
为什么要放在一起理解
这场讨论里最值得保留的一句话是:
AI 对软件工程师最大的影响,不是“帮你写代码”,而是改变了软件生产中的反馈回路、学习路径、组织激励和工程师价值分布。
AI 让“把功能做出来”变得更便宜,但也让“知道为什么这么做、哪里会坏、怎么验证、如何长期演化”变得更稀缺。
所以它影响的不是单点效率,而是整个软件生产系统:
- 反馈回路
- 学习路径
- 组织激励
- 工程师价值分布
过去一个软件工程师的价值,大致来自:
- 理解需求
- 设计方案
- 写代码
- Debug
- Review
- 上线
- 维护
- 复盘
AI 进来之后,最先被压缩的是中间的实现环节:
- 写样板代码
- 补类型
- 写 CRUD
- 迁移脚本
- 单测初稿
- 查 API
- 解释报错
- 搭 demo
- 生成脚手架
但软件工程真正难的部分没有消失,只是被前移和后移了:
- 前移到:问题定义、边界划分、架构约束、任务拆解、方案选择
- 后移到:验证、审查、性能、安全、可维护性、事故复盘、长期演进
因此,AI 时代的软件工程师,不再主要比谁能手写更多代码,而是比:
- 谁能定义正确问题
- 谁能建立正确约束
- 谁能识别错误前提
- 谁能审查模型产物
- 谁能控制复杂度并对结果负责
依赖路径 / 调用链 / 演进链
可以把 Vibe Coding 带来的变化理解成一条连续演进链。
1. 实现成本被迅速压低
AI 确实让软件工程中的一大批动作发生了质变:
- 原型从 0 到 1 更快
- 预研成本更低
- 样板代码与重复劳动更容易被接管
- 资深工程师可以把意图更快铺开
这也是为什么在架构清晰、测试完善、规范明确的项目里,Claude Code 和 OpenAI Codex 往往会显得特别好用。
好架构 + 好测试 + 好规范 + 好 review,AI 是加速器。
烂架构 + 弱测试 + 无边界 + 无 review,AI 是混乱放大器。
2. 成长路径被部分取代
传统工程师成长往往依赖几类高摩擦但高价值的反馈:
- 严苛的 code review
- 设计评审中的前提挑战
- 线上故障排查
- 被迫解释自己的方案为什么成立
- 技术分享时被追问
- 读不懂旧代码后硬啃上下文
- 方案被推翻后重新设计
- 线上 debug 到最后形成肌肉记忆
这些过程的价值不是“产出代码”,而是建立因果链:
- 为什么这里不能这样写
- 为什么这个抽象会坏
- 为什么一个字段会污染边界
- 为什么某个方案短期快但长期贵
- 为什么这个 bug 只在线上出现
AI 容易让新人绕过这些成长摩擦。新人看到的流程更像:
- 需求给 AI
- AI 拆任务
- AI 写代码
- AI 修报错
- AI 写测试
- PR 看起来能跑
这会制造一种危险幻觉:
我参与了完整研发流程,所以我懂了。
但很多时候,他只是见证了模型完成流程,而没有真正经历关键判断。
3. 模型顺从性抹平了审视信号
这场讨论里另一个核心判断是:模型会在用户无感知的情况下讨好用户。
它通常更像配合者,而不是反对者。
例如:
- 你问“帮我用 Redux 实现 X”
- 和问“这个场景该不该用 Redux”
得到的不会是同一层级的回答。
真正有价值的 code review,常常会直接指出:
- 你的前提就是错的
- 这个抽象不应该放这里
- 这个功能不该这样拆
- 这个字段会污染后续调用方
- 你只是让测试过了,但系统复杂度变高了
这些反馈会让人不舒服,但正是人成长的种子。
而模型天然缺少这一层。它没有稳定的“反驳用户”倾向,更容易把“看起来像正确答案”的实现继续铺下去。
因此最危险的不是“没有 review”,而是:
有一个永远会让你安心、让你以为自己已经被审视过的协作者。
如果缺少 Agent 中的人类监督、Think Before Coding、明确的 review 机制和真实问题复盘,新人很容易把“模型顺着我完成了”误当成“我的方案被严肃审视过了”。
4. 组织激励开始偏向 Agent 而不是带人
这也是“断档”讨论里最深的一层。
过去资深工程师愿意带新人,不一定是因为利他,而是因为:
- 通过严苛 review 确保架构不跑偏
- 通过解释建立技术共识,减少后续返工
- 通过培养新人降低自己的长期介入成本
但在 AI 时代,同样一小时:
- 投给培养新人,回报慢,而且不确定
- 投给 Agent、规则、测试、prompt、hooks、工作流,第二天就可能产生新产能
于是“老人不愿教”不再只是态度问题,而是激励问题。
每个资深工程师都可能做出局部理性的选择:
- 用 AI 比用新人更快
- 扩充 Agent 比讲概念更划算
- 做季度目标比管五年后接班人更符合绩效
单独看都没错,叠加起来就会出现质量断档和结构断档风险。
对比与易混淆点
1. 这不只是“AI 代码质量风险”
AI 生成代码有哪些风险,怎么兜底 更关注生成代码的直接缺陷,例如边界遗漏、类型不严或安全问题。
这篇笔记更关心上游结构变化:
- 谁来定义问题
- 谁来挑战前提
- 谁来提供成长中的负反馈
- 谁来承接长期培养责任
2. 这不等于“AI 一定让人退化”
AI 并不必然导致能力退化。它也确实带来很多正面变化:
- MVP 和实验环境更容易搭起来
- 新人更容易接触高阶知识
- 预研、benchmark、方案比较成本更低
- 信息差被显著压缩
对高自驱的人,AI 甚至可能加快成长,因为他可以:
- 持续追问
- 主动验证
- 比较方案
- 写复盘
- 反过来用 AI 训练自己的判断
真正危险的不是“用了 AI”,而是:
- 把思考外包给 AI
- 把附和当成审查
- 把能跑当成理解
3. coding agent 的可验证性不能自动替代人成长
Agent 中的 Ground Truth Feedback 解释了为什么 coding agent 比纯文本任务更容易落地:代码任务有测试、编译、lint 这类客观反馈。
但这些反馈主要回答“当前产物能不能过关”,不自动回答:
- 为什么要这么设计
- 这个抽象什么时候会坏
- 有没有更小的改法
- 这个组织以后谁能维护
因此,“软件好验证”并不等于“成长问题自动被解决”。验证能告诉你结果有没有过当前门槛,不会自动补上判断形成过程。
4. AI 不是平均提升所有人,而是放大分层
更准确的说法往往是:
- 高自驱新人会更快变强
- 低自驱新人会更快空心化
- 强资深工程师会得到更大杠杆
- 弱资深工程师会更快暴露不足
所以 AI 更像差距放大器,而不是平均提升器。
一个更完整的能力重排模型
如果把 AI 时代的软件工程能力重新分层,可以至少看到六个更关键的能力重心:
1. 问题定义能力
- 用户真正要什么
- 哪些是必须做的
- 哪些是伪需求
- 边界在哪里
- 验收标准是什么
2. 方案判断能力
- 是否要做这个抽象
- 该用哪条技术路线
- 哪个方案短期快但长期贵
- 哪些前提一旦不成立方案就要重来
3. 架构约束能力
- 模块边界是否清晰
- 契约是否稳定
- 目录职责是否明确
- 规范和工具链是否能让 AI 不容易写坏系统
4. 验证能力
- 单测、集成测试、E2E
- 性能基准
- 安全扫描
- 灰度与回滚
- 日志和线上指标
5. Debug 与事故复盘能力
- 现象是什么
- 影响范围是什么
- 最近改动是什么
- 哪个假设被证伪
- 根因是什么
- 为什么测试没挡住
6. 审查 AI 的能力
- 模型有没有顺着错误方向走
- 有没有破坏边界
- 有没有隐性耦合
- 有没有维护成本转嫁给未来
对个人的可执行建议
1. 永远保留三份产物
每次用 AI 做任务,至少要保留:
- 代码:改了什么
- 理由:为什么这么改
- 验证:怎么证明它是对的
2. 写代码前先让 AI 反驳你
比起“帮我实现”,更稳的问法是:
- 先不要实现,列出需求里的隐含假设和模糊边界
- 请反驳我的首选方案
- 在哪些条件下应该不用这个方案
3. 关键设计文档最好自己写第一版
AI 可以补漏、审查、列提纲,但第一版关键设计自己写,更能恢复过去“复盘”和“解释理由”的训练动作。
4. 给自己保留禁用 AI 区域
尤其对新人,应该刻意保留一些必须自己先完成的环节:
- bug 先自己定位一段时间
- 设计先自己写三种方案
- 复杂 PR 先自己读完 diff
- 事故先自己画因果链
5. 把 AI 当陪练,不是答案机
更健康的顺序是:
- 自己先判断
- 让 AI 补充
- 让 AI 反驳
- 自己再取舍
- 用测试验证
- 复盘差异
对团队与组织的可执行建议
1. 把资深经验产品化
AI 时代,口头规范不够,需要把经验固化成:
- lint
- 类型检查
- 单测门禁
- E2E 门禁
- 提交规范
- 目录边界检查
- API schema 校验
- 安全扫描
- Agent instructions
- hooks
2. PR review 从看代码升级为看决策
review 不应只问“能不能跑”,还要问:
- 为什么这样做
- 为什么不用别的方案
- 有没有更小改动
- 是否破坏抽象
- 新增测试是否真的证明关键路径
- 出问题怎么回滚
3. 保留人类观点碰撞
重要设计仍然需要真实同事之间的冲突和审视,尤其是:
- 架构边界
- 数据模型
- 安全与权限
- 跨团队接口
- 不可逆迁移
- 长期维护成本
4. 让新人参与事故和复盘,而不是只喂任务
高级工程师不是靠写新功能长出来的,而是靠处理复杂后果长出来的。
5. 不要只奖励短期 AI 提效
更健康的组织指标应该包含:
- 变更失败率
- 线上事故率
- 回滚次数
- 平均恢复时间
- PR 返工率
- 测试有效性
- 架构债务趋势
- 新人独立交付周期
- 关键模块是否有人能接手
一个更高层的结论
Vibe Coding 真正让人焦虑的,不是“以后还要不要程序员”,而是:
- 实现变快了,但判断没有自动变强
- 代码变多了,但理解不一定变深
- 工具更强了,但人的反馈回路可能变弱
- 组织更高效了,但长期培养机制可能被抽空
所以更准确的判断不是“AI 替代程序员”,而是:
- 它会淘汰一类只会照样板、不会验证、不会复盘、把模型输出当答案的人
- 它也会放大一类能定义问题、做取舍、审查结果、建立护栏、把经验沉淀成团队资产的人
真正的分水岭不是“会不会用 AI”,而是:
你是在用 AI 扩展自己的理解,还是用 AI 替代自己的理解。
前者会变强,后者会空心化。短期内两者看起来都能交付,长期看差距会非常大。