Learning a new programming language: a model of the planning process

Experienced programmers often have to learn a new programming language with little or no formal instruction. This learning process often presents serious difficulties which have not been adequately studied. This paper reports on a protocol analysis of intermediate and expert programmers beginning to program in an unknown programming language. From the data collected the authors developed a model of planning in a new language. This model shows planning to be mostly a depth-first process which uses a top-down strategy of adopting plans which have proved successful in other languages and also a bottom-up strategy of search of the features of the new language for information which may suggest an appropriate plan. They observed a large amount of plan revision occurring throughout the whole program development process. Comparison of the model of planning in the new language to a model of planning in a familiar language revealed strong differences. In the familiar language planning was found to be much more strongly breadth-first, and few higher level plan revisions occurred.<<ETX>>