关于 AI 在编码与软件工程中的作用,有两种流行但过于简化的判断: “代码门槛大幅降低 → 软件工程师需求消失。” “代码边际成本趋近于零 → AI 让实现免费,人的价值上升。”
这两句话,都局部成立、阶段性正确,但本质上是不完整的,甚至是危险的。 更真实的情况是: 人的价值不会自然上升,只会被重新定价。
而且,这种重定价不是线性的,而是剧烈分化的: 甚至可以更直白一点: 不是“人是否有价值”,而是“你处在价值函数的哪一段”。
我先说一个我自己越来越确定的判断: AI 不是在替代“写代码的人”,而是在替代“没有建模能力的思考”。
很多人把问题理解成“coding 被干掉了”,但我认为本质不是这个。 更关键的是: 过去很多所谓“工程能力”,其实是借助代码表达思考能力的替代品。 你写一堆类、抽象、架构图,本质是在表达: 你如何理解问题 你如何拆分复杂系统 你如何处理不确定性
但现在——AI 可以直接跳过这个表达层。 于是问题变成一个很残酷的版本: 如果不通过代码,你还能不能清晰地定义问题?
很多人其实是不行的。
换个角度看,这里有个反直觉点: 代码成本下降,并没有让系统变简单,反而让系统失控风险更高。 以前你要花一周写一个服务,现在 10 分钟就能生成 10 个版本。 听起来是效率提升,但我更倾向于这样理解: 我们从“构建问题”,进入了“选择问题”。
问题不是“能不能做”,而是: 哪一个版本才是对的? 哪个约束被隐式违反了? 哪个路径在未来三个月会炸?
而这些,AI目前几乎不承担责任。
所以我越来越觉得,人真正的位置在一个很奇怪的地方: 不是更靠近“创造”,而是更靠近“裁决”。 你不再是 builder,你更像是一个: 在巨大解空间里,不断否定错误路径的人。
甚至可以说—— 人的核心能力正在变成一种“负能力”:
但这里有个更深一层的问题,我觉得很多讨论没有触及: “正确做什么”这件事,本身在变得更难,而不是更清晰。
因为当实现变便宜之后: 结果是: 目标函数开始漂移
以前因为贵,你会认真定义需求; 现在因为便宜,你更容易跳过定义,直接生成。 这会导致一种很典型的现象: 系统在快速进化,但方向是不稳定的。
这其实是一个“隐性失控”。
我再往下压一层,说一个我自己也还没完全想清楚的点: AI builder 时代,人和 AI 的关系,不是“分工”,而是“纠缠”。 传统说法是: 但现实不是这么干净。 AI 在生成的过程中,会反过来影响你对问题的理解: 你看到一个生成结果,会调整目标 你看到一个 UI,会重新定义需求 你甚至会被 AI 的“可实现性”牵着走
所以更准确的描述是: 目标不是人先定义好的,而是在“人-AI交互过程中被共同塑形”的。
这件事很微妙。 因为这意味着—— 人不再完全掌控“为什么做”,而是在和 AI 一起“发现为什么做”。
那人到底还有什么用? 如果一定要压缩成一句我自己的判断: 人的价值,不在于产出,而在于“让系统不偏航”。
注意,不是“让系统变强”,而是“不偏”。 这是一种完全不同的能力模型。
再具体一点,我会把人的角色拆成三种,但其实边界是模糊的: 一种人,会退化成“prompt 操作员” 他们会用工具,但不理解系统。 这类人短期看起来效率很高,但长期是最危险的。 一种人,会成为“系统建模者” 他们能定义: 这类人会越来越稀缺。 还有极少一类人,会成为“系统演化的操盘者” 他们关注的不是单个系统,而是: 多系统之间的耦合 组织如何围绕 AI 重构 决策如何被算法侵蚀
这类人,其实已经不在“软件工程”这个范畴里了。
我最后补一个有点刺耳的结论: AI 并没有让“不会写代码的人”获得平权,它只是让“不会思考的人”更快暴露。
甚至可以说: 过去代码是一个缓冲层,让很多人看起来在做复杂事情。 现在这个缓冲层消失了。 于是问题变得非常直接: 你到底有没有在做判断?
如果要说协同方式,我不太想用“人负责收敛,AI负责发散”这种说法(虽然它是对的,但有点过于干净)。 我更倾向于一个不那么优雅但更真实的描述: AI 在不断提出可能性,人不断否决大部分可能性,然后在剩下的路径里,被AI反过来影响判断。
这是一个来回拉扯的过程。 而不是一个分工清晰的流水线。
我自己现在的一个工作习惯变化,可能可以作为一个很小的侧面: 以前我写代码,是在“实现一个我已经想清楚的东西”。 现在我更多是在: 通过和 AI 的反复生成,逼自己看清楚我其实没想清楚什么。
这件事,说实话,有点不舒服。 但也挺真实。 |