代码越便宜,程序员越贵?AI 时代的生存法则
最近读了 Django 创始人 Simon Willison 的一篇短文《Writing code is cheap now》,心里像被什么东西撞了一下。
作为一个写了十几年代码的老程序员,我一直觉得“代码值钱”是天经地义的。但 Willison 在文章里冷不丁地抛出一个事实:写代码这事儿,现在便宜得像白菜一样了。
读完这篇文章,我陷入了长考。这不仅仅是一个技术趋势的判断,更像是一次对我们职业生涯的灵魂拷问。
思维惯性的崩塌
回想一下,我们过去是怎么做开发的?
每次立项前,我们都要开漫长的评审会,做详尽的排期。为什么?因为程序员的时间太贵了。我们得精打细算,确保每一行代码都写在刀刃上。
在具体的编码过程中,这种“成本焦虑”更是无处不在。
“这个函数要不要拆得更细一点?”——算了,还得花半小时,先这样吧。
“要不要补个单元测试?”——工期太紧,先上线再说。
“文档要不要同步更新?”——代码能跑就行,以后再补。
我们习惯了做这些妥协。我们甚至把这种妥协称为“工程权衡”。但 Willison 提醒我们:这些习惯,都是建立在“写代码很贵”这个前提之上的。
现在,这个前提突然没了。
新杠杆的诱惑与陷阱
AI 来了。你把需求扔给 Agent,它哗啦啦给你吐出一堆代码。以前要写一天的功能,现在十分钟搞定。
爽吗?真爽。
慌吗?说实话,我有点慌。
因为我发现,代码生成的成本归零,并不意味着软件交付的成本归零。 相反,它可能制造了更大的麻烦。
这就像如果你是一个建筑师,以前搬砖砌墙很累,你得想清楚了再砌。现在你有了一支不知疲倦的机器人施工队,你一声令下,它们就能在一夜之间盖起一栋楼。
但这栋楼稳吗?承重墙在哪里?水电管线铺对了吗?
如果你没想清楚就让它们开工,你得到的不是一栋楼,而是一堆要在未来花十倍代价去清理的建筑垃圾。
有人说 AI 能让程序员效率翻十倍。但请记住,十倍的产出,如果缺乏管控,往往意味着十倍的技术债务。 以前我们欠债是“分期付款”,现在 AI 让我们有了“高利贷”的额度,一不小心就会破产。
工程思维的回归
读着读着,我突然意识到一个有趣的悖论:AI 越强,那些听起来“老掉牙”的软件工程理论和 PMP 管理智慧,反而越重要了。
为什么?
因为 AI 就是那个执行力爆表、但缺乏全局视野的“超级实习生”。它能瞬间完成你交代的任务(Time & Cost 极低),但它不懂什么是“范围蔓延”(Scope Creep),也不在乎“质量验收”(Quality Assurance)。
这时候,你就不再只是一个写代码的“工兵”了,你被迫升级成了一个 Project Manager。
你需要像 PMP 里教的那样,去管理干系人(你的老板、你的用户),去定义验收标准,去控制风险。你需要像 Brooks 在《人月神话》里说的那样,去对抗软件的“根本复杂性”。
建筑师不再需要亲自搬砖了,但这并不意味着建筑师不重要了。 相反,当搬砖变得免费时,设计图纸的合理性、结构的稳固性、模块间的解耦,成了唯一的价值高地。
好品味是护城河
Willison 在文章里用摄影做了一个绝妙的比喻。
当数码相机让按快门的成本归零后,摄影师这个职业消失了吗?没有。竞争的焦点从“谁能把照片洗出来”变成了“谁有更好的审美”。
编程也是一样。
以前,你能手写红黑树、能默写快排,你是大牛。
现在,这些 AI 都会。
那什么值钱?
品味值钱。判断力值钱。
你得一眼就能看出 AI 生成的那段代码里,哪个变量名起得烂,哪个逻辑有边界漏洞,哪个设计模式用得不合时宜。你得知道什么是“好代码”——那些可维护的、可测试的、文档清晰的、设计优雅的代码。
这种“鉴赏力”,是 AI 短时间内无法替代的,也是资深工程师真正的护城河。
我的行动清单
反思之后,我给自己的 AI 编程实践列了三条新规矩:
-
建立“十分钟试错”习惯:既然代码便宜,遇到拿不准的技术方案,别干想,直接让 Agent 跑个 Demo。用低成本的试错来辅助决策,这是 AI 最大的红利。
-
缩短反馈循环:敏捷开发的精髓是“开发-测试-反馈”。利用 AI 快速生成原型,尽早让用户看到东西,尽早暴露问题。
-
Code Review 2.0:对自己和 AI 的代码一视同仁,甚至对 AI 更严苛。以前 Review 是看“写没写对”,现在 Review 是看“设计得对不对”。
写在最后
工具变强了,人的门槛其实是变高了。
以前你只要会搬砖就能混口饭吃,现在你得懂建筑结构才行。这确实很残酷,但也让人兴奋。
因为这意味着,我们将从繁琐的体力劳动中解放出来,去面对真正有挑战性的工程问题。
各位,别被“代码贬值”吓到了。代码越便宜,能驾驭代码的人,才越贵。
原文地址:Writing code is cheap now - Agentic Engineering Patterns - Simon Willison's Weblog