Learning a New Programming Language

Ronald Blaschke

Bowling Green State University
Computer Science

Bowling Green State University
Bowling Green, Ohio 43402

$Date: 2000/05/04 04:35:37 $

$Revision: 1.2 $ ($State: Final $); available online at http://www.cosy.sbg.ac.at/~rblasch/study/cs665/essay/

Abstract

Learning a new programming language can be difficult and the pressure of "getting a job done" in an unknown language is even more difficult. But what are the common mistakes and how can they be avoided? And if you have the choice of giving the task to a novice and an experienced programmer, whom should you choose? Or does this not matter, since both of them don't know the new language? We will try to answer these and other questions and point out what is important when learning a new programming language.


Introduction

Almost every programmer is sooner or later confronted with learning a new programming language. Many computer science studies start with a procedural language, like Pascal or Ada, to show basic algorithms and data structures. Later on, for example in an operating systems course, one may have to use C or C++. The study may also include the introduction to a functional language, like LISP or Haskell, and to a logical language, like Prolog. Or a programmer may work on a project where the use of a specific language is required. Even if one wants to extend an editor like Emacs or Microsoft Word with macros a user may find himself learning a new language. In short, it is quite unlikely that a programmer has to know only one language. We want to discuss some issues related to learning a new language and answer questions like: What are the most important cognitive factors for learning a new language? Is there a lot of negative transfer to the new language, i.e. are concepts learned in a former language transferred to the new language, but are there inappropriate? And what is of most help when learning a new language?

References

[1] Empirical Studies of Programmers: Fith Workshop, Edited by Curtis Cook, Jean Scholtz, and James Spohrer, 1993, 231 pages, 1-56750-088-9, Ablex Publishing Corporation, Norwood, An Analysis of Novice Programmers Learning a Second Language, Jean Scholtz and Susan Wiedenbeck, 1993, pages 187-205.

[2] Interacting With Computers, 1993, 130 pages, Butterworth-Heinemann Ltd., vol. 5, no. 1, "Using Unfamiliar Programming Languages": The Effects on Expertise, Jean Scholtz and Susan Wiedenbeck, 1993, pages 13-30.

[3] International Journal of Man-Machine Studies, 1992, 130 pages, Academic Press, vol. 37, no. 2, "The Role of Planning in Learning a New Programming Language", Jean Scholtz and Susan Wiedenbeck, 1992, pages 191-214.

[4] International Journal of Human-Computer Studies, 1994, 175 pages, Academic Press, vol. 40, no. 5, "Mental Models and Computer Programming", Jose Juan Canas, Maria Teresa Bajo, and Pilar Gonzalvo, 1994, pages 795-811.

[5] Workshop - Institut National de Rechereche en Informatique et en Automatique, 1992, Le Chesnay, no. 8, Knowledge Transfer among Programming Languages, Q. Wu and J. Anderson, 1992, pages 183-196.

[6] Visual Information Processing, 1973, Academic Press, "The Mind's Eye in Chess", William Chase and Herbert Simon, 1973.

[7] Cognitive Science, 1981, pages, Cognitive Science Society, Inc., vol. 5, "Knowledge Organisation and Skill Differences in Computer Programmers", Katherine McKeithen, 1981, pages 307-325.

[8] International Journal of Computer and Information Sciences, 1976, Plenum Publishing Corporation, vol. 5, no. 2, "Exploratory Experiments in Programmer Behavior", Ben Shneiderman, 1976, pages 123-143.

[9] Cognitive Science, 1989, 171 pages, Cognitive Science Society, Inc., vol. 13, no. 3, "Schema Creation in Programming", Robert Rist, 1989, pages 389-414.

[10] Computers Education, 1996, Elsevier Science Ltd., vol. 27, no. 2, "An Intelligent Tool to Aid Students in Learning Second and Subsequent Programming Languages", Vikki Fix and Susan Wiedenbeck, 1996, pages 71-83.

[11] International Journal of Human-Computer Interaction, 1990, Ablex Publishing, vol. 2, no. 1, "Learning Second and Subsequent Programming Languages": A Problem of Transfer, Jean Scholtz and Susan Wiedenbeck, 1990, pages 51-72.

[12] Directions in Human-Computer Interaction, Edited by A. Badre and B. Shneiderman, 1984, Ablex Publishing, "What do novices know about programming?", E. Soloway, K. Ehrlich, J. Bonar, and J. Greenspan, 1984.