Affiliation:
1. NC State University Raleigh, NC
2. Microsoft Redmond, WA
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 conducted an 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 semistructured 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.
Publisher
Association for Computing Machinery (ACM)
Reference25 articles.
1. Understanding Mindshift Learning: The Transition to Object-Oriented Development
2. SOTorrent
3. How should compilers explain problems to developers?
4. Barragan , N. My Experience with Learning Rust . 2018 . Barragan, N. My Experience with Learning Rust. 2018.
5. Programming plans: internal or external structures;Bellamy R.;Lines Thinking: Reflections Psychol. Thought,1990
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The Future is Democratized Graphs;Synthesis Lectures on Data Management;2023
2. Contextualized Programming Language Documentation;Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software;2022-11-29