What makes a great programmer?

Experience and brutebrainpower enhance programming skill by helping programming knowledgeto build over time, rather than by directly boosting currentperformance, according to a new article in the Journal of IndividualDifferences.

Authors Gunnar RyeBergersen and Jan-Eric Gustafsson put 65 professional programmersthrough their paces for two straight days, tackling twelve meatytasks in the Java language to prove their programming skill; this waswhat the study ultimately wanted to better understand.

Participants all filledin an extensive questionnaire on Java programming knowledge. Someparticipants also completed a suite of tasks involving memorisingitems (e.g. letters) while simultaneously handling another task suchas checking sentences for errors. These measure working memory, thecomponent of mind that keeps things available for consciousprocessing, and related to 'g', our proposed fundamental level ofmental ability. Unfortunately working memory scores for over half theparticipants weren't taken due to logistical issues.

The authors modelledthe relationships between all variables, including years of workexperience, and found the best predictor of programming skill wasprogramming knowledge: it loaded onto skill with a value of .77, where one would meanperfect prediction. Once knowledge was taken into account, aprogrammer's skill didn't benefit from better working memory orlonger experience. Rather, these variables seem to matter earlier inthe process by building better knowledge: working memory to help theprogrammer make sense of complex concepts, experience to provide thetime for this to happen.

You can't get by in theprogramming industry with a static knowledge base, so working memoryand a sharp mind will always be in demand in the profession. Indeed,observing that their data found an association between working memoryand programming experience, the authors speculate that wannabes withpoor working memory are more likely to leave the profession entirely.But this study asks us to recognise that a whizzprogrammer's competence is thanks to applying that brainpower tolearning their trade.

ResearchBlogging.orgBergersen, G., & Gustafsson, J. (2011). Programming Skill, Knowledge, and Working Memory Among Professional Software Developers from an Investment Theory Perspective. Journal of Individual Differences, 32 (4), 201-209 DOI: 10.1027/1614-0001/a000052