为什么 AI 还没有取代软件工程师,而且也不会取代

LLM 编码的能力与局限

  • 现在 LLM 已经可以搭建完整应用(Web、移动端、基础设施即代码),并处理非平凡任务(逆向工程固件、安全脚本、Terraform/Ansible、Frida 等)。
  • 它们在样板代码、连线和“文本形”后端问题上表现出色;但在细腻的 UX、视觉品味和边缘情况上要弱得多。
  • 模型仍会犯基础的逻辑错误(例如按字符串排序日期),而且会毫不犹豫地沿着错误路径继续下去,却意识不到自己错了。
  • 有效使用需要强的人类引导、测试和审查;没有指导的“vibecoding”会产出大量脆弱、低质量的代码。

从零开始与维护,以及复杂性

  • 对于独立开发者和小团队,LLM 让过去不可能完成的 5 万到 10 万行代码项目变得可行;时间从打字转向规划、阅读和 QA。
  • 在更大的系统中(许多工程师、数百个功能),复杂性、耦合和不可见约束占主导。LLM 目前还无法很好地处理这些问题。
  • 从零开始的原型大体可以自动化;长期维护、与遗留系统集成以及安全仍然困难且高度依赖人类。

取代 vs 赋能

  • 一些人表示,在小型初创公司和个人项目中,确实出现了“几个开发者”被具体替代的情况;另一些人则认为这些其实是全新的项目,本来就不会雇佣工程师。
  • 许多人把 AI 看作一种放大器:一个优秀工程师 + agents 可以取代更大但水平一般的团队,尤其是在新项目上。
  • 形成的共识是:弱的、只会“倒票”的开发者风险最大;能够为 agents 进行规格定义、审查、调试并围绕它们做架构的强工程师,会获得更大的杠杆。

决策、领域知识与责任

  • 核心价值正在转向:
    • 决定要做什么(产品思维、领域知识)。
    • 验证并对交付结果负责(测试、安全、合规)。
    • 深入理解代码库和业务上下文,以便处理取舍。
  • 非技术人员已经在用 AI 构建内部工具,但很快就会碰到复杂性墙,实际上变成了训练不足的开发者。
  • 组织仍然需要一个人类“背锅者”,而且目前还不能把法律/运营责任外包给 AI;供应商也不会提供责任担保。

经济与劳动力市场影响

  • 有人预计会出现“3D 打印机/CNC 时刻”:定制小工具会多得多,传统开发岗位会更少,平均薪资更低,而顶尖人才薪资更高。
  • 另一些人指出历史规律:自动化往往会扩大软件总需求,而不是缩小它,尽管具体职位和头衔会发生变化。
  • 有人担心 AI 会把编码商品化,掏空中等技能岗位,并把回报集中到少数高技能的“AI 牧羊人”手中。