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

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

Hacker News 摘要

原标题:How AI assistance impacts the formation of coding skills

Anthropic 的最新研究探讨了 AI 辅助如何影响编程技能的形成。虽然之前的观察性研究表明 AI 能让部分工作任务提速 80%,但过度依赖 AI 可能会导致认知卸载,即人们减少思考,将任务完全交给 AI。这引发了一个核心担忧:这种做法是否会阻碍开发者在工作中提升技能,或导致他们无法理解自己构建的系统。

研究设计

研究团队进行了一项随机对照试验,招募了 52 名主要为初级水平的软件工程师。这些参与者都具备 Python 基础,但对本次测试中使用的 Python 库 Trio 并不熟悉。

试验分为三个阶段:热身练习、核心编码任务(使用 Trio 开发两个功能)以及随后的测验。参与者被分为两组:

AI 辅助组:在编码时可以使用侧边栏的 AI 助手,助手拥有代码库访问权限,并能根据要求生成代码。

手动编码组:不使用 AI,完全独立编写代码。

评估体系重点关注四种编程能力:

调试:识别和诊断代码错误的能力。

代码阅读:理解并验证代码逻辑的能力。

代码编写:选择正确的方法编写代码。

概念理解:掌握工具和库背后的核心原则。

主要研究发现

研究结果显示,使用 AI 辅助虽然在效率上略有提升,但显著降低了学习者对知识的掌握程度:

掌握度下降:AI 组在随后的测验中平均得分比手动组低 17%,这相当于两个等级的成绩差距。

调试能力差距最大:两组在调试题上的得分差距最为明显,说明过度依赖 AI 会严重削弱开发者判断代码错误的能力。

效率提升有限:AI 组完成任务的平均时间仅比手动组快约 2 分钟,且这一差异在统计学上并不显著。

交互方式决定结果:使用 AI 的方式直接影响了知识保留。那些单纯让 AI 代写代码的人得分最低,而那些利用 AI 进行概念咨询的人表现更好。

AI 交互模式分析

研究通过对屏幕录像的定性分析,识别出了不同的 AI 使用模式及其对学习的影响:

低分交互模式

AI 委派:完全依赖 AI 编写代码。虽然速度最快,但几乎没有学到知识。

渐进式依赖:起初尝试独立思考,但最终将所有编写工作交给 AI。

迭代式 AI 调试:虽然问了很多问题,但主要是让 AI 解决错误,而不是为了理解错误原因。

高分交互模式

生成后理解:先让 AI 生成代码,随后针对生成的代码提问以加深理解。

混合代码解释:在要求 AI 生成代码的同时,要求其提供详细的原理解释。

概念咨询:仅向 AI 询问概念问题,然后坚持由自己手动编写代码。这种模式在所有高分模式中速度最快,整体速度仅次于完全委派。

结论与建议

研究结论指出,在工作场所积极引入 AI 会带来权衡问题。为了追求速度而过度依赖 AI 的初级开发者,可能会以牺牲技能成长为代价。如果开发者缺乏验证 AI 生成代码的底层技能,那么长期的生产力可能会受到威胁。

管理者在部署 AI 工具时应保持审慎,考虑采用能够促进工程师在工作中持续学习的系统设计。对于个人而言,认知上的努力——甚至是遇到困难时的痛苦思考——对于掌握技能至关重要。目前主流的大型语言模型服务(如 Claude 或 ChatGPT)都提供了学习和解释模式,旨在帮助用户在提高效率的同时不放弃技能培养。

Anthropic 表示,这只是研究人机协作影响的第一步。未来的研究将进一步探索 AI 对编程以外领域的影响,以及这种效应在长期内是否会随开发者经验增加而消失。


原文:https://www.anthropic.com/research/AI-assistance-coding-skills

评论:https://news.ycombinator.com/item?id=46820924

Report Page