paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Here we go again

又来了:程序员学习新编程语言时的知识干扰
ICSE Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering2020匹配度 1/10 · 该论文是程序语言学习与开发者认知的实证研究,关注旧语言知识对学习新语言的干扰,未涉及静态分析、形式化验证、LLM/Agent、浮点程序分析或贝叶斯程序分析,与研究画像核心方向基本无关。引用 41 inbox
Nischal Shrestha, Colton Botta, Titus Barik, Chris Parnin
crossref: 2026-09-12

AI 速览

一句话:通过 Stack Overflow 分析与访谈,揭示程序员学习新语言时旧知识干扰的普遍性与成因。

论文研究程序员学习新编程语言时既有知识是否会造成干扰。作者对18种编程语言的 Stack Overflow 问题进行实证分析,人工检查450个问题,识别出276例由其他语言知识导致的错误假设和干扰;随后对16名职业程序员进行半结构化访谈,发现他们常将新语言与已有知识进行不当关联而遭遇困难。基于此,研究为技术作者、工具开发者和语言设计者提出启示:改进文档与自动化工具以减少干扰,在语言设计中预判不常见的语言迁移,并帮助程序员融入语言背后的完整生态。

问题
程序员掌握一门语言后学习新语言时,来自其他语言的知识可能产生干扰。
方法
对18种编程语言的450个 Stack Overflow 问题进行人工检查,并对16名职业程序员进行半结构化访谈。
评估
共识别出276例干扰,访谈揭示失败关联的成因,并据此提出文档、工具和语言设计启示。
原文摘要(Abstract)

Once a programmer knows one language, they can leverage concepts and knowledge already learned, and easily pick up another programming language. But is that always the case? To understand if programmers have difficulty learning additional programming languages, we conductedan empirical study of Stack Overflow questions across 18 different programming languages. We hypothesized that previous knowledge could potentially interfere with learning a new programming language. From our inspection of 450 Stack Overflow questions, we found 276 instances of interference that occurred due to faulty assumptions originating from knowledge about a different language. To understand why these difficulties occurred, we conducted semi-structured interviews with 16 professional programmers. The interviews revealed that programmers make failed attempts to relate a new programming language with what they already know. Our findings inform design implications for technical authors, toolsmiths, and language designers, such as designing documentation and automated tools that reduce interference, anticipating uncommon language transitions during language design, and welcoming programmers not just into a language, but its entire ecosystem.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot5644,
  title = {Here we go again},
  author = {Nischal Shrestha and Colton Botta and Titus Barik and Chris Parnin},
  booktitle = {ICSE},
  year = {2020},
  doi = {10.1145/3377811.3380352}
}