Novice/Expert Differences in Programming Skills

Automation is the ability to perform a very well-practised task rapidly, smoothly and correctly, with little allocation of attention. This paper resports on experiments which sought evidence of automation in two programming subtasks, recognition of syntactic errors and understanding of the structure and function of simple stereotyped code segments. Novice and expert programmers made a series of timed decisions about short, textbook-type program segments. It was found that, in spite of the simplicity of the materials, experts were significantly faster and more accurate than novices. This supports the idea that experts automate some simple subcomponents of the programming task. This automation has potential implications for the teaching of programming, the evaluation of programmers, and programming language design.