这两年有一个特别流行的说法:AI 都会写代码了,程序员是不是快没用了?
这个说法有冲击力,也很符合媒体叙事。一个 CEO 宣布裁员,说我们现在用 AI,团队要更小、更扁平;一个产品负责人说,新代码里有多少多少比例是 AI 写的;社交媒体上再来几张截图,一个人一晚上做出一个 App。你看,故事闭环了:AI 会写代码,所以写代码的人要失业。
但这正是问题所在。这个故事太顺了,顺到像一个错误模型。
咱们先给这个问题换个问法:软件工程师的工作,到底是不是“把代码打进电脑里”?
如果是,那 AI 的确危险。因为现在的 AI 写代码已经非常强,尤其是在明确任务、局部修改、生成样板、补测试、解释代码这些环节,能力提升很快。但如果软件工程不是打字,而是把一个模糊需求变成可靠系统,那结论就完全不同了。
NormalTech 这篇文章提出了一个很好的模型,叫“decide-execute-deliver sandwich”,我们可以翻译成“决策-执行-交付三明治”。
中间那层是执行,也就是写代码、改代码、生成实现。AI 最擅长压缩的就是这一层。过去你要写三小时,现在可能十分钟生成一个版本。过去你要查 API,现在它直接给你补出来。这是实实在在的生产力提升。
但软件工程还有两端。
第一端是决定做什么。用户真正要什么?这个功能该不该做?现有系统能不能承受?它和业务目标是什么关系?监管、成本、维护、团队协作、历史包袱,哪个才是关键约束?这些不是“生成代码”的问题,而是定义问题的问题。
第二端是交付以后谁负责。代码能跑,不等于能上线;能上线,不等于能长期维护;测试通过,不等于没有安全、隐私、性能、边界条件和组织责任。一个系统出了事,客户不会找 AI 对话框负责,老板也不会把事故报告写给模型看。
所以真正的结构是:AI 让执行层变薄,但决策层和交付层仍然很厚。甚至在很多情况下,因为 AI 生成代码太容易,决策和验证反而更重要。
这里有个反直觉点:AI 写的代码越多,人类工程师越不能只会写代码。
这不是说工程师要退回手工劳动,拒绝工具。恰恰相反,高手会大量使用 AI。但高手用 AI 的方式,不是“vibe coding”,不是闭着眼睛让它一路生成,然后祈祷能跑。高手是在做“agentic engineering”:让 AI 当强力执行者,自己保持控制权、判断权和责任权。
普通人会问:AI 能不能把这个功能写出来?
高手会问:这个功能该不该存在?它改了哪个系统假设?如果 AI 写错了,我怎么发现?如果今天看起来没错,三个月后谁维护?这个变更会不会让业务、用户和团队都背上新债?
你看,问题的颗粒度完全不一样。
文章里还有一个有意思的数据:研究发现,AI agent 可以让代码行数大幅增加,但发布量的提升远没有那么夸张。这说明什么?说明“写出来”和“交付出去”之间有一条很宽的河。AI 可以帮你造船,但它不能替你决定去哪,也不能替你对沉船负责。
这也解释了为什么很多“AI 导致大裁员”的故事,仔细看都有点像 AI washing。公司本来就有财务压力、本来就要削管理层、本来就要重组业务,但对外说“我们因为 AI 更高效了”,听起来更现代、更有股价想象力。AI 成了一个漂亮的解释框,而不是实际因果。
这不是说 AI 对就业没有影响。它当然有影响,而且影响会很深。纯粹执行型、只会接 ticket 写代码的人,议价能力会下降。初级岗位会变难,因为过去很多“练手”的执行任务会被 AI 吃掉。职业路径会重构,有些人会突然发现,自己过去引以为傲的技能变成了默认配置。
但这跟“软件工程师消失”不是一回事。
更可能发生的是另一种局面:软件变便宜了,于是世界要更多软件。过去不值得开发的内部工具,现在值得了;过去一个小公司请不起工程师,现在可以用 AI 加一个懂业务的人做出第一版;过去很多行业只有 Excel 和人工流程,现在会被小软件、小 agent、小自动化渗透。
经济学上有个说法,叫需求弹性。东西变便宜以后,需求可能不是减少,而是爆炸。农业机械化以后,人不会吃一百倍的饭,所以农业劳动力下降;但软件不一样。人类对软件的需求,远远没有到头。每个行业、每个部门、每个小流程,都可以被重新软件化一遍。
所以未来稀缺的不是“会不会写一段代码”,而是三种能力的组合:懂领域,懂系统,懂 AI 协作。
懂领域,才能知道什么问题值得解决;懂系统,才能知道一个改动会牵动哪里;懂 AI 协作,才能把执行层交给机器,同时不丢掉判断和责任。
这就是软件工程师的新位置:不是打字员,而是认知起重机操作员。机器负责重物,人负责方向、边界和安全。
夜雨聆风