当前位置:首页>java>AI辅助如何影响编程技能的形成

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

  • 2026-09-13 22:44:05
AI辅助如何影响编程技能的形成

研究表明,AI可以帮助人们更快地完成部分工作。在一项对Claude.ai数据的观察性研究中,我们发现AI可以将某些任务的完成速度提高80%。但这种生产力的提升是否伴随着代价呢?其他研究显示,当人们使用AI辅助时,他们对工作的投入会减少,付出的努力也会降低——换句话说,他们将思考外包给了AI。

目前尚不清楚这种认知外包是否会阻碍人们在职场上提升技能,或者在编程领域——理解他们正在构建的系统。我们的最新研究是一项以软件开发人员为参与者的随机对照试验,旨在调查在工作中使用AI的这一潜在弊端。

这个问题具有广泛的影响——涉及如何设计促进学习的AI产品、工作场所应如何制定AI政策,以及更广泛的社会韧性等。我们聚焦于编程领域,这是一个AI工具迅速成为标准的领域。在这里,AI制造了一种潜在的紧张关系:随着编程变得更加自动化并加速工作,人类仍然需要具备发现错误、引导输出、并最终对部署在高风险环境中的AI进行监督的技能。AI是否能为技能发展和效率提升提供一条捷径?还是说AI辅助带来的生产力提升会损害技能发展?

在一项随机对照试验中,我们研究了:1)软件开发人员在有和没有AI辅助的情况下,掌握新技能(在本案例中是Python库)的速度;以及2)使用AI是否会使他们更不可能理解自己刚刚编写的代码。

我们发现,使用AI辅助导致了掌握程度的统计学显著下降。在涵盖他们几分钟前才使用过的概念的测验中,AI组的参与者比手动编码的参与者得分低17%,相当于近两个字母等级的差距。使用AI确实略微加快了任务完成速度,但这并未达到统计学显著性的阈值。

重要的是,使用AI辅助并不一定会导致低分。一个人如何使用AI影响了他们保留多少信息。表现出更强掌握能力的参与者不仅使用AI辅助来生成代码,还在此过程中建立理解——无论是通过提出后续问题、请求解释,还是在独立编码时提出概念性问题。

研究设计

我们招募了52名(主要是初级)软件工程师,他们每个人都至少每周使用Python一次,且使用时间超过一年。我们还确保他们对AI编程辅助至少有一定熟悉度,并且对Trio(我们的任务所基于的Python库)不熟悉。

我们将研究分为三个部分:热身;主要任务包括使用Trio编码两个不同的功能(这需要理解与异步编程相关的概念,这是一种通常在职业环境中学习的技能);以及测验。我们告诉参与者测验会跟在任务之后,但鼓励他们尽可能快速地工作。

我们将编码任务设计成模仿某人如何通过自学教程学习新工具。每位参与者都获得了问题描述、起始代码,以及解决该问题所需的Trio概念的简要说明。我们使用了一个在线编码平台,侧边栏中有一个AI助手,它可以访问参与者的代码,并且随时可以根据要求生成正确的代码。

评估设计

在我们的评估设计中,我们借鉴了计算机科学教育领域的研究,确定了四种常用于评估编程技能掌握程度的问题类型:

  • 调试:识别和诊断代码中错误的能力。这项技能对于检测AI生成的代码何时不正确以及理解其失败原因至关重要。
  • 代码阅读:阅读和理解代码功能的能力。这项技能使人类能够在部署前理解和验证AI编写的代码。
  • 代码编写:编写或选择正确代码编写方法的能力。随着AI编程工具的进一步整合,低级别的代码编写(如记住函数语法)将不如高级系统设计重要。
  • 概念性:理解工具和库背后核心原理的能力。概念性理解对于评估AI生成的代码是否使用适当的软件设计模式、是否符合库的预期使用方式至关重要。

我们的评估主要集中在调试、代码阅读和概念性问题上,因为我们认为这些对于监督越来越可能是AI生成的代码最为重要。

结果

平均而言,AI组的参与者完成时间快约两分钟,尽管这一差异在统计学上不显著。然而,测验分数存在显著差异:AI组在测验中的平均分为50%,而手动编码组为67%——相当于近两个字母等级的差距(Cohen's d=0.738, p=0.01)。两组之间分数差距最大的是调试问题,这表明如果AI阻碍了编程发展,那么理解代码何时不正确以及为什么失败的能力可能是一个特别值得关注的领域。

定性分析:AI交互模式

我们特别感兴趣的是了解参与者如何完成我们设计的任务。在定性分析中,我们手动注释了屏幕录像,以识别参与者花在编写查询上的时间、他们提出的问题类型、他们犯的错误类型,以及他们花在主动编码上的时间。

一个令人惊讶的结果是参与者花在AI助手交互上的时间。有些人花了多达11分钟(占总分配时间的30%)编写了多达15个查询。这有助于解释为什么平均而言,使用AI的参与者完成得更快,尽管生产力提升在统计学上不显著。我们预期AI在用于重复性或熟悉任务时更有可能显著提高生产力。

不出所料,无AI组的参与者遇到了更多错误。这些包括语法错误和Trio概念错误,后者直接对应于评估中测试的主题。我们的假设是,遇到更多Trio错误的参与者(即对照组)可能通过独立解决这些错误提高了调试技能。

然后我们根据参与者与AI的交互方式对他们进行分组,识别出导致完成时间和学习结果不同的不同模式。

低分交互模式:低分模式通常涉及严重依赖AI,无论是通过代码生成还是调试。该组的平均测验分数低于40%。他们表现出较少的独立思考和更多的认知外包。我们进一步将他们分为:

  • AI委托(n=4):该组的参与者完全依赖AI编写代码并完成任务。他们完成任务最快,并且在过程中遇到很少或没有错误。
  • 渐进式AI依赖(n=4):该组的参与者开始时问一两个问题,但最终将所有代码编写委托给AI助手。他们在测验中得分低,主要是因为没有掌握第二个任务上的任何概念。
  • 迭代式AI调试(n=4):该组的参与者依赖AI来调试或验证他们的代码。他们问了更多问题,但依赖助手来解决问题,而不是澄清他们自己的理解。结果他们得分很低,完成两个任务的速度也较慢。

高分交互模式:我们将平均测验分数达到65%或更高的行为视为高分测验模式。这些群体中的参与者既使用AI进行代码生成,也进行概念性查询。

  • 生成-然后-理解(n=2):该组的参与者首先生成代码,然后手动复制或粘贴代码到他们的工作中。代码生成后,他们向AI助手提出后续问题以提高理解。这些参与者在使用AI时不是特别快,但在测验中表现出更高水平的理解。有趣的是,这种方法看起来与AI委托组几乎相同,只是他们使用AI来检查自己的理解。
  • 混合代码-解释(n=3):该组的参与者编写混合查询,要求代码生成同时提供生成代码的解释。阅读和理解他们要求的解释花费了更多时间,但有助于他们的理解。
  • 概念性探究(n=7):该组的参与者只问概念性问题,并依靠他们提高的理解来完成任务。尽管该组遇到了许多错误,但他们也独立解决了这些错误。平均而言,这种模式是高分模式中最快的,总体上是第二快的,仅次于AI委托。

我们的定性分析并未在交互模式和学习结果之间建立因果关系,但它确实指出了与不同学习结果相关的行为。

结论

我们的结果表明,将AI积极整合到工作场所,特别是在软件工程方面,是有代价的。研究结果突出表明,并非所有对AI的依赖都是一样的:我们在试图提高效率时与AI交互的方式会影响我们学到多少。考虑到时间限制和组织压力,初级开发人员或其他专业人员可能会依赖AI尽快完成任务,以技能发展为代价——尤其是当出现问题时调试的能力。

尽管这些结果是初步的,但它们在公司过渡到更高比例的AI编写代码与人工编写代码时提出了重要的考虑。如果初级工程师的技能发展因首先使用AI而受到阻碍,那么生产力提升可能会以验证AI编写代码所需的技能为代价。管理者应该有意识地考虑如何大规模部署AI工具,并考虑确保工程师在工作时继续学习的系统或有意识的设计选择——从而能够对他们构建的系统进行有意义的监督。

对于软件工程或任何其他行业的初级工作者,我们的研究可以被视为关于使用AI工具有意识地进行技能发展价值的一小部分证据。认知努力——甚至是陷入困境的痛苦——可能对培养掌握能力很重要。这也是适用于个人如何选择与AI合作以及使用哪些工具的教训。主要的LLM服务也提供学习模式(例如Claude Code的学习和解释模式或ChatGPT学习模式),旨在促进理解。了解人们在使用AI时如何学习也可以帮助指导我们如何设计AI;AI辅助应该使人类能够更高效地工作,同时发展新技能。

先前的研究发现AI对编程生产力是有帮助还是阻碍的结果不一。我们自己的研究发现AI可以将完成某些工作任务的时间减少80%——这个结果可能与这里呈现的发现看似矛盾。但这两项研究提出了不同的问题并使用了不同的方法:我们早期的观察性工作衡量了参与者已经具备相关技能的任务上的生产力,而本研究考察了当人们学习新事物时会发生什么。AI既可能加速已充分发展技能的生产力,又可能阻碍新技能的获取,尽管还需要更多研究来理解这种关系。

这项研究只是揭示人机协作如何影响工作者体验的第一步。我们的样本相对较小,我们的评估测量的是编码任务后不久的理解程度。即时测验表现是否能预测长期技能发展是本研究未能解决的一个重要问题。还有许多未解之谜,我们希望未来的研究能够调查,例如:AI对编码以外任务的影响、这种影响是否会随着工程师熟练度的提高而纵向消散,以及AI辅助是否与人类辅助在学习过程中有所不同。

最终,为了在AI存在的情况下适应技能发展,我们需要对AI对工作者的影响有更广泛的认识。在AI增强的工作场所中,生产力提升很重要,但这些提升所依赖的专业知识的长期发展也同样重要。

阅读完整论文了解详情。

致谢

本项目由Judy Hanwen Shen和Alex Tamkin领导。本博客文章的编辑支持由Jake Eaton、Stuart Ritchie和Sarah Pollack提供。

我们要感谢Ethan Perez、Miranda Zhang和Henry Sleight通过Anthropic安全研究员计划使本项目成为可能。我们还要感谢Matthew Jörke、Juliette Woodrow、Sarah Wu、Elizabeth Childs、Roshni Sahoo、Nate Rush、Julian Michael和Rose Wang对实验设计的反馈。


• • •

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

完整论文:https://arxiv.org/abs/2601.20245

如果您觉得内容对您有帮助,欢迎在看、点赞、分享 ⬇️❤️⬇️

点击下方卡片,关注【前端小石匠】,一起学习,共同进步~

如果您关注前端相关领域,可以扫码添加小编微信进群交流学习~🔥近期热文

10 个秘诀,让 JavaScript 编码乐趣无限!
拥抱未来:Web Components 引领前端组件开发新潮流
React 19 自动优化:useMemo 和 useCallback 是否已成过去式?
如何编写一个良好的 index.html 文件
TypeScript 泛型深度解析:从基础到高级应用

最新文章

随机文章