David Cramer 最近有句话在圈里传了半截。原话针对 AI 生成代码:指望 LLM 会持续改进、把历史累积的劣质代码清理掉,这个设想不现实。原话更重——“像这样的代码生成是 100% 有问题的”。前半句多数人点头,后半句基本没人敢接。因为后半句往后算,会撞上一个所有人绕着走的事实:AI 写的代码现在就是劣质代码的主要增量来源,指望它清理,等于让它一边放火一边当消防员。
我记住这句话不是想谈代码质量。我在算的是另一笔账,跟代码无关,跟学编程的人有关。
过去两年那个叙事顺得令人生疑:生成式 AI 降低门槛,新手跳过基础概念直接做东西,老手提效,人人受益。问题不在这句话哪里错了,在于它把“使用工具”当成了零代价。Lars Faye 把矛盾点得很准:有效管控 AI 编码代理所需的技能,正是长期依赖这些代理会退化的技能。他取了个名字叫熟练编排者悖论。我觉得可以更直白——你越早坐进那台替你踩油门的车,你越晚学会开车。
现象先摆出来。JetBrains 援引的那项研究,观察到了一个很冷的结果:参与者以为生成式 AI 是个私人导师,实际行为完全相反。新手在 AI 辅助下产出的最终是“能力错觉”。研究里有个数据值得单独拎出来:表现最好的新手,是大幅减少或干脆不用 AI 辅助的那批。不是适度使用,是干脆不用。
这个结论讲给新手听,很容易被归为老派说教。但宾夕法尼亚大学 2025 年那项覆盖千名学生的研究把账本量化了。用 LLM 学数学的学生,最终成绩比用教科书的学生低约 17%,自我感受却更好。翻译过来:他们用 17% 的分数亏空,买回一个“我懂了”的幻觉。
更值得拆的是第二版实验。Tutor 模式下,学生先求助 AI 再独立解题,练习阶段成绩提升约 127%。这个数字单看就是 AI 有效的铁证,拉到最终考试,表现和用教科书的学生基本持平。练习时涨起来的那 127%,考试里全部蒸发。说明什么?那 127% 来自脚手架,不来自能力。拆掉 AI,提升一起被拆掉。
这就是我要算的那笔账。AI 编码工具节省的是工作时间,不是学习时间。它给新手发的是一笔看起来没有利息的贷款,当场就能消费,但利息记在能力账户上,复利滚着走。
Lars Faye 把这里的机制叫倒置学习。传统学习是:你知道自己哪里不知道,于是去补。AI 辅助下反过来:你不知道自己哪里不知道,模型又天然迎合你的指令——你问“这样对吗”,它倾向给一个“对”的方向,于是你高估了自己的掌握程度。这种错配不是偶发,是结构性的。模型不会主动指出你哪里想错了,它只会帮你把答案做出来。你以为自己在学,其实一直在看答案。
Joel Spolsky 很多年前提的泄漏抽象定律,放这儿依然合身。所有抽象终会在某个时刻漏出底层细节,编程者最终还是要懂底层。LLM 把这件事推到了一个更彻底的位置:它不只是一个会漏的抽象,它是一个系统性迎合的抽象。它漏给你的不是底层细节,而是对正确性的判断——而这恰好是编程能力里唯一没法靠看输出自动获得的东西。
Anthropic 2026 年那份研究说得更重:认知努力、甚至“令人痛苦地卡住”,对培养编程技能很重要。我第一次读到这句,想到的是那些被优化掉的“卡住”。新手卡在 bug 上,查文档、读报错、改三个版本、最后想通原因,这个过程就是能力积累。AI 把它压缩成“帮我看看这个错”,几十秒出答案,问题消失,学习也消失。
这里我得把事情说清,不能把“用 AI”和“学编程”简单对立起来。Lars Faye 给出的区分是认知债务和认知外包。外包是委派机械琐碎的事务,债务是交出判断权。边界不在工具,在判断权在哪。你用 AI 生成 CRUD 样板、查语言特性、做交互式文档,这是外包——力气省下来拿去读架构、理数据流。但你让 AI 替你定架构、替你判对错,这就是债务。外包不伤能力,债务伤。这个区分比“AI 好不好”那种问法有用得多。
利益格局摆开,四方,各自的账完全不同。
第一方是有多年经验的工程师。这批人在 AI 出现之前已经完成了判断力的原始积累,现在用 AI 放大自己,收益最高。原因简单:他们知道正确的长什么样,模型第一次给错答案时能看出来,并要求重来。AI 对他们是斧子,因为他们知道哪里该砍。
第二方是行业新人。他们被要求使用一套需要资深经验才能驾驭的工具——自己没建立判断框架,却要判断模型输出的正确性。这本质上是让刚学会认路的人去开自动驾驶卡车。JetBrains 研究里“重度依赖 AI 的新手跳过规划步骤”不是道德缺陷,是结构必然:你没法跳过你从未拥有过的步骤,你只是从来没被训练出那些步骤。
第三方是教育机构。它们往课程里塞 AI,理由是“跟上行业”。宾大数据已经说清:AI 辅助学习在最终考试里不产生提升。练习里给的那 127%,像给考试系统打的兴奋剂——课上感觉良好,一到独立现场就露馅。教育机构照“AI 融入一切”这条路往下走,培养的不是工程师,是一批需要永久租赁判断能力的消费者。
第四方是工具公司和行业基础设施。它们赚的是使用时长、token 消耗、订阅费。Cramer 说生成代码 100% 有问题,但他自己就在工具生态里。这不是道德指控,是利益结构。工具公司面对一个冷冰冰的激励:用户认知退化对收入没有直接影响,甚至可能抬升使用量——一个越依赖 AI 写代码的人,越没有能力在 token 账单上判断“这个钱值不值得”。
四方摆开,结论自己浮出来。这轮 AI 编码工具的繁荣,本质是一次认知财富的转移:新人用今天的练习换明天的产出,而产出的部分价值流进了工具公司口袋。这和算力短缺期云厂商赚模型公司的钱、模型公司用未来收入预期垫资,是同一个结构。谁受益、谁接刀,一目了然。
这段账我算得有点碎,但不清算到这一层,所有讨论都会被“AI 是好是坏”这种二元问题搅黄。
落到判断。我的判断摆在这儿:对尚在能力积累期的编程者,生成式 AI 工具当前默认的使用方式——尤其是一遇到不会就让模型生成代码——是认知债务的制造机。它让你今天更快,五年后更弱。这条对资深工程师不适用,但最尴尬的是,最被推动去用这些工具的,恰恰是积累最薄的人。工具公司嘴里的“普及编程”,翻译过来就是“让更多人在能力之前先买依赖”。
这个判断可能错。证伪条件很具体:如果出现一个大规模、持续追踪的研究,证明从第一天就全面使用 AI 编码工具入行的开发者,在移除工具三个月后,独立应对不熟悉问题时的定位能力、架构判断和代码审查合格率,不比传统路径上来的人差——那我就改口。在那之前,我看到的数字都指向另一头。
我不是反 AI。我反的是“无债训练”这个叙事。把 LLM 拿来做交互式文档、动态教程生成、启发式提问——这些不是负债,是错配被纠正后的用法。Cramer 说 100% 有问题,我不同意这个数字。他想戳破的那个幻觉是真的:期望模型自己把烂代码清理掉,就像期望一个人用信用卡还信用卡,月供越滚越多,还觉得自我感觉良好。那 127% 的提升,就是这种自我感觉的数字版本。
