[论文阅读] 人工智能+软件工程 | 结对编程中的知识转移新图景

news2025/6/9 14:51:30

当AI成为编程搭档:结对编程中的知识转移新图景

论文信息

论文标题:From Developer Pairs to AI Copilots: A Comparative Study on Knowledge Transfer(从开发者结对到AI副驾驶:知识转移的对比研究)
作者及机构:Alisa Welter等来自德国萨尔兰大学,Christof Tinnes同时隶属于西门子公司
发表平台:arXiv预印本平台
发表时间:2025年6月

导语
“你有没有想过,未来编程可能不再需要找搭档——AI就能陪你写代码?德国学者的最新研究发现,GitHub Copilot这样的AI助手确实能传递知识,但方式和人类搭档大不相同:它更像个‘沉默的高手’,默默给提示,却很少和你‘辩论’对错……”

核心问题解读

1. 研究背景:编程世界的新旧碰撞

  • 关键挑战:传统结对编程(两人同机协作)被证实能高效传递知识,但随着GitHub Copilot等AI编程助手普及,开发者开始与AI“结对”。AI能否像人类搭档一样完成知识传递?
  • 现有空白:尽管AI助手已广泛使用,但学术界很少直接对比“人-人结对”与“人-AI结对”的知识转移效果,尤其是AI是否能替代人类搭档的核心价值。

2. 研究目标:揭开AI搭档的真面目

  • 验证假设:AI编程助手(如GitHub Copilot)能否在知识转移中达到人类搭档的效果?
  • 核心问题:开发者与AI协作时,知识传递的频率、深度和质量与传统结对有何差异?

3. 研究方法:让AI和人类来场编程PK

  • 对照实验:招募19名学生,分为两组:
    • 人-人组:6对开发者无AI辅助协作编程;
    • 人-AI组:7名开发者使用GitHub Copilot单独编程,需“大声思考”记录思路。
  • 创新工具:扩展现有知识转移框架,开发半自动化评估流程,分析两类场景中“知识转移事件”的特征(如讨论主题、问题解决方式)。

4. 研究结果:AI搭档的优势与隐忧

  • 核心发现1:知识传递频率相似,但风格迥异

    • 人-人组平均每次编程产生35个知识转移事件,人-AI组为18个。人类搭档更爱“唠嗑”,常因小问题展开快速问答。
    • 但AI组的事件更“专注”:人类搭档易被无关话题打断(12.5%的事件因分心终止),而AI几乎不会让开发者跑偏。
  • 核心发现2:AI像“沉默的老师”,但少了份“较真”

    • 优势:AI能“润物细无声”地提醒关键细节。例如,在事务中,开发者可能忘记commit,Copilot则会主动建议添加session.commit(),类似“隐形导师”。
    • 风险:开发者对AI建议的信任度惊人——超过60%的AI组事件以“盲目接受”(TRUST类型)结束,而人-人组更倾向深入讨论直至理解(ASSIMILATION类型)。
  • 核心发现3:编程话题的“贫富差距”

    • 两组最常讨论的都是“代码实现”(CODE主题),但人-人组还会聊编程语言语法(PROGRAM)、工具使用(TOOL)等,话题更丰富。
    • AI组几乎只聚焦代码,像“专精型选手”,而人类搭档更像“全能型伙伴”。

5. 结论与影响:AI与人类的协作新范式

  • 直接贡献:首次系统对比人-AI与传统结对的知识转移机制,证实AI能实现有效知识传递,但方式更“被动”。
  • 应用场景
    • 新手开发者:AI可作为“即时答疑工具”,快速填补知识缺口;
    • 复杂项目:人类搭档负责深度讨论,AI辅助处理重复性代码细节。

场景类比

类比1:AI搭档像“智能翻译机”

传统结对编程如同两人用母语交流,能聊技术、侃大山;而AI搭档更像“翻译机”,精准输出代码建议,但缺乏“闲聊”中的隐性知识传递(比如行业经验分享)。

类比2:知识传递像“浇水”

  • 人-人结对:像两人一起给植物浇水,边浇边讨论“浇多少”“怎么浇”,可能中途聊到天气(分心),但知识吸收更透彻;
  • 人-AI结对:AI像自动灌溉系统,定时提醒“该浇水了”,效率高但少了协作中的思维碰撞。

争议与读者价值

1. 研究局限性

  • 样本为计算机专业学生,未覆盖工业界资深开发者;
  • 仅测试GitHub Copilot,其他AI助手(如CodeGeeX)的表现可能不同。

2. 给普通读者的启示

  • 如果你是程序员:AI助手是高效工具,但别盲目信任,对关键代码建议需“打破砂锅问到底”;
  • 如果你关注科技趋势:这意味着“人机协作”将成主流,未来编程能力可能包括“与AI对话的艺术”。

3. 未来方向

  • 如何设计AI助手,让其在提供建议时“解释思路”,促进开发者深度理解?
  • 能否结合人类搭档的灵活性和AI的效率,打造“混合协作模式”?

现实意义
“下次用Copilot等编程助手时,不妨多问自己一句:‘它为什么这么建议?’——这可能是避免‘知其然不知其所以然’的关键。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2405487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

热成像实例分割电力设备数据集(3类,838张)

在现代电力系统的运维管理中,红外热成像已经成为检测设备隐患、预防故障的重要手段。相比传统可见光图像,红外图像可揭示设备温度分布,从而更直观地反映过热、老化等问题。而在AI赋能下,通过实例分割技术对热成像中的电力设备进行…

用电脑通过USB总线连接控制keysight示波器

通过USB总线控制示波器的优势 在上篇文章我介绍了如何通过网线远程连接keysight示波器,如果连接的距离不是很远,也可以通过USB线将示波器与电脑连接起来,实现对示波器的控制和截图。 在KEYSIGHT示波器DSOX1204A的后端,除了有网口…

uni-app学习笔记二十四--showLoading和showModal的用法

showLoading(OBJECT) 显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。 OBJECT参数说明 参数类型必填说明平台差异说明titleString是提示的文字内容,显示在loading的下方maskBoolean否是否显示透明蒙层,防止触摸穿透,默…

【Linux】centos软件安装

目录 Linux下安装软件的办法什么是yum使用yum试着安装软件查看yum源配置额外的第三方库 Linux下安装软件的办法 做为一个操作系统,与win和mac一样,安装软件无可厚非。那Linux下安装软件有哪些办法呢?第一种是直接下载源代码本地编译安装&…

基于Vue3.0的在线工具网站

文章目录 1、初始化项目1.1 创建项目1.2 安装vue路由1.3 安装UI库2、首页搭建2.0 页面布局2.1 页头2.2 侧边栏2.3 内容显示区域3、字符串加密解密功能实现3.1 页面构建3.2 实现加密/解密4、Json工具4.1 Json格式化4.1.1 搭建页面4.1.2 实现Json格式化4.2 Json转XML4.1.1 搭建页…

STM32H562----------串口通信(UART)

1、串口介绍 1.1、 数据通信概念 在单片机中我们常用的通信方式有 USART、IIC、SPI、CAN、USB 等; 1、数据通信方式 根据数据通信方式可分为串行通信和并行通信两种,如下图: 串行通信基本特征是数据逐位顺序依次传输,优点:传输线少成本低,抗干扰能力强可用于远距离传…

webpack其余配置

webpack搭建本地服务器 首先是要安装一个webpack-dev-server npm install webpack-dev-server -D 安装后在package.json中添加: {"name": "babel_core_demo","version": "1.0.0","main": "index.js"…

【CUDA 】第5章 共享内存和常量内存——5.3减少全局内存访问(2)

CUDA C编程笔记 第五章 共享内存和常量内存5.3 减少全局内存访问5.3.2 使用展开的并行规约思路reduceSmemUnroll4(共享内存)具体代码:运行结果意外发现书上全局加载事务和全局存储事务和ncu中这两个值相同 5.3.3 动态共享内存的并行规约reduc…

Python 训练营打卡 Day 46

通道注意力 一、什么是注意力 注意力机制是一种让模型学会「选择性关注重要信息」的特征提取器,就像人类视觉会自动忽略背景,聚焦于图片中的主体(如猫、汽车)。 transformer中的叫做自注意力机制,他是一种自己学习自…

Rust学习(1)

声明:学习来源于 《Rust 圣经》 变量的绑定和解构 变量绑定 let a "hello world":这个过程称之为变量绑定。绑定就是把这个对象绑定给一个变量,让这个变量成为它的主人。 变量可变性 Rust 变量默认情况下不可变,可以通过 mut …

鸿蒙仓颉语言开发实战教程:商城应用个人中心页面

又到了高考的日子,幽蓝君在这里祝各位考生朋友冷静答题,超常发挥。 今天要分享的内容是仓颉语言商城应用的个人中心页面,先看效果图: 下面介绍下这个页面的实现过程。 我们可以先分析下整个页面的布局结构。可以看出它是纵向的布…

智能生成完整 Java 后端架构,告别手动编写 ControllerServiceDao

在 Java 后端开发的漫长征途上,开发者们常常深陷繁琐的基础代码编写泥潭。尤其是 Controller、Service、Dao 这三层代码的手动编写,堪称开发效率的 “拦路虎”。从搭建项目骨架到填充业务逻辑,每一个环节都需要开发者投入大量精力&#xff0c…

Python----目标检测(yolov5-7.0安装及训练细胞)

一、下载项目代码 yolov5代码源 GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite yolov5-7.0代码源 Release v7.0 - YOLOv5 SOTA Realtime Instance Segmentation ultralytics/yolov5 GitHub 二、创建虚拟环境 创建一个3.8…

【Linux】文件赋权(指定文件所有者、所属组)、挂载光驱(图文教程)

文章目录 文件赋权创建文件 testChmod查看文件的当前权限使用 chmod 命令修改权限验证权限关键命令总结答案汇总 光驱挂载确认文件是否存在打包压缩压缩验证创建 work 目录将压缩文件复制到 work 目录新建挂载点 /MNT/CDROM 并挂载光驱答案汇总 更多相关内容可查看 此篇用以解决…

第22讲、Odoo18 QWeb 模板引擎详解

Odoo QWeb 模板引擎详解与实战 Odoo 的 QWeb 是其自研的模板引擎,广泛应用于 HTML、XML、PDF 等内容的生成,支撑了前端页面渲染、报表输出、门户页面、邮件模板等多种场景。本文将系统介绍 QWeb 的核心用法、工作原理,并通过实战案例演示如何…

【原理解析】为什么显示器Fliker dB值越大,闪烁程度越轻?

显示器Fliker 1 显示器闪烁现象说明2 Fliker量测方法2.1 FMA法2.2 JEITA法问题答疑:为什么显示器Fliker dB值越大,闪烁程度越轻? 3 参考文献 1 显示器闪烁现象说明 当一个光源闪烁超过每秒10次以上就可在人眼中产生视觉残留,此时…

Bootstrap Table开源的企业级数据表格集成

Bootstrap Table 是什么 ‌Bootstrap Table 是一个基于 Bootstrap 框架的开源插件,专为快速构建功能丰富、响应式的数据表格而设计。‌ 它支持排序、分页、搜索、导出等核心功能,并兼容多种 CSS 框架(如 Semantic UI、Material Design 等&am…

vue3表格使用Switch 开关

本示例基于vue3 element-plus 注&#xff1a;表格数据返回状态值为0、1。开关使用 v-model"scope.row.state 0" 会报错 故需要对写法做些修改&#xff0c;效果图如下 <el-table-column prop"state" label"入学状态" width"180" …

【11408学习记录】考研写作双核引擎:感谢信+建议信复合结构高分模板(附16年真题精讲)

感谢信建议信 英语写作2016年考研英语&#xff08;二&#xff09;真题小作文题目分析写作思路第一段第二段锦囊妙句9&#xff1a;锦囊妙句12&#xff1a;锦囊妙句13&#xff1a;锦囊妙句18&#xff1a; 第三段 妙句成文 每日一句词汇第一步&#xff1a;找谓语第二步&#xff1a…

一套个人知识储备库构建方案

写文章的初心是做知识沉淀。 好记性不如烂笔头&#xff0c;将阶段性的经验总结成文章&#xff0c;下次遇到相同的问题时&#xff0c;查起来比再次去搜集资料快得多。 然而&#xff0c;当文章越来越多时&#xff0c;有一个问题逐渐开始变得“严峻”起来。 比如&#xff0c;我…