For Microsoft CEO Satya Nadella, coding is like poetry and now, researchers have revealed that one does not need to be even good at math to become a good coder at any of the Silicon Valley tech giants like Apple.
New research from the University of Washington in Seattle found that a natural aptitude for learning languages is a stronger predictor of learning to programme than basic math knowledge or numeracy.
That's because writing code also involves learning a second language, an ability to learn that language's vocabulary and grammar, and how they work together to communicate ideas and intentions. Other cognitive functions tied to both areas, such as problem-solving and the use of working memory, also play key roles.
Does programming centre around math ability?
"Many barriers to programming are centred around the idea that programming relies heavily on math abilities, and that idea is not born out in our data," said lead author Chantel Prat, associate professor of psychology.
"Learning to programme is hard, but is increasingly important for obtaining skilled positions in the workforce. Information about what it takes to be good at programming is critically missing in a field that has been notoriously slow in closing the gender gap," Prat elaborated.
The study examined the neurocognitive abilities of more than three dozen adults as they learned Python, a common programming language.
Following a battery of tests to assess their executive function, language and math skills, participants completed a series of online lessons and quizzes in Python.
Those who learned Python faster, and with greater accuracy, tended to have a mix of strong problem-solving and language abilities, showed the findings detailed in the journal Scientific Reports.
Researchers found that scores from the language aptitude test were the strongest predictors of participants' learning rate in Python.
Scores from tests in numeracy and fluid reasoning were also associated with Python learning rate, but each of these factors explained less variance than language aptitude did.
This is the first study to link both the neural and cognitive predictors of natural language aptitude to individual differences in learning programming languages.
"We were able to explain over 70 per cent of the variability in how quickly different people learn to programme in Python, and only a small fraction of that amount was related to numeracy," Prat said.
Further research could examine the connections between language aptitude and programming instruction in a classroom setting, or with more complex languages such as Java, or with more complicated tasks to demonstrate coding proficiency.
Coding is associated with math and engineering; college-level programming courses tend to require advanced math to enroll and they tend to be taught in computer science and engineering departments.
Coding also has a foundation in human language: Programming involves creating meaning by stringing symbols together in rule-based ways.