AI程序员软件工程职业成长技术趋势

AI 把编程这件事接管之后,作为程序员的我该何去何从?

周云龙 / InfoQ··原文链接
收录于 2026/5/15 18:11:09

AI 把编程这件事接管之后,作为程序员的我该何去何从?

作者: 周云龙 | 编辑: 蔡芳芳 | 来源: InfoQ


核心判断

工程师的工作正在从「写代码」转向「系统性地把高成本验证的任务转化为低成本验证的任务」——前者交给 AI,后者是人不可替代的部分。


01 真的有人在被替代

数据说话

指标数据
22-25岁开发者就业率下降自2022年底高峰下降近20%
全球初级开发岗位缩水过去一年减少20-30%
英国科技行业应届岗位2024年缩减近一半
AI替代归因裁员占比从不到10%跳到20%

被替代的岗位特征

  • 纯切图的前端
  • 写增删改查的初级后端
  • 套模板做后台管理系统的工程师
  • 刚毕业还在练手的新人

共同点:任务清晰、变种不多、出错容易看出来——AI 最擅长接管的类型。


02 但替代论的另一半是夸大的

三个反例

反例1:vibe coding 发明者的手写回归

Andrej Karpathy(前 OpenAI,vibe coding 一词创造者)开源 Nanochat 项目时写道:

尝试过让 Claude 和 Codex 帮忙,但它们做得不够好——大概是因为这个仓库离它们见过的数据分布太远了。

vibe coding 的发明者,做严肃技术项目时回到了手写。

反例2:模型厂家自曝失败模式

Anthropic 官方博客承认:

最严重的失败模式之一是 Claude 倾向于把一个功能标记为完成、但实际上没有经过真正的测试。

反例3:AI 生成测试的质量数据

测试类型得分
变异测试(AI生成)40%
变异测试(专业工程师)70%+
AI 生成测试准确率仅 6.3%

结论:AI 不是不能写代码,是不能可靠地验证自己写的代码。它能造,但没法判断造得对不对。


03 真正的分界线是「可验证性」

判断标准

一段代码写出来之后,确认它做对了的成本有多低?

验证成本处理方式示例
AI 全包,验证自动化小工具函数,跑一下输入输出就知道
人不可替代并发逻辑、支付链路、老代码兼容、跨服务接口

高验证成本的特征

  • 错了可能要在生产环境跑几天才显现
  • 错了直接是钱的损失
  • 错了破坏的是十年前的兼容
  • 错了影响其他团队的代码

04 一个翻车的实例

作者用 Claude Code 完成「元素检查器升级」Sprint(9个包的中型仓库):

  • 13个子任务,前12个「通过」
  • 第13个(手工测试)一上手就翻车

三个坑

  1. 客户端插件版本是旧的,新功能没打进去
  2. 端到端测试进入非选中模式,「通过」全是假象
  3. 测试夹具状态没清干净,加载到错的项目地址

根本问题:AI 写的实现「通过」了 AI 写的测试,不是从需求层面对代码的真正验证。


05 工程师的工作正在变成另一种活

新核心工作

从「写代码」转向:

「系统性地把高成本验证的任务转化为低成本验证的任务」

具体变化

过去现在
测试为了「抓 bug」测试从「用户怎么用、会踩哪些边界、错了怎么恢复」出发
类型定义「做文档」类型是给 AI 划定工作边界,让它越界时你能立刻发现
日志/监控/告警 = 「运维相关」变成核心工程能力——只能靠这些机制在它出错时第一时间知道
代码评审看「写得对不对、漂亮不漂亮」审验证机制本身:需求级测试、可观测性、回滚开关

关键认知

Simon Willison:

我不会把任何我无法向另一个人解释清楚的代码合并到我的仓库。

Redis 作者 antirez:

人是用来帮代码跳出局部最优解和错误的。

Anthropic 工程博客:

模型再强,给它高层提示让它自己跑,做不出生产级产品。让它能跑稳的,是套在模型外面的「harness(挽具)」。


06 一个被悬置的问题

如果 AI 快速接管入门级工作,5-10年经验的工程师从哪里来?

没有今天的入门级新人,就没有五年后的中级、十年后的资深。

一个职业的「育苗床」如果被抽掉:

  • 是只剩有经验的人和 AI、再没有新人?
  • 是新人的入口从「写代码起步」变成「第一天就做需求拆解和验证机制」?
  • 是中级和资深的成长曲线整个变形?

我们在一艘自己脚下正在下沉一层的甲板上讨论「如何用 AI」。


结语

当「编程被解决了」成为热词,真正值得追问的不是「程序员会不会消失」,而是:

当代码生成越来越廉价之后,软件工程中真正稀缺、也真正不可替代的能力,究竟会转移到哪里。

作者给出的答案是:验证能力——把不可验证的变成可验证的,把高成本验证的变成低成本验证的。

这个活,AI 干不了,或者说,干不好。