AI能写代码,程序员还剩什么
前几天,我看到一个有趣的对比:
一个初级程序员用 AI 一小时写了 2000 行代码,而一个资深架构师花了一周时间,只画了 几张架构图。
谁的效率更高?
如果放在五年前,这个问题几乎不需要思考。能写代码的才是真本事,画图不过是纸上谈兵。
现如今呢?
2000 行代码,AI 可能只需要几分钟。
而那几张架构图背后,是一个工程师 十几年踩过的坑、交过的学费、对业务本质的深刻理解。
这不是在说代码不重要。代码是实现想法的工具,这一点从未改变。
但这个故事让我们不得不思考一个更本质的问题
当 AI 已经能高质量地完成"写代码"的时候,人的价值到底在哪里?
答案或许有点怪:AI 能写代码,但它决定不了代码往哪走。
AI 的能与不能
先承认 AI 的强大。
现在的 AI 编程工具已经可以做到很多事情:
- 根据需求文档生成完整的函数实现
- 自动修复 bug 并给出解释
- 帮你重构一段混乱的代码
- 根据描述生成一整个小型项目
在很多场景下,AI 生成的代码质量已经不亚于一个有 几年经验 的开发者。
这挺厉害的。但如果我们仔细观察,会发现一个有趣的现象,
AI 所有这些能力的边界,都被一条看不见的线约束着。
这条线,就是 方向。
举几个例子你就明白了:
你让 AI 写一个用户登录功能,它能写得很好。但你问它"我们的产品应该用 手机号登录 还是 邮箱登录",它给不出有意义的答案。
你让 AI 优化某个接口的性能,它能给出十几种优化方案。但你问它"我们应该 先优化这个接口,还是把 资源投到新功能开发 上",它只能泛泛而谈。
你让 AI 实现一个推荐算法,它能实现得相当专业。但你问它"推荐算法带来的 体验提升,和它带来的 隐私风险,怎么平衡",它能做的只是罗列利弊。
这并不是 AI 的缺陷。这是 AI 的本质——
它是一个极其强大的工具,但工具本身不产生目的。
代码背后的"为什么"
每个写进代码库的决定,背后都有一个 "为什么" 。
- 为什么选择 这个技术方案 而不是那个?
- 为什么这里要用 异步处理 而不是同步?
- 为什么把 缓存 放在这一层而不是那一层?
这些问题没有标准答案。
它们取决于 业务的优先级、团队的现状、用户的特征、公司的战略,甚至取决于你对"好代码"的定义。
而这些"为什么",恰恰是 AI 最难介入的领域。
不是因为 AI 不够聪明,而是因为这些问题的答案,往往不在代码里,也不在文档里,而在 人的脑子里——
在无数次和业务方争吵后的妥协里,在凌晨三点排查故障后的顿悟里,在看着用户用脚投票后的反思里。
AI 可以帮你写出"正确"的代码,但它无法帮你判断这段代码对于你的业务来说是否是 "合适" 的。
决定方向是一种稀缺能力
如果我们把软件开发拆解成两个层面:
第一个层面是 "怎么做" ——给定一个明确的目标,用代码实现它。
第二个层面是 "做什么"和"为什么做" ——决定我们要解决什么问题,为什么要解决它,以及应该用什么方式解决。
在过去,这两个层面往往是交织在一起的。你要成为一个合格的程序员,不仅要会写代码,还要理解需求、权衡取舍、参与决策。
但 AI 的出现,第一次让我们有机会把这两个层面相对清晰地分开。
"怎么做"这件事,AI 正在以惊人的速度接管。它学得很快,而且不知疲倦。
而 "做什么"和"为什么做" ,依然是 我们的领地。
而且,随着"怎么做"变得越来越容易,后者反而变得越来越重要。
这有点像驾驶的进化。
自动挡出现的时候,很多人觉得驾驶变简单了。但实际上,真正决定你能不能安全到达目的地的,从来不是你踩油门的力度有多精准,而是你知不知道应该在 什么时候踩油门、什么时候应该刹车、什么时候应该绕路。
会踩油门的人很多,知道往哪开的人很少。
程序员的新定位
这给码农这个职业提出了一个尖锐的问题:
如果 AI 能写代码,那我们的核心价值是什么?
我的想法是:成为那个决定"代码往哪走"的人。
这意味着你需要培养几种 AI 很难替代的能力:
第一,理解业务本质的能力。
你不仅要知道代码怎么写,还要知道这段代码在解决什么问题,这个问题为什么重要,谁会从中受益,不解决会有什么后果。
这种对业务本质的理解,是任何 AI 工具都 无法给你 的。
第二,权衡取舍的判断力。
软件工程本质上是一门关于 权衡 的艺术。
时间与质量的平衡,简单与扩展的取舍,性能和可维护性之间的拉扯。
这些没有标准答案,需要结合具体场景做出判断。AI 可以给你数据和建议,但 最终拍板的还是人。
第三,定义问题的能力。
爱因斯坦说过:
"如果给我一个小时拯救世界,我会花 55 分钟定义问题,花 5 分钟解决问题。"
在 AI 时代,这句话显得格外重要。
AI 擅长 解决问题,但不擅长 定义问题。当你能够清晰地描述一个问题,你就成功了一大半。而这种定义问题的能力,来自于对业务、对用户、对技术的深刻理解。
第四,做难而正确的选择。
有时候,正确的事情不一定是最快出成果的。有些技术债务必须还,有些架构必须重构,有些坑必须填。
这些活儿不会给你带来即时的成就感,但 不做只会越来越难走。
AI 可以帮你做得更快,但 要不要做,只有你能决定。
人机协作的新时代
最好的图景,是 人机协作各展所长。
AI 负责:代码生成、语法检查、简单 bug 修复、技术文档撰写——这些 重复性、模式化 的工作。
人类负责:需求分析、架构设计、技术选型、复杂问题定位——这些需要 洞察、判断、创意 的工作。
在这种分工下,人类不是被 AI 取代,而是从 "写代码的人" 升级为 "指挥代码方向的人" 。
这个转变并不容易。
它要求程序员不仅仅会写代码,还要懂业务、懂用户、懂产品、懂商业逻辑。要能够回答" 我们为什么要做这个功能",而不只是"这个功能应该怎么实现"。
说到底,这其实对程序员提出了 更高的要求,而不是更低的要求。
写在最后
AI 能写代码,这件事已经成为现实。它会越来越强,这是趋势。
但代码从来不只是关于代码。
代码是 思想的载体,是 业务的映射,是 人与人之间协作的桥梁。每一行代码的背后,都承载着某种意图、某种选择、某种价值观。
这些东西,AI 写不出来。
所以,不必焦虑 AI 会不会取代你。
你写的代码,有往"对"的方向走吗?
如果你能回答这个问题,并且答案是肯定的,那 AI 时代对你来说,不是危机,而是杠杆。
你会多一个不知疲倦的帮手,把你从重复劳动中解放出来,让你有更多时间去思考那些真正重要的问题
代码,应该往哪走。
我是博远,10 年架构师,持续分享 AI 时代的编程实战与思考。