There is a perception in some tech circles that older programmers aren't able to keep pace with rapidly changing technology, and that they are discriminated against in the software field. But a new study from North Carolina State University indicates that the knowledge and skills of programmers actually improve over time – and that older programmers know as much (or more) than their younger peers when it comes to recent software platforms.
"We wanted to explore these perceptions of veteran programmers as being out of step with emerging technologies and see if we could determine whether older programmers are actually keeping up with changes in the field," says Dr. Emerson Murphy-Hill, an assistant professor of computer science at NC State and co-author of a paper on the research. "And we found that, in some cases, veteran programmers even have a slight edge."
The researchers looked at the profiles of more than 80,000 programmers on a site called StackOverflow, which is an online community that allows users to ask and answer programming questions. The site also allows users to rate the usefulness of other users' questions and answers. Users who are rated as asking good questions and providing good answers receive points that are reflected in their "reputation score." The higher an individual's reputation score, the more likely it is that the user has a robust understanding of programming issues.
For the first part of the study, the researchers compared the age of users with their reputation scores. They found that an individual's reputation increases with age, at least into a user's 40s. There wasn't enough data to draw meaningful conclusions for older programmers.
The researchers then looked at the number of different subjects that users asked and answered questions about, which reflects the breadth of their programming interests. The researchers found that there is a sharp decline in the number of subjects users weighed in on between the ages of 15 and 30 – but that the range of subjects increased steadily through the programmers' 30s and into their early 50s.
Finally, the researchers evaluated the knowledge of older programmers (ages 37 and older) compared to younger programmers (younger than 37) in regard to relatively recent technologies – meaning technologies that have been around for less than 10 years.
For two smartphone operating systems, iOS and Windows Phone 7, the veteran programmers had a significant edge in knowledge over their younger counterparts. For every other technology, from Django to Silverlight, there was no statistically significant difference between older and younger programmers.
"The data doesn't support the bias against older programmers – if anything, just the opposite," Murphy-Hill says.
Explore further: Collaboratively exploring virtual worlds
More information: The paper, "Is Programming Knowledge Related To Age?," will be presented May 18 at the 10th Working Conference on Mining Software Repositories, sponsored by IEEE and ACM in San Francisco, Calif. Lead author of the paper is Patrick Morrison, a Ph.D. student at NC State. people.engr.ncsu.edu/ermurph3/papers/msr13.pdf
Abstract: Becoming an expert at programming is thought to take an estimated 10,000 hours of deliberate practice. But what happens after that? Do programming experts continue to develop, do they plateau, or is there a decline at some point? 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. We develop several research questions on this theme, and draw on data from StackOverflow to address these questions. The goal of this research is to support career planning and staff development for programmers by identifying age-related trends in StackOverflow data. We observe that programmer reputation scores increase relative to age well into the 50's, that programmers in their 30's tend to focus on fewer areas relative to those younger or older in age, and that there is not a strong correlation between age and scores in specific knowledge areas.