Litcius/Paper detail

Here we go again

Nischal Shrestha, Colton Botta, Titus Barik, Chris Parnin

202041 citationsDOI

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.

Topics & Concepts

Computer scienceProgrammerFourth-generation programming languageNatural language programmingProgramming language specificationProgramming languageFirst-generation programming languageVery high-level programming languageLow-level programming languageLeverage (statistics)DocumentationLanguage primitiveFifth-generation programming languageProgramming paradigmArtificial intelligenceUniversal Networking LanguageProgramming domainComprehension approachNatural languageFunctional logic programmingInductive programmingSoftware Engineering ResearchSoftware Engineering Techniques and PracticesTeaching and Learning Programming
Here we go again | Litcius