MIT等研究显示代码理解激活大脑"多需求网络"而非语言区;AI辅助虽提速但可能削弱技能深度积累,需保持刻意练习。
关于用 AI Agent 学编程,认知科学实际上是怎么说的
你的大脑读代码的方式和读英语不一样
一种直觉上的猜测是,阅读代码应该激活和读句子相同的大脑区域——毕竟代码在页面上看起来确实很像语言。MIT 的一项 fMRI 研究直接针对这个问题进行了验证,让程序员在扫描仪下阅读并评估简短的 Python 和 ScratchJr 代码片段(Ivanova et al., 2020)。结果与这种直觉相悖:理解代码激活的是大脑的"多需求"网络——即用于数学和逻辑谜题等通用目的的系统——而不是语言区域。它与数学/逻辑处理的重叠也不完全。研究者的结论是:理解代码是一个独立的认知类别,既不是语言处理的变体,也不是数学的子类型。

另一项研究进一步推进了这一发现,在使用 fNIRS 的初级程序员中比较了阅读代码、阅读散文和心理旋转(经典的空間推理任务)(Endres et al., 2021)。结果表明,对于初学者而言,编程与阅读散文的差异程度,甚至超过了它与心理旋转的差异,编程更多地依赖空間和处理困难相关的大脑区域。言下之意:对于初学者而言,使用代码所依赖的是不同于阅读文本的、更费力的认知机制——包括阅读别人写的代码。这就是第一条线索:如果学习的一部分发生在这种费力处理过程中,那么仅仅阅读 AI 的输出就跳过它,可能意味着跳过了真正能教会你东西的那部分。
为什么产出胜过消费——以及这在哪里变得不稳定
两个经典的记忆研究指向了同一个方向,我需要提前说明,这两个研究都与代码无关。
生成效应:人们对自己生成的东西的记忆远比仅仅阅读过的东西好得多,即使两者接触材料的时间相同(Slamecka & Graf, 1978)。原始实验用的是词对——从"rapid / f__"生成"fast"比阅读"rapid — fast"记得更牢。
测试效应:主动回忆某事胜过重新阅读,即使重新阅读在当下感觉更有成效(Roediger & Karpicke, 2006)。对一段文章反复进行自我测试的学生,表现远超重新阅读四遍的学生——最初差距很小,一周后差距就很大了。
这里有一个需要坦诚说明的注意事项,正是我第一次发布这篇文章时一位读者指出的:两项研究都没有涉及编程,也没有因果证据表明 AI 辅助编程会产生更差的程序员。它们只是确立了一种机制——费力提取胜过被动接触——而且来自一个完全不同的领域(词表、文本段落)。将这种机制套用到"看着 Agent 写代码"上是一个合理的假设,而不是已被证实的事实。把 1978 年的词对研究、2006 年的记忆研究和 2020 年代的神经影像论文拼凑在一起,能得到一个看似合理的叙事,但不是一条已证实的因果链条。这个鸿沟正是下一节要试图用更直接的证据来填补的内容。

当 Agent 实际完成生产时会发生什么
在生产力方面,证据是充分的——但并非一致。GitHub Copilot 的一项大型对照研究发现,开发者完成编码任务的速度快了 55.5%,对于经验较少的程序员收益最大(Peng et al., 2023)。2025 年的一项课堂研究发现,使用 Copilot 的 CS 学生完成任务速度快了 34.9%,在不熟悉的代码库上推进进度也多了 50%(Shihab et al., 2025)。
但这不是普遍现象。后续的实地研究发现了更为微小或非显著的生产力影响,对象是更有经验的开发者且任务更长、更真实(Cui et al., 2024; Becker et al., 2025)——有一项研究甚至发现了减速,原因是花时间等待和审查 AI 生成的代码。AI 带来的生产力提升是真实的,但分布不均,集中于初学者处理短期、范围明确的任务——这一点很重要,因为这正是最有可能处于学习阶段的人群和任务类型。
Shihab 等人的研究也是学习代价的初步迹象:在退出访谈中,学生承认他们往往不理解 AI 的建议为什么有效。不过这是事后自我报告,而非测量到的技能缺陷。这就把我们带到了下一项研究。

真正填补因果鸿沟的研究
Shen & Tamkin(2026)进行了一项随机对照试验,专门为回答这个问题而设计。具有真实 Python 经验的开发者被分成两组,被要求使用 Trio——一个两组都没有接触过的异步库——来完成任务。一组有基于聊天的 AI 辅助,另一组没有。之后,所有人都接受了一项测验,测试概念理解、代码阅读和调试能力。
AI 组的测验成绩低了 17%——这是一个真实的、统计显著的下降——而且尽管 AI 助手能够按需生成完整正确的解决方案,他们并没有明显更快地完成任务。通过观看屏幕录像,研究者找到了原因:将一切委托给 AI 的人走得很快但学得很少,而那些对话式使用 AI 的人——询问概念性问题、在代码旁边请求解释、把错误视为需要理解的东西而非绕过去的东西——学到的几乎和不使用 AI 的组一样多,而且几乎没有速度损失。相比之下,对照组遇到了更多真实错误,不得不独自解决,这直接关联到他们更强的调试和概念得分。
这是之前论证版本所缺失的那块拼图:一项真正关于编程的、真正具有因果性(随机的而非观察性的)、真正测量了技能形成而非自我报告的困惑的研究。它也让建议变得更加精确——不是"少用 AI",而是"把 AI 当对话伙伴用,而不是当自动售货机用"。
那么——你实际应该怎么做?
这些都不是反对 AI 编程 Agent 的论证。生产力数据太漂亮了,而且 Trio 研究的全部意义就在于:某些交互风格能让你在学习上不损失太多速度。
委托之前先自己生成。在向 Agent 提问之前,先尝试一个解决方案,或者至少画个草图——这样才能触发生成效应,而不是跳过它。
委托之前先自己生成。在向 Agent 提问之前,先尝试一个解决方案,或者至少画个草图——这样才能触发生成效应,而不是跳过它。
问概念性问题,而不只是"写这个"。Trio 研究中得分最高的组问的是库如何工作,而不只是要成品代码——同样的信息,以不同方式获取,结果却截然不同。
问概念性问题,而不只是"写这个"。Trio 研究中得分最高的组问的是库如何工作,而不只是要成品代码——同样的信息,以不同方式获取,结果却截然不同。
用自己的话复述输出。把被动阅读转变成更接近检索练习的东西。
用自己的话复述输出。把被动阅读转变成更接近检索练习的东西。
让自己偶尔遇到错误。控制组在调试上的优势直接来自与真实错误的搏斗,而不是让错误被替他们解决。
让自己偶尔遇到错误。控制组在调试上的优势直接来自与真实错误的搏斗,而不是让错误被替他们解决。
关掉 AI 重温旧题。就是刻意应用测试效应。
关掉 AI 重温旧题。就是刻意应用测试效应。
代码理解依赖的是通用问题解决回路,而非语言回路。自己产出信息能建立比阅读更强的记忆,尽管该证据最初来自编程以外的领域。而现在有了直接的、具有因果性的证据——不只是从无关研究推断——表明将编码任务完全委托给 AI 会显著降低技能形成,而对话式地、提问式地使用 AI 在很大程度上不会。如果你有疑问,可以在这里阅读完整论文:Reading-Writing-and-Delegating-Code
Ivanova, A. A., et al. (2020). Comprehension of computer code relies primarily on domain-general executive brain regions. eLife. doi.org/10.7554/eLife.58906
Ivanova, A. A., et al. (2020). Comprehension of computer code relies primarily on domain-general executive brain regions. eLife. doi.org/10.7554/eLife.58906
Endres, M., et al. (2021). Relating reading, visualization, and coding for new programmers: A neuroimaging study. ICSE 2021. arxiv.org/abs/2102.12376
Endres, M., et al. (2021). Relating reading, visualization, and coding for new programmers: A neuroimaging study. ICSE 2021. arxiv.org/abs/2102.12376
Slamecka, N. J., & Graf, P. (1978). The generation effect: Delineation of a phenomenon. Journal of Experimental Psychology.
Slamecka, N. J., & Graf, P. (1978). The generation effect: Delineation of a phenomenon. Journal of Experimental Psychology.
Roediger, H. L., & Karpicke, J. D. (2006). Test-enhanced learning. Psychological Science. doi.org/10.1111/j.1467–9280.2006.01693.x
Roediger, H. L., & Karpicke, J. D. (2006). Test-enhanced learning. Psychological Science. doi.org/10.1111/j.1467–9280.2006.01693.x
Peng, S., et al. (2023). The impact of AI on developer productivity: Evidence from GitHub Copilot. arxiv.org/abs/2302.06590
Peng, S., et al. (2023). The impact of AI on developer productivity: Evidence from GitHub Copilot. arxiv.org/abs/2302.06590
Shihab, M. I. H., et al. (2025). The effects of GitHub Copilot on computing students' programming effectiveness, efficiency, and processes in brownfield coding tasks. ICER 2025. doi.org/10.1145/3702652.3744219
Shihab, M. I. H., et al. (2025). The effects of GitHub Copilot on computing students' programming effectiveness, efficiency, and processes in brownfield coding tasks. ICER 2025. doi.org/10.1145/3702652.3744219
Cui, Z. K., et al. (2024). The effects of generative AI on high skilled work. SSRN 4945566
Cui, Z. K., et al. (2024). The effects of generative AI on high skilled work. SSRN 4945566
Becker, J., et al. (2025). Measuring the impact of early-2025 AI on experienced open-source developer productivity. arxiv.org/abs/2507.09089
Becker, J., et al. (2025). Measuring the impact of early-2025 AI on experienced open-source developer productivity. arxiv.org/abs/2507.09089
Shen, J. H., & Tamkin, A. (2026). How AI impacts skill formation. arxiv.org/abs/2601.20245
Shen, J. H., & Tamkin, A. (2026). How AI impacts skill formation. arxiv.org/abs/2601.20245
Sweller, J. (1988). Cognitive load during problem solving: Effects on learning. Cognitive Science.
Sweller, J. (1988). Cognitive load during problem solving: Effects on learning. Cognitive Science.