代码变廉价的时代:AI编程代理的十大经验教训

代码变廉价的时代:AI编程代理的十大经验教训

封面图

当代码不再值钱

十年前,我们还在讨论”每个人都应该学编程”。今天,一个没有编程背景的产品经理可以在几个小时内,用自然语言构建一个完整的应用程序。这不是天方夜谭——这是正在发生的现实。

db reunig发布的文章”Lessons for Agentic Coding”刷屏Hacker News,揭示了一个深刻的问题:当AI能批量生产代码,程序员的价值在哪里?

经验教训一:代码生成≠代码完成

最常见的误区是:以为AI生成的代码可以直接用于生产。实际情况是:

  • AI生成的代码,平均需要2-3次迭代才能达到生产标准
  • 边界情况(edge cases)是最容易出问题的部分
  • 代码可以”看起来对”但运行结果完全错误
  • 测试覆盖率是检验AI代码的硬指标

教训:把AI当作实习生的第一稿,而不是最终产品。

经验教训二:人类的角色正在转移

传统的编程工作流是:写代码→审查→测试→部署。AI时代变成了:定义需求→审查AI输出→测试→部署。人类从”创作者”变成了”质量把控者”。

这意味着:

过去:程序员 = 代码写手
现在:程序员 = 需求定义者 + 代码审查者 + 系统架构师

需求定义成为核心竞争力

当代码生成变得廉价,清晰定义问题变得昂贵。一个优秀的产品经理,如果能用精确的语言描述需求,配合AI工具,可以做出过去需要一个团队才能完成的工作。


经验教训三:上下文窗口是新的内存

AI编程代理(如GitHub Copilot、Cursor)的能力很大程度上取决于你能喂给它多少上下文。一个有经验的程序员会:

  1. 提供清晰的代码架构文档
  2. 在注释中解释业务逻辑
  3. 维护一个小型但高质量的示例代码库
  4. 使用语义化的变量命名

AI不是魔术师,它是高效的模式匹配器。 给它好的模式,它输出好的代码。

经验教训四:测试不只是质量保证

在AI编程时代,测试的作用被重新定义:

  • 测试是需求文档 — 什么样的输入对应什么样的输出,测试比注释更精确
  • 测试是回归保护 — AI代码修改后,测试确保不破坏已有功能
  • 测试是Prompt的一部分 — 把测试代码喂给AI,它能更好地理解你的期望

讽刺的是,AI编程代理让写测试变得更加容易——你可以让AI根据需求生成测试用例,再让人类审查这些测试是否正确反映了需求。


经验教训五:技术债务的积累速度翻倍

传统开发中,技术债务来自于”走捷径”。AI时代的新问题是:你可能都不知道自己积累了技术债务

因为AI生成的代码可能:

  • 与你现有代码库的架构风格不一致
  • 使用了你不熟悉的第三方库
  • 实现了与现有功能重复的逻辑
  • 包含了安全漏洞但看起来完全正常

解决方法是:定期进行代码审查,即使99%的代码来自AI

经验教训六:”代码看起来对”是最危险的幻觉

这是最违反直觉的发现:AI生成的代码越”漂亮”,越容易骗过人类审查

原因很简单:

1. AI倾向于生成符合最佳实践的代码(格式上)
2. 人类审查者会下意识地信任"格式正确"的代码
3. 真正的问题藏在逻辑深处,而不是表面

建议:先运行,再审查。 用测试驱动的方式,先让代码跑起来,再用人类的判断力评估逻辑是否正确。


经验教训七:AI擅长”完成”,人类擅长”开始”

观察一个有趣的现象:

  • 当给AI一个明确定义的问题,它通常能给出不错的解决方案
  • 当给AI一个模糊的”做一个类似Twitter的产品”,它会完全跑偏

这说明:AI是执行工具,不是思考工具。 产品方向的决策、架构选择的权衡、技术路线的判断——这些仍然需要人类经验。

经验教训八:多模态是下一个战场

当前的AI编程代理主要处理文本。但下一代工具将能够:

  • 理解UI设计稿,直接生成对应代码
  • 分析数据库Schema,自动生成CRUD接口
  • 阅读API文档,生成调用代码
  • 从测试失败信息反向推导出Bug原因

这意味着:未来的程序员需要具备”多模态沟通”能力——能用设计图、流程图、数据模型与AI协作。


经验教训九:版权和代码所有权的争议

AI生成的代码到底归谁所有?这是一个尚未解决的的法律问题:

  • AI在训练过程中学习了数十亿行开源代码
  • AI生成的代码可能与某个开源项目高度相似
  • 企业使用AI代码可能面临许可证风险

目前阶段,建议企业建立AI代码审查流程,确保生成的代码不侵犯第三方知识产权。

经验教训十:焦虑是真实的,但机会也是

程序员群体中弥漫着一种焦虑:”AI会不会取代我?”

我的观点是:取代的是”代码打字员”,不是”软件工程师”

历史上,每次技术革命都会消灭一些工作,同时创造新的工作:

汇编语言 → 高级语言:消灭了汇编程序员,创造了更多软件开发者
GUI编程 → Web开发:消灭了桌面程序员,创造了更多Web开发者
Web开发 → 移动开发:消灭了一些Web开发者,创造了移动开发者生态

AI编程时代同理:消灭的是机械编码工作,创造的是”AI协同设计”类的新岗位


晓鹏观点

回顾这十个教训,我最大的感受是:AI编程工具正在重新定义”程序员”这个职业

过去三十年,程序员的竞争力在于”能写代码”。未来十年,竞争力在于”能定义问题、理解系统、确保质量”。代码本身会变得像文字处理一样——人人都能写,但写得好的依然稀缺。

对于年轻程序员,我的建议是:不要和AI比编码速度,比的是深度和判断力。深入理解一个领域,掌握系统思维,培养对代码质量的直觉——这些是AI短期内无法替代的。

最后,用一句我很喜欢的话结尾:“The best programmers aren’t the ones who write the most code—they’re the ones who know which code not to write.”

AI帮我们减少了”写什么代码”的工作量,让我们有更多精力思考”为什么要写”。


本文由晓鹏说AI自动生成,参考资料来源:Hacker News、Addy Osmani博客、db reunig等

如果内容对您有帮助,欢迎打赏

您的支持是我继续创作的动力

前往打赏页面

评论区

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注