The aim of a new study is to explore how software developers' skills vary over time. Does programming expertise grow, plateau, or start to decline? The answer is quite a surprise.
A new research study from North Carolina State University indicates that the knowledge and skills of programmers improve over time and that older programmers know as much (or more) than younger ones about recent software platforms.
Authors Patrick Morrison and Emerson Murphy-Hill of North Carolina State University state in the abstract of a paper to be presented on May 18 to the 10th Working Conference on Mining Software Repositories:
A diversity of opinion exists on this matter, but many seem to think that aging brings a decline in adoption and absorption of new programming knowledge.
The study to test the perception that older programmers aren’t able to keep pace with rapidly changing technology involved looking at the profiles of more than 80,000 programmers on StackOverflow and comparing their reputations scores which is a reflection of the quality of their answers to questions and therefore of their programming knowledge.
This figure from the paper Is Programming Knowledge Related To Age? shows how reputation increases with age at least into a programmer’s 40s:
The researchers then looked at the number of different subjects that users asked and answered questions about and discovered that older programmers demonstrate a breadth of knowledge compared to younger ones with the range of subjects showing a steady increase through the programmers’ 30s and into their early 50s.
A specific question that the study wanted to answer to the extent to which older programmers learn new technologies.
The researchers hypothesized:
If older programmers learn newer technologies, we might expect them to have similar or higher answer scores to younger programmers for these technologies. In order to test this notion, we group programmers as 'older' and 'younger' programmers and apply the one-sided Welch Two-Sample t-test for a set of new technologies.
For this test "older programmers" were those aged 37 and older and the pre-selected tags for "new technologies were clojure, django, git, ios, jquery, linq, mongodb, ruby-on-rails, silverlight and windows-phone-7.
Two of these proved to be statistically significant, ios and windows-phone-7. and the authors comment:
These may indicate places where knowledge of older technologies, e.g. the 20-year old Objective-C foundation of 'ios', gives older programmers an advantage.
This may well be true but notice the way that the number of tags goes down till about 25 - presumably this means that programmers initially specialize and want to be on top of a small range of subjects. After 25 it seems that programmers spread their talents over a wider range of topics. Could this be the age of disillusionment - when the one true technology fails to deliver and they start to look around for alternatives?
If you look at the charts more closely, a more interesting story emerges. The first chart shows a very big increase in variance at about 45 years. Before this age the variance is small and lies around a regression line that indicates a steep increase in reputation. You could almost call the 20 to 45 the "driven" period where everyone is fiercely competing for reputation and accumulating it as befits their age and status.
What happens at 45?
It is as if the whole dynamic changes. You can see it very clearly in the first chart and it is still visible in the second.
Could it be that after 45 old age sets in and the maturity that it brings means that programmers are not as driven to gather repuation? It is a nice idea that a proportion of programmers simply lose the drive to stockpile repuation.
What is beyond doubt, from both charts. is that something happens at around 25 and at 45 - what exactly deserves more study.