Does personality predict coding ability?
Text by Clint Clark
There’s a question everyone asks once they know you’re a college student: What are you majoring in? As a student at Stanford University, it’s nearly impossible to walk around campus and never catch yourself within a 5-metre radius of a Computer Science major, not to mention minors or those who’ve simply taken the intro course. For some CS majors it’s even become a source of shame to mention it, as if they’ve lost their unique identity by jumping on the tech bandwagon. However, with the huge influx of different personalities and identities into the Computer Science field, Computer Science departments worldwide and the tech industry itself have become more diverse, and certain stereotypes about coders have started to fade. Successful coders don’t need to sacrifice their social life, or simply dream of projects that consist of ride-share or food-delivery apps. Although all Computer Science majors within a university department are taking the same core classes, what they’re really learning are tools to use for their own personal visions.
A small sample of the ride-share apps available in Cape Town.
With that said, everyone should consider learning to code if they’re interested. It would be dishonest, however, to say there aren’t personality traits that make the process more palatable. In 2015, Timo Gnabs published an article in the Journal of Research in Personality called “What makes a computer whiz? Linking personality traits and programming aptitude.” Gnabs gathered data from 19 different studies reporting on predictors of programming abilities. Studies either administered the Big Five personality test to their subjects, or Gnabs adapted the relevant data to the Big Five model. Moreover, each study used an objective performance test to quantify each subject’s programming ability. For example, they tracked the number of errors in a subject’s sample of code. From these studies, Gnabs extracted (a) correlations between personality (the Big Five) and programming aptitude, and (b) correlations between general mental abilities (e.g. grade point average) and programming aptitude.
The Big Five
At this point, you may be wondering: what is the Big Five model? If you take a test, you’ll find that the model measures five basic dimensions of personality: openness to experiences, conscientiousness, extraversion, agreeableness, and neuroticism.
Those who score high on conscientiousness are particularly thorough, careful and detail oriented. If you’ve ever coded more than a few lines, you’ve probably debugged, too. If you haven’t coded more than a few lines, know that one day you will spend hours finding a typo in your code. With that said, does scoring high on conscientiousness sound like a good thing for a coder? Gnabs thought so. That’s hypothesis number one.
Those who score high on openness to experience are particularly imaginative, creative, and intellectually curious. Coding is exciting to those who are able to think of unconventional solutions to a given problem. So, Gnabs’ proposed his second hypothesis: openness to experience is positively associated with programming aptitude.
Openness, conscientiousness, introversion, and general mental abilities together explain 12% of variance in programming ability
It turns out the strongest predictor of programming aptitude were general mental abilities. Those with higher abilities created significantly better code with fewer errors (p<.001). Beyond cognitive abilities, the most important personality trait was openness to experience; intellectual curiosity and creativity significantly contributed to programming success (p<.001). Additionally, more conscientiousness programmers made fewer errors (p=.04).
Though Gnabs did not hypothesize a correlation between extraversion and coding, he found that successful programmers were more introverted (p=.001). Lastly, he found that agreeableness and neuroticism did not predict programming ability. Overall, personality traits and general mental abilities jointly explained approximately 12% of variance in programming proficiencies.
What does this mean? That if you’ve ever missed an appointment or misplaced your phone you’re not conscientious, and therefore not fit for coding? Or, if you’ve ever found yourself bored in a lecture you’re not intellectually curious, and therefore not fit for coding?
On the flipside of Gnabs’ results, personality traits and mental abilities jointly did not explain 88% of variance in programming proficiencies. This makes sense to me. Naturally, people act differently in different contexts. A Big Five instrument, or at least the one I took, asks very general questions. Though I took some of the highest levels of math classes in my high school, they didn’t excite me then. In college, I struggle with math, but when it incorporates computer science it intrigues me. My personal opinion is to take Gnabs’ results with a grain of salt. If you’re interested in coding, give it a shot. If you want to be successful, work hard. (Even success has different definitions for everyone). Don’t let a 10-minute personality test determine your fate, or even a failing grade in a class. #GrowthMindset