Abstract: Many experts in fields such as mathematics, medicine, and chess display intellectual marvels undiminished with age. However, software engineers, much like athletes, seem to have a limited lifetime for applying their expertise. Compared to other areas of expertise, the elements of which programming expertise is built upon is unstable, short-lived, and often non-transferable. In this position paper, we derive insights from psychology, cognitive neuroscience, and decades of software engineering research on expertise. Using these insights, we strive to understand what representations, strategies, and cognitive processes and mechanisms experts use when performing exceptional programming feats. In particular, we want to understand how expertise shapes an expert’s mind, and understand the intricate patterns and strategies that expert programmers hone over the years. To answer these questions, we propose to use several brain-imaging techniques to study expert software engineers. Finally, based on these results, we wish to derive guidelines in order to help companies and teachers in identifying and training programmers to quickly adapt to changes in terms of languages, projects, teams, and techniques.
PPIG 2017 - 28th Annual Workshop
On the Nature of Programmer Expertise