Is learning a programming language like learning any other kind of language?
Intuitively, you might expect the answer to be no. Programming languages are made up of different components than natural languages, and they’re used for a different purpose.
But a new study from researchers at University of Washington suggests that to some extent the answer is actually yes, aptitude for programming languages and aptitude for languages more generally seem to have something in common.
The researchers discovered that by teaching the programming language Python to 36 people, then looking at a range of factors that might predict how effectively the participants learned to code.
Some of the most important factors had to do with general cognitive skills. For example, reasoning abilities and the ability to hold information in working memory explained about 34 percent of the variation in how well people learned Python.
Interestingly, though, language aptitude in particular explained 17 percent of the variation in learners’ performance. That’s after taking into account more general cognitive skills, suggesting a particular link between language aptitude and learning to code.
People have sometimes associated programming skills with math skills rather than language skills, but the researchers failed to turn up evidence for a strong link between numerical ability and programming ability. In fact, how good people were at working with numbers explained just 2 percent of the variation in how well they learned Python in the experiment.
According to the authors of the study, their findings point to a new way of thinking about the skills that go into learning how to program. In their words, “these results provide a novel framework for understanding programming aptitude, suggesting that the importance of numeracy may be overestimated in modern programming education environments.”