Vibe Coding 可能导致高级工程师断档的讨论

围绕 Vibe Coding、Claude Code 协作实践与评论区讨论,整理 AI 如何改变软件工程中的反馈回路、学习路径、组织激励与工程师能力结构。

#tech / ai #type / synthesis #status / growing

[!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 CodeOpenAI 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 替代自己的理解。

前者会变强,后者会空心化。短期内两者看起来都能交付,长期看差距会非常大。

创建于 2026/5/14 更新于 2026/5/27