观前提醒

这是一篇 AI 辅助的内容,可能存在错误或不准确的地方。

论文How AI Impacts Skill Formation
arXiv2601.20245
作者:Judy Hanwen Shen、Alex Tamkin(Anthropic)
主题:AI 辅助、技能形成(Skill Formation)、认知卸载(Cognitive Offloading)
中文翻译:AI 如何影响技能形成

一句话总结(TL;DR)

52 名开发者参与的 RCT(Randomized Controlled Trial 随机对照实验):开发者在有无AI辅助的情况下学习掌握一个新的python异步编程库。研究发现,使用AI会损害开发者对概念的理解、代码阅读和调试能力,且平均来看并未带来显著的效率提升。那些将编码任务完全交给AI的参与者虽然工作效率有所提高,但代价是未能真正学会这个库。

1. 直觉开场:学开车

如果把学一门新技术比作学开车,那 AI 辅助就像一个随叫随到的司机——你一挥手,他就帮你把整段路开完了。任务完成了?完成了。你会开车了吗?大概率没有~

Anthropic 的这篇研究报告就是在严肃地回答这个问题:让 AI 帮着写代码,你到底算学会了吗?

结果概览
图1:核心结果。左:AI 组技能全面下降;右:6 种 AI 交互模式,其中 3 种能保住学习效果。

2. 背景:AI 辅助编码

AI 编码辅助已经有一堆研究报告发布了有力的数据证明了:

场景生产力提升来源
呼叫中心+15%Brynjolfsson et al.
咨询公司+12.2%Dell’Acqua et al.
众包开发者+55.5%Peng et al.
大厂软件工程师+26.8%Cui et al.

有一个不那么惊人的一致发现是:经验越少的人,从 AI 获得的加速越多

但不知道你有没有发现这里有个悖论:最需要学习的新手恰恰最容易把活儿全甩给 AI。生产力看起来提升了,但你习得的技能呢?

这篇paper就想衡量一下 使用 AI 的过程本身是否阻碍了技能习得

框架
图2:有 AI 辅助时,新手可能跳过了”边做边学”的过程,直接到达”任务完成”——但技能没跟上。

研究者提出的两个直接的问题:

  • Q1:学新技能时,AI 能提升生产力吗?
  • Q2:AI 辅助会削弱新技能的形成吗?

3. 实验方法

Why Trio?

实验围绕 Python 的 Trio 库(异步并发)设计。选择它也是很讲究的:

  1. asyncio 小众得多。StackOverflow 上问题少得很,AI 训练数据里出现的当然也少~
  2. 涉及parallelized I/O等新概念,更有挑战性
  3. 适合当实验素材,因为它的代码示例和文档都比较详细

实验流程

任务流程
图3:热身 → Trio 编码任务(AI 组可用 AI)→ 理解检查(所有人禁用 AI)

  • 参与者:52 名专业/自由职业开发者(处理组、对照组各 26 名),都有 1 年以上 Python 经验,从未用过 Trio
  • 热身:一个字符串处理题,校准 Python 基础水平
  • Trio 任务(35 分钟):两道题——(1) 用 nursery 实现并发计时器;(2) 带错误处理和 memory channel 的记录检索
  • AI 助手:处理组可用基于 GPT-4o 的聊天式 AI,能看到参与者代码,能直接生成完整解决方案
  • 评估:14 题共 27 分的测验(概念理解 + 代码阅读 + 调试),所有人不能用 AI
  • 报酬:150 美元固定报酬(不按完成度付费)

四轮试点的踩坑记录

这部分特别有意思,研究跑了 4 轮 pilot 才搞定实验设计:

试点人数踩了什么坑怎么fix
An=3935% 的对照组偷用 AI (゚Д゚≡゚д゚)!?换平台
Bn=107警告了还有 25% 偷用引入屏幕录制验证
Cn=20测验题之间互相泄漏答案分页显示,消除局部项目依赖
Dn=20对照组卡在 Python 语法上(跟 Trio 没关系)补充语法提示

试点 D 的结果很有意思:AI 组显著更快($d=1.11$)但测验更差($d=1.7$)。主研究补了语法提示后,速度差异就消失了——也就是说之前的「AI 加速」其实是在帮参与者绕过 try/except 这种基础语法障碍,跟学 Trio 一毛钱关系都没有

4. 实验结果

核心发现:AI 不仅让人没学会,还没变快!

主要结果
图4:左=完成时间(无显著差异),右=测验分数(AI 组显著更低)

数据很清楚:

  • 测验分数差 4.15 分(满分 27),相当于掉了 17%
  • 效应量 Cohen’s $d = 0.738$,$p = 0.010$
  • 控制热身时间后依然显著($d = 0.725$,$p = 0.016$)
  • 完成时间:没有统计学显著差异

调试能力受损最大

分数细分
图5:按问题类型分解,调试题的差距最大,代码阅读题差距最小。

这很好理解。对照组在写代码时踩了一堆 bug 并自己debug、fix,自然调试能力更强。两组都阅读了类似复杂度的代码,所以代码阅读差距不大。

不分经验水平,结果一致

按经验分解
图6:1-3 年、4-6 年、7+ 年——对照组的分数全都更高。

说明 Trio 对各经验层级确实是「新技能」,不是只有新手才受影响~

5. 定性分析:六种 AI 交互模式

这部分是全文最值钱的。作者逐一看了 51 个人的屏幕录像(对,一个个看的),归纳出 6 种交互模式:

六种模式
图7:六种 AI 交互模式——平均完成时间 vs 测验分数

低分模式(24%-39%)—— 认知卸载严重

模式n干了啥后果
AI 委托4直接让 AI 写全部代码,几乎没遇到 bug最快完成,但基本白学了
渐进式依赖4先试着问两个问题,然后逐渐全部委托第二个任务的概念完全没掌握
迭代式 AI 调试4反复让 AI 检查和修 bug,自己不思考又慢又没学到

高分模式(65%-86%)—— 认知参与保持

模式n干了啥效果
生成后理解2先让 AI 写代码,然后追问「为什么这么写」看起来像 AI 委托,但多了理解环节
混合代码解释3边要代码边要解释需要更多时间阅读,但理解到位
概念性询问7只问概念,自己写代码,自己 debug高分模式中最快,总体第二快

关键 Takeaway:高分模式的共性是认知参与(cognitive engagement)。尤其是「概念性询问」模式,既用了 AI 又没耽误学习,还挺快——这大概是使用 AI 编码的最佳姿势了。

6. 为什么 AI 没让人变快?

这跟之前研究 Peng et al.(+55.5%)和 Cui et al.(+26.8%)的结果不同,原因值得分析。

与 AI 交互本身就很耗时

AI 交互时间
图8:部分参与者光是写 query 就花了好几分钟~

  • 有人花了超过 11 分钟跟 AI 聊天(总共才 35 分钟)
  • AI 组中位完成时间 19 分钟,花 6 分钟写一个 query 占比已经很高了
  • 只有约 20% 的 AI 组(「纯 AI 委托」模式)真正实现了加速

查询类型分布:解释 q=79(最多)、生成 q=51、调试 q=9、能力问题 q=4、感谢 q=4。
21/25 的参与者都问了解释性问题,说明大多数人并不想无脑让 AI 写代码。
但最后 8 名得分最低的人中有 3 名只让 AI 生成代码、不问解释——如果所有人都这样,差距会更大。

错误才是真正的老师

错误类型
图9:对照组遇到了更多 Trio 特有的错误(TypeError、RuntimeWarning)。

指标AI 组对照组
错误中位数1.0 (0.0–3.0)3.0 (2.0–5.0)
任务 10.0 (0.0–2.0)2.0 (0.5–3.0)
任务 20.0 (0.0–1.0)2.0 (0.5–2.0)

不只是数量不同——类型也不同。对照组遇到了更多 Trio 特有的 RuntimeWarning(协程没被 await)和 TypeError(传了协程对象而非 async 函数),这些错误逼着他们去理解 Trio 的核心概念。AI 组?AI 直接帮你绕过了这些坑,你也就失去了踩坑的机会~

活动时间从编码变成了看 AI 输出

主动编码时间
图10:对照组主动编码时间更多、测验分数更高。AI 组的时间转移到了阅读 AI 输出上。

被动阅读 AI 输出 ≠ 主动编码。这个时间转移看起来没什么,但学习效果存在差距因此而来。

参与者自己也感受到了

AI 组的反馈太真实了:

“By using the AI assistant, I feel like I got lazy.”
“I wish I’d taken the time to understand the explanations a bit more!”
“There are still a lot of gaps in my understanding.”

对照组画风完全不同:

“It was fun to learn about asynchronous programming… The programming tasks did a good job of helping me understand how Trio works.”

人和人的差距,有时候就在于有没有被逼着自己踩一遍坑。

7. 局限性

  1. 只测了聊天式 AI:作者自己都说了,这是认知卸载的下限——Cursor Agent、Claude Code 这类 agentic 工具不需要你写 query,认知参与会更少,技能损失可能更大
  2. 只有 1 小时:真实技能形成要几个月甚至几年
  3. 动机不同:众包工人学 Trio ≠ 新入职工程师学内部框架
  4. 没测 prompt 技能:只有自我报告的 AI 熟悉度
  5. 只用了测验评估:也可以用「完成后续任务」来评估
  6. 没有人类辅助对照:不知道跟 pair programming、code review 比会怎样

个人观点:这篇paper 没有实验现在流行 Agentic Coding 工具比较遗憾。我认为,Agentic Coding 工具会放大这种任务完成但“技能点从大脑皮层溜走”的AI时代技能习不得性缺憾。

总结

这篇论文用严格的对比实验设计回答了一个很多开发者心里隐隐有感但缺乏证据的问题:AI 帮你更快完成任务,但你可能因此没学会这项技能。

几个核心结论:

  • AI 辅助让 Trio 技能评估分数降了 17%,但完成时间没有显著改善,生产力提升不是免费的
  • 调试能力受损最大:偏偏在 AI 越来越多写代码的时代,这恰巧是人类最需要的能力,当然未来 Agentic Coding 工具可能会解决调试问题
  • 不是所有 AI 使用方式都有害:只问概念、自己写代码的「概念性询问」模式既快又学到了东西
  • 踩坑是学习的关键通道:AI 帮你跳过了 bug,也帮你跳过了理解

如果你也在用 AI 学新框架、新语言,不妨试试只问AI「这个概念是什么意思」,而不是直接让它写代码、啥也不看。虽然我知道这很难忍住就是了。

References