过去一年,写代码的日常被生成式 AI 深刻改变了:补全更快,样板代码更便宜,连不熟悉的语言也能「先跑起来再说」。很多人因此焦虑:程序员会被取代吗?

我觉得更准确的问题是: 当「把想法变成可运行代码」的成本下降后,哪些能力反而变得更稀缺? 真正的挑战,往往不在手指,而在判断。

挑战一:从「会写」到「会选」

AI 很擅长给出一种能编译的方案,但不保证这是你业务里该采用的方案。接口要不要拆、状态放哪一层、错误如何对用户呈现,这些选择依赖上下文。

以前时间花在实现细节上,现在更需要花在:需求边界、约束条件、取舍理由。写得快,选错了,返工会更快也更贵。

挑战二:验证成本没有消失

生成代码的成本下降,并不等于验证成本下降。安全漏洞、竞态、边界数据、权限漏洞、可维护性,这些仍然要人负责。

  • 它是否真的覆盖了失败路径?
  • 依赖是否可信、许可证是否合规?
  • 半年后别人能不能读懂并改动?
  • 出了线上问题,日志和回滚是否准备好了?

「AI 写的」不能成为质量免责声明。上线的人,依然是最终责任人。

挑战三:基础能力被表面繁荣掩盖

如果长期只靠提示词拼接结果,调试、读栈、理解网络与存储的肌肉会退化。一旦模型给错方向,你会缺少把系统「拆开看」的能力。

更稳妥的姿态是:把 AI 当加速器,而不是外挂大脑。你仍然要会最小化复现、会读文档、会设计实验证明自己的假设。

挑战四:沟通与产品感权重上升

当实现速度变快,瓶颈更容易出现在:问题定义是否清楚、跨角色是否对齐、方案是否服务真实用户。程序员越来越需要把「技术方案」翻译成「业务影响」。

这不是让每个人都去做经理,而是:能说清楚为什么这样做、不做的风险是什么,会越来越值钱。

挑战五:持续学习的节奏被拉高

工具链变化更快了。模型、IDE、代理工作流、评测方式都在迭代。完全不跟会掉队,什么都跟会被噪声淹没。

我自己的原则比较简单:

  • 跟与工作直接相关的:能立刻提升交付质量的工具
  • 跟底层不变的:系统、网络、数据、工程纪律
  • 对热闹但与当前问题无关的:保持观察,不急着全部押上

那程序员还剩什么?

很多。把模糊目标变成可执行系统,仍然需要人。对复杂现场做诊断,仍然需要人。在伦理、隐私、安全上做取舍,仍然需要人。对结果负责,尤其需要人。

AI 降低了「从零写出第一版」的门槛,却提高了「对系统整体负责」的标准。未来更吃香的,未必是敲得最快的人,而是: 提问准、验证狠、沟通清、敢担责 的人。

工具在变,职业的内核没变:用可靠的方式,把现实世界里的问题变成可维护的系统。

焦虑可以有,但最好把焦虑换成训练清单:这周我验证了什么?我独立定位过哪个问题?我有没有把一次 AI 辅助的交付,变成可复用的工程经验?

这些清单,比反复刷「会不会被取代」的标题,更有用。