第一次用 Copilot 的时候,我盯着屏幕发了很久的呆。我写了一个函数名和几个参数,它就把整个函数体自动补全了。不是那种"猜你要输什么"的智能补全,而是真的写完了代码。逻辑正确,风格一致,连边缘情况都处理了。
那一刻我的感受不是兴奋,是恐惧。如果 AI 能写出这样的代码,我还要做什么?
这个问题困扰了我整整一个月。我试过各种方式来"对抗"——写更复杂的算法、用更小众的语言、做更底层的工作。但后来我发现,对抗没有意义。AI 写代码的能力只会越来越强,这条路是挡不住的。真正有意义的问题不是"怎么阻止 AI 写代码",而是"当 AI 能写代码了,程序员的价值在哪"。
AI 擅长什么,不擅长什么
经过大半年的实践,我对 AI 写代码的能力边界有了比较清晰的认识。
AI 擅长的事
AI 在写代码这件事上,最擅长的是模式识别和模式生成。任何已经有了大量现成示例的代码模式,AI 都能写得很好。比如:
- 标准的 CRUD 接口
- 常见的数据结构操作
- 已知算法的实现
- 配置文件和样板代码
- 单元测试和文档注释
这些代码的共同点是:它们已经有无数个版本存在于训练数据中。AI 只需要"回忆"出最常见的模式,然后根据你的上下文做微调。这个能力让人惊叹——它确实能写出 90% 的日常代码。
AI 不擅长的事
但 AI 在另外一些事情上表现得很差:
- 理解业务上下文。AI 不知道你的公司为什么做这个产品,不知道你的用户有什么痛点,不知道你的老板为什么在会议上拍了桌子。这些"非技术"的信息,决定了代码应该怎么写,但 AI 完全无法获取。
- 做取舍。写代码的本质是做取舍——性能还是可读性?快速上线还是长期可维护?做一个通用的方案还是解决当下问题?这些取舍没有标准答案,取决于你的具体处境,而 AI 不了解你的处境。
- 承担责任。当一个功能出 bug 了,AI 不会背锅。当你做了一个错误的架构决策,AI 不会承担责任。责任是程序员无法转移给 AI 的东西——因为最终为代码负责的,永远是写代码的人。
程序员的新价值:从"写代码"到"决定写什么代码"
想清楚 AI 擅长什么和不擅长什么之后,我终于明白了程序员的新价值在哪里。
以前,程序员的核心价值是把需求翻译成代码。这个翻译过程本身就是一种稀缺能力——因为需求往往是模糊的,而代码是精确的,能在这两者之间架起桥梁的人,就是有价值的。
现在,AI 已经能完成"需求到代码"的翻译了。但问题是,需求本身从哪来?哪些需求应该被实现?哪些需求应该优先实现?实现到什么程度算"够好"?
这些问题的答案,决定了代码的价值,但 AI 无法回答。能回答这些问题的,只有真正理解业务的人。
所以程序员的新价值变成了这样:
需求判断
当产品经理说"我们要做一个数据看板"时,你需要判断:这个看板解决什么问题?用户真正需要的是什么?是一张实时更新的图表,还是一份每周自动发送的邮件报表?AI 能帮你把看板写出来,但它不能帮你决定要不要做、做成什么样。这个判断力,来自你对业务的理解、对用户的洞察、对技术的经验。
系统设计
AI 可以写一个功能,但它不能设计一个系统。系统设计是做边界划分、做模块拆分、做接口定义——这些决策决定了系统未来三年的演变方向。AI 没有"未来三年"的概念,它只看得到你当前的这一行 Prompt。
风险评估
资深程序员和初级程序员的区别,很大程度上在于"风险意识"。知道什么地方可能出问题、知道什么技术方案有隐藏的风险、知道什么时候该保守什么时候该激进——这些判断力来自于踩坑经验,来自于对失败模式的深刻理解。AI 没有踩过坑,它不知道什么是"痛"。
质量把关
AI 写代码的速度再快,如果没有人把关,代码质量也无法保证。把关不仅仅是"看代码有没有 bug",而是看代码是否可维护、是否可扩展、是否符合团队的编码规范、是否和现有系统一致。这些判断需要深度理解团队和项目,这是 AI 做不到的。
如何从现在开始准备
如果你是一个程序员,并且担心 AI 会取代你的工作,我的建议是:
- 不要把全部精力放在"写代码"上。写代码的能力依然重要,但不再是你的核心竞争力。你需要的是"比 AI 更懂业务"、"比 AI 更能做判断"、"比 AI 更会承担责任"。
- 主动去理解业务。参加产品评审会,和用户聊天,看竞品分析。你越懂业务,你越能判断什么代码应该被写、怎么写才有价值。
- 培养系统设计能力。写功能代码是战术,做系统设计是战略。战术可以交给 AI,战略必须自己来。
- 把 AI 当作你的"初级工程师"。你告诉它做什么,它帮你快速执行。但你需要做那个"告诉它做什么"的人。这比"自己写代码"需要更高的能力——它需要你清晰地知道,什么是正确的、什么是有价值的。
十年前,程序员的价值是"能把代码写出来"。五年前,是"能把代码写好"。现在,是"能决定什么代码值得写"。这个转变不是坏事——它意味着程序员的角色从"执行者"变成了"决策者"。而决策者的价值,永远比执行者高。