Anthropic Research 中文翻译

create: 2026-01-29
update: 2026-08-10
author: thinkycx
title: 【译】AI 辅助如何影响编程技能的形成
description: Anthropic 通过随机对照实验发现,使用 AI 编程辅助的开发者在理解力测试中得分显著低于手动编码者(50% vs 67%),但 AI 的使用方式比是否使用更重要——概念性提问者得分最高,而完全委派者得分最低。
category: translation
tags: anthropic, research, translation, economic-research, coding

AI 辅助如何影响编程技能的形成

原文发布于 2026 年 1 月 29 日,作者 Judy Hanwen Shen 和 Alex Tamkin (Anthropic)
论文:arXiv:2601.20245

AI 编程技能研究

概述

使用 AI 编码辅助的开发者在理解力测试中表现更差,但关键在于与 AI 交互的方式。 本研究通过随机对照实验,考察 AI 编码辅助是否会削弱软件工程师的技能发展。结果显示,使用 AI 的开发者在理解力评估中得分显著低于手动编码者,但与 AI 交互的方式至关重要。

背景研究表明,AI 可将任务速度提升 80%,但 AI 用户"对工作的投入度降低"且"减少了付出的努力"。核心问题是:认知外包是否会阻碍人们在工作中提升技能?

作者指出的关键张力:随着编码日益自动化,人类仍需具备发现错误、引导输出和进行监督的技能。


实验设计

52 名初级工程师被随机分配使用或不使用 AI 辅助完成编程任务,随后接受理解力测试。

参数 详情
参与者 52 名(主要为初级)软件工程师,每周使用 Python
任务 使用 Trio Python 库编写两个功能(异步编程概念)
流程 热身 → 主要编码任务 → 测验
AI 能力 AI 可访问参与者代码,随时可在被要求时生成正确代码

研究界面
图:实验使用的研究界面

评估维度

基于计算机科学教育研究,使用四种题型:

题型 考察内容
调试(Debugging) 识别和诊断代码错误
代码阅读(Code reading) 理解代码的功能
代码编写(Code writing) 选择正确的实现方法
概念题(Conceptual) 理解工具/库背后的核心原理

结果

AI 组平均得分 50%,手动编码组 67%——相当于差了近两个字母等级。

实验结果
图:AI 辅助组 vs 手动编码组的测验得分对比

指标 AI 组 手动编码组
完成速度 快约 2 分钟(不显著) -
测验平均分 50% 67%
效应量 Cohen's d = 0.738, p = 0.01 -
最大差距 调试题 -

定性分析:AI 交互模式

部分参与者花费高达 11 分钟(占总时间 30%)与 AI 进行多达 15 轮交互。

低分模式(平均测验分 < 40%):

模式 人数 描述
AI 委派 4 完全依赖 AI;完成最快;错误最少
渐进式 AI 依赖 4 先独立开始,后将所有编码委派给 AI
迭代式 AI 调试 4 依赖 AI 调试/验证;提问但未建立理解

高分模式(平均测验分 >= 65%):

模式 人数 描述
先生成后理解 2 生成代码后提出跟进问题以建立理解
混合代码-解释 3 要求生成代码的同时要求解释
概念性提问 7 仅提出概念问题;独立编码;高分组中完成最快

结论

并非所有 AI 依赖都相同:在追求效率的过程中如何与 AI 交互,决定了我们能学到多少。

要点 说明
生产力与技能的权衡 生产力提升可能以验证 AI 代码所需技能为代价
认知努力的价值 认知努力——甚至痛苦的卡壳——对掌握技能很可能很重要
管理者的责任 应考虑确保工程师在工作中持续学习的系统或设计选择
与先前研究的区别 先前观察性研究衡量的是已有技能的生产力,本研究考察的是学习新事物时的情况

局限性

  • 样本量较小(52 人)
  • 评估衡量的是编码后短期理解力
  • 无法确定即时测验表现是否能预测长期技能发展

关于 Agent 编码的注释

本研究的设置与 Claude Code 等 Agent 编码产品不同;我们预计此类程序对技能发展的影响可能更为显著。


引用

@misc{aiskillformation2026,
  author = {Shen, Judy Hanwen and Tamkin, Alex},
  title = {How AI Impacts Skill Formation},
  year = {2026},
  eprint = {2601.20245},
  archivePrefix = {arXiv},
  primaryClass = {cs.LG},
  eprinttype = {arxiv}
}