What personality makes a programmer?

…the personality trait most strongly correlated with programming ability was not introversion or conscientiousness, but openness: a trait that’s related to being creative and imaginative. What’s more, over time to the present day, openness has become a more important correlate of programming ability, while conscientiousness has become less important. This is speculation, but perhaps more creative people are today drawn to careers in programming because of all the opportunities for imaginative expression in a world of apps, video games, snazzy websites, and social networks. Finally, the traits of agreeableness (essentially how friendly someone is) and neuroticism (how anxious and emotionally unstable) were not correlated with programming ability, pretty much refuting the tired stereotype of the socially awkward programming geek.

A final thought: knowing someone’s personality and mental ability doesn’t actually tell you a great deal about their likely computer programming skills. Personality traits and IQ in fact only accounted for around 12 per cent of the difference between people in their programming abilities, which just goes to show that the very idea that there is such a thing as a computer wiz “personality type” is nonsense anyway.

There is more here, original research here.  I would put more weight on the second excerpted paragraph than the first.


'while conscientiousness has become less important'

Depends on what is being programmed, actually.

'because of all the opportunities for imaginative expression in a world of apps, video games, snazzy websites, and social networks'

If this is what is meant by programming, then the author is remarkably ignorant.

'I would put more weight on the second excerpted paragraph than the first.'

One could only hope, considering how stupid that first paragraph is.

Are you a software developer? I am, and I don't think that sentence is "ignorant".

It is true that this doesn't describe all programming, but it is a significant portion--and the point was about what draws people to the field, anyway. Many more people become programmers because they want to write video games than actually end up doing so.

Yes, but the VAST majority of programming is for banks, insurance companies, etc where creativity is not the flashy kind but the kind that finds robust solutions to users problems.

I have be a software engineer for 25 years and can tell you that age of apps and video games has NOT ushered in an era of increasing code quality. On the contrary, the quality remains quite low as the people entering the field become dazzled by the next shiny thing rather than focusing on solving client problems and writing the best code possible. Just this morning I am struggling with an issue of slap-it-in vs make-it-right.

What has changed more I think is object re-use. Now you have giant stacks of code with objects 25 levels deep that should absolutely never, ever, ever fail and objects near the top that fail pretty often because they're new development.

Vinge's "Programmer/Archaeologist" job is practically a real thing now with some of these massive codebases.

I was going to say the same thing. The open-source infrastructure underlying most newbies' first few projects makes up 90% of the application code. Which is great IMO because it encourages more newbies to get their feet wet and improve over time.

"‘because of all the opportunities for imaginative expression in a world of apps, video games, snazzy websites, and social networks’" - this describes almost perfectly my interest in programming, except that I have no interest in video game programming.

What kind of programming are you talking about?

I think the point P_A is making and I tend to agree with is that the author make it seems like a programmer in front of his/er computer is like Bob Ross in front of a canvas. To me, though, I wouldn't go as far as P_A has. Creative solutions are by definition creative irrespective of how snazzy the end product may appear. I think the fundamental point stands, but could be better phrased.

If you were to go all the way back to the punch-card era, you might well find that conscientiousness was far more important than openness. In an era when programming was not interactive it could take days to find out you'd made a syntax error, while constraints imposed by slow, memory-limited hardware would limit what you could do anyway. Such an environment might tend to reward those who were very conscientiousness while providing little emphasis on creativity.

Of course, that was a very long time ago, BUT, many of the programmers from that era had long careers, so these values would have persisted in the field for a long time.

Which is to say, perhaps better programming tools such as newer programming environments and languages (perhaps even the humble syntax-aware text editor) as well as more capable target hardware have tipped the balance more toward creativity, and perhaps also de-emphasized at least some types of conscientiousness?

Good comment. Agreed. De-emphasizing those types in effect freeing you up to focus on other conscientious matters (e.g. scalability, end-user approval, etc.).

Most of the gains you speak of have been swallowed up in the complexity of new software. In the punch-card era people did not try to maintain code bases with millions of lines. If the last 10 years have brought anything new, it to create a new a class of small, useful programs (aka mobile apps).

p_a should take up yoga or something else soothing.

I'm going to 'overall' agree with prior here. Look, someone that can mill out websites or apps is fine. You can call that programming. But the real programmers are not the ones that know code. They are the ones that have vision for what they do and actually can make pretty much anything happen with code. What I'm saying is they are those that think out of the box. People who are 'imaginative' are to distracted by their own thoughts to actually have their own thoughts. A great programmer is isolated with what they do. They are not distracted by the extroverted idea that anyone else matters. Focus, that is what programming is more about than anything. Anyone wants to preach otherwise is not great at what they do.

From the original paper: "Unexpectedly, the most important personality predictor was introversion."

Yes, the excerpt above makes it sound like introversion and conscientiousness are non-factors, when in fact the original study's summary says "Openness, conscientiousness, and introversion were relevant predictors. The three traits explained programming aptitude beyond general mental abilities."

That result is a lot less surprising than what the excerpt suggested!


To whom?

I code. I'd say the lack of correlation with neuroticism is right. Patience and tolerance to failure are a must. Sometimes during dinner with my wife she asks how my day was and all I can say is "fail in every thing I tried today". Those days I steer the conversation into the social part of the work, avoid talking about results.

Those days of endless failures make the eventual successes that much more meaningful. :)

Your description suggests there should be a strong negative correlation, though.

Haha, yes. It's a negative correlation, inversely proportional.......I was distracted.

So when your wife asks about your commenting today...

“fail in every thing I tried today”.

I really like this. It feels vaguely empowering for some reason I can't quite put my finger on.

"Failed in everything I tried today" is good when it has an implied "Have not given up because of days like, will give up tomorrow".

What do you do when the real world you know conflicts so strongly with a study?

I say, believe your lying eyes.

I expect that they are really measuring how well someone fits into a team and is happy to grind away at some small portion of a larger project.

I've been coding for 25 years and the excerpt doesn't contradict my experience. The best coders also often have a really broad base of knowledge, which fuels their creativity. If you read Hacker News you'll find half of the articles are about health and social phenomena.

NB There is a difference between programming and software engineering. I'm a coder who does web apps. Boeing or NASA would never hire me to write mission critical software.

I agree and I frequently wonder where these studies draw the line, I code every day but it's almost entirely one off to speed up aggregation and analysis of data. Its been 5 years since I've worked in a traditional Software Engineer role.

The author doesn't appear to understand the concept of restriction of range or perhaps to be generous (the paper is gated) it is just the reporting of the study. Variance within highly select groups cannot be used to make general claims about the variance between that group and society in general. For example all computer programmers might be highly neurotic compared to the general population but that doesn't mean neuroticism will explain a significant amount of variance between programmers.

Thank you!

It reminds me of the "studies" at highly selective universities claiming SAT scores are not predictive of classroom performance.

Do multi-tasking skills correlate? Since the " world of apps, video games, snazzy websites, and social networks" require multi-tasking skills, I would expect that the programmers must have them too. Maybe it's my age, but I'm no multi-tasker, something my Godson and his friends would observe when they were children - and busy multi-tasking. I write complex legal documents, which requires total concentration on one thing. My only experience with programming was 45 years ago in college with something called fortran (that's how old I am), a binary language that required total concentration, which belies my expectation that programmers must be multi-taskers. In any case, I am intrigued by young people and their multi-tasking. Is there any time that they concentrate on one thing, such as while having sex, or do they multi-task even then, reading a book maybe.

Fortran is both old and new. If you want to make it run fast, there are no alternatives to Fortran of C++. Just look at MPI Fortran.

In my mind, "multi-tasking" refers to being able to do several things at once, like a secretary speaking on the phone while processing the request of a person in front of them at the same time.

I think what you refer to would be better described as having multiple skill sets, or having multidisciplinary strengths.

Did you just read the same paragraph the rest of us did?

Ah, sorry, he's saying that they're NOT necessarily multitaskers. For some reason I was thinking he was referring to programming and writing complex legal documents interchangeably, whereas he's saying that focusing on one at a time is best.

I don't think multi-tasking per se is good, but being able to visualize complex models is very useful. I.e. "if I change this one thing over here, that may affect something over there, so I should be careful about how I implement it."

Quite the opposite, actually. The primary mental skill involved in programming is holding large, complex models in your head. You write code to convey those models to the computer. You read code to build up someone else's models (or yours from six months ago) in your head. You examine diagnostics, logs, and variables in memory to understand why the models in your head don't match the behavior of the code in the computer. You profile and instrument your code to figure out which parts of your model need refinement to use fewer resources.

The most difficult parts of programming require intense concentration. Some programmers can't even listen to music while they're programming. Many can't listen to talk radio or watch TV. Most can't carry on a conversation. An ill-timed "So, how about that local sports team, eh?" can cause the model in your head to simply evaporate, destroying hours of mental work.

It's probably a lot more like legal drafting than you'd think.

I'll reproduce my comment from the Research Digest site:

In this meta-analysis, there was no attempt to deal with artefacts that lower effect sizes, such as restriction of range and random measurement error. The R^2 of 12% is therefore an underestimate of the actual effect size. (Gnambs's PET-PEESE-corrected estimates suggested that IQ alone explains 35%. I'm skeptical of the PET-PEESE, but correcting for the aforementioned artefacts would undoubtedly increase the variance explained by IQ to a similar extent.)

Moreover, if the same IQ and personality tests were used to stringently select from a pool of job applicants, large productivity gains could be achieved even with a multiple correlation of 0.35 (i.e., the R^2 of 12%). Look at Figure 1a in this paper where the correlation is 0.40.

Openness in this study was the best personality predictor largely because it's the only personality trait that is substantially correlated with IQ. Controlling for IQ, the point estimate for openness was lower than the point estimates for conscientiousness and introversion. This is due to the fact that the openness trait reflects self-estimated intelligence.

+1 Restriction of range is a big issue. This is like measuring the importance of GRE or LSAT scores for grad school grades only on the set of students accepted into top universities -- which already use test scores to screen for applicants -- and then concluding erroneously that test scores are of minor significance for success in grad school. We would need to correct for the vast numbers of people who can't be bothered to learn to program or won't even go near a computer except to surf the web if that.

My points (I am an occasional programmer):

1 - Why we should even expect a correlation between being a programmer and conscientiousness? Attending that programming is fun (programming is very similar to playing a game, where you, first, have to discover the way of making the computer do some thing, and, after, you have to discover why the program don't work and where are the bugs) will be a natural career for people with low conscientiousness, who only can do a work if they find the work fun/exciting.

2 - "Finally, the traits of agreeableness (essentially how friendly someone is) and neuroticism (how anxious and emotionally unstable) were not correlated with programming ability, pretty much refuting the tired stereotype of the socially awkward programming geek."

This is silly - "social awkwardness" is little more than a different name for introversion, and the study shows a strong correlation between programming skills and introversion

3 - "This is speculation, but perhaps more creative people are today drawn to careers in programming because of all the opportunities for imaginative expression in a world of apps, video games, snazzy websites, and social networks."

Why programming an app/video game/website/social network is more "creative" than programming any other thing? I think the authors are mixing two different things (a product rquiring creativity from the programer who creates the product; and the product being "fun" for the users)

4 - rayward: "Do multi-tasking skills correlate? Since the ” world of apps, video games, snazzy websites, and social networks” require multi-tasking skills, I would expect that the programmers must have them too. "

Why? Again, why the fact that the consumers of a product usually multi-task has to do with the creator of the product being good or bad at multi-tasking; I suppose that most aeronautical engineers never had at the commands of an airlane flying (btw, I doubt that video games require multi-tasking skills - if anythings, what many games require is absolut concentration)

Miguel Madeira October 27, 2015 at 6:28 am

Why we should even expect a correlation between being a programmer and conscientiousness?

A large part of real world programming is going back and fixing the poor code that someone else wrote years ago and forgot to comment properly. Not always years ago. A programmer who does not make mistakes the first time around is worth his weight in gold. Someone who carefully explains what he was trying to do is a pearl beyond price.

Why programming an app/video game/website/social network is more “creative” than programming any other thing?

Because articles like this are written by people who did Social Science subjects or even psychology rather than anything rigorous. That means they cannot understand what makes, for instance, Google's search engine interesting, nor can they admire the conciseness of Apple's operating systems. So they need to assume that "creative" means something they can understand - flashing lights and aliens being blown up. They simply lack the background knowledge and cognitive skills to do otherwise.

There is a bit in Francis Spufford's The Backroom Boys where he talks about the incomprehensible language used by Britain's rocket scientists. They used words like "simple" and "elegant" in ways he could not understand

+1 this.

I employ lots of programmers.

+1, particularly for the second point.

Anyone with a passing familiarity with designing things will see it as creative.

This is the difference between the guy who enjoys his job, and the poor guy who has to manage that person....

"and forgot to comment properly"

As a real programmer, I take issue with this statement... the code is obvious (even a machine can understand it), putting comments in the code just makes it harder to visually inspect .

Of course, I also observed that programming seems to require total concentration, "which belies my expectation that programmers must be multi-taskers". My view is that we spend way too much time collecting data, profiling, and guessing what the future beholds for us. My mother's life-long friend shot down 34 enemy aircraft in WWII. He attributed his skill as a fighter pilot to his high diving competitions while in high school and at Annapolis. What gives people special talent is a mystery and doesn't fit a profile.

Why we should even expect a correlation between being a programmer and conscientiousness?

Are openness (which I construed as open-mindedness) and conscientiousness the same thing? The reason good programmers need to be open-minded is that they need to anticipate the different ways in which their software will be used (or abused) by different people. When building a UI, I would ask myself: can my Grandma use this after a minute of introduction? Or, can a hacker frame a remote query that will crash (or DoS) my server? Often a programmer cannot figure out all of this by himself. So when a team member suggests a different design, he needs to be receptive to the idea. So openness needs to be part of one's skillset if one aims to be a good programmer. Whether or not the corollary is true (having this skill/proclivity draws one to programming) is a different question. The study that TC points to indicates it might be.

"This is silly – “social awkwardness” is little more than a different name for introversion"

I don't agree. An introvert is someone who enjoys or doesn't mind spending time alone with his or her own thoughts. "Social awkwardness" is a lack of social skills -- it applies to people who have trouble reading body language or understanding subtle forms of communication and who tend to become nervous or lose confidence in social settings. I've definitely known people who had pretty good social skills but who weren't always trying to seek out opportunities for socializing and would be happy to spend an evening alone with a book. Conversely, I've met a few very intelligent people who seem to like the company of other people and seek it out but are still clueless about certain social norms and can't tell when they are making others uncomfortable. Professors sometimes fit into this latter category -- they love gabbing about their own subject or some pet interest they have but can't tell when others start to lose interest or want to change the topic.

Well, being a portuguese, probably I not have a perfect notion of the exact meaning of “social awkwardness”; however, I am 99% sure that someone that is much introvert will be considered "social awkward" - if in social situations you say nothing beside some ocasional monosylabic words and have a general dull/distant/cold/unpersonal interaction with other people, this will be considered "awkward"; of course the opposite is not true - you can be the "active but odd" type of social awkward, but I doubt that these will be captured by any of the measured traits (nor IQ nor the "big five" - openness, conscientiousness, extraversion, agreeableness, and neuroticism - seems to have a relation with this, specially if the awkwardness in unitentional).


The extrovert who lacks social skills is so common that it's a cliche.

Intro/extro-version is orthogonal to social skill.

Brilliant. Don't forget to add the bit that says the only way to improve the social status of programmers is to allow a billion Indian and Chinese programmers into the country under a liberal work visa scheme.

Dammit. That was a response to JAMRC's inspired bit of trolling.

I think the myth of the socially awkward geek comes from teenage stereotypes. I remember being a stupid teenager that spent too much time in PC gaming. However, life, parties, drugs, job success and failures help to overcome the teenage awkwardness. Any 30+ years old socially awkward programmer is not more capable, it's just stuck at 15 years old and may be a good programmer or not.

Programmers may not fit easily into the Big 5 personality trait classifications, but they (we) are definitely a 'type'. I can spot a fellow programmer a mile away, even if I can't articulate what exactly characterizes him/her as such. Maybe the commonality is some variation of Asperger's syndrome, which also seems to defy Big 5 categorization.

My experience doesn't support the 2nd paragraph's assertion that IQ is not correlated with programming ability. No matter what reason an individual had for choosing programming as a profession, once he's there, IQ separates the best from the rest.

I don't think programmers are linked by personality traits. Perhaps they're linked by a general way of thinking. Logical thinking combined with creativity seem necessary. A high level of organization and attention to detail are desirable if anyone else will ever use your code (including Future You) but perhaps not strictly necessary. I don't think these are necessary correlated to particular personality types.

"Logical thinking combined with creativity seem necessary. A high level of organization and attention to detail are desirable if anyone else will ever use your code (including Future You) but perhaps not strictly necessary. I don’t think these are necessary correlated to particular personality types."

You are describing an xNTx (desirably an xNTJ, but perhaps not strictly necessary) personality type, in Myer-Brigs scheme.

Not disagreeing, but given your profession it makes sense that you see a good programmer and think: that's a smart guy. Then it's circular to observe that high IQ creates programming success.

Unless of course you're administering IQ tests around the office...then I rescind.

The cast majority of programmers I've met, while generally quirky, are very interesting and diversified people, very often with very inspiring ideals about what benefits programming can deliver to the world.

If programming is a job that a smart but socially awkward person can do with a lot less trouble than most other high-IQ jobs, then socially awkward smart people will tend to collect in that job--there is no advantage to being socially awkward as a programmer, but there is a hell of a lot less of a penalty there tha , say, as a salesman.

"Personality traits and IQ in fact only accounted for around 12 per cent of the difference between people in their programming abilities"

What a load of horse poop. Well I guess everyone can just go be a programmer then because no matter how low or high your IQ is, the quality of your output will at worst only be 12% worse than the average programmer. LOL!!!! It's hard to type that it's so ridiculous.

Tyler is trolling us with this post..... has to be....

when someone with high IQ uses that to defend his bad ideas, it isn't really a win.

Uses what? And what bad ideas?

I could ground this with Damasio and Pinker. Or Kahneman.

Emotions are the seat of motivation, we do our best when we introspect, slow down, think through both problems and what should really be our goals. Not everyone does that though, in comments sections or programming design reviews. Sometimes the game is just "who's brain is bigger," and a stubborn sort will stick with a first idea to "win" rather than accept a better idea for the firm, or ultimately the customer.

I can clearly remember a guy who would not let us out of meetings until we agreed with him. We could negotiate later, but it was a thing. You had to let him win the meeting.

Still not sure what you're getting at. It's a bad study, they've measured "programming ability" whatever that is, and determined that IQ and personality has little to do with it based on this measure. Of course how does one measure programming ability? It is obviously very subjective. And when you are looking at only people who are already programmers, people who have been filtered through the education system, the job system, to make sure they have a floor IQ (and/or additional compensating personality traits), you can't say much objective about IQ/personality and programming ability.

This is a big issue. This is an example of why science/scientists can't be trusted. They're way to quick to make sweeping generalizations based on weak data, and the media is not capable/willing to question it.

What if we come at it from the "super-forecaster" angle? In both science and engineering, perhaps the nimble-minded, the "open" get to the answer quicker?

So, what makes Hare such a good forecaster? His success, he says, comes down not to knowledge but his capacity for “active, open-minded thinking”: applying the scientific method to look rigorously at data, rather than seeking to impose a given narrative on a situation.

Though perhaps even then they will not be broadly accepted, by the less nimble, the more rooted.

When you hide your point in a bunch of frivolous wordplay it only makes your point seem weak. I understand you're trying to be clever and act superior but if you have a point state it. If not, then by all means write another poem.

XVO, the study doesn't say what you think it does. They aren't looking at a general population and correlating intelligence with the ability to become a programmer. They are looking at a population of programmers, who have already passed some intelligence threshold. And within that population, they observe that added intelligence isn't a decisive determinant of success. Not so crazy.

I interpreted that differently.

I think the important distinction is to insert "of programmers" in that sentence, meaning if you look at the cohort of existing programmers, IQ predicts only 12% of the difference _among programmers_.

I think it make a bit more sense that way.


That's a distinction science journalists often fail to understand. More importantly it's well understood that in the big 5 model "openness" is a proxy for IQ. That is the reason people are switching to HEXACO.

"I would put more weight on the second excerpted paragraph than the first."

Yes, and while we're at it, let's go ahead and dispense with the whole notion of "personality types," which is largely pseudoscience in all its incarnations. It's the psychological equivalent of squinting hard enough to see the Madonna in your breakfast omelet.

I agree.

"Personality traits and IQ in fact only accounted for around 12 per cent of the difference between people in their programming abilities, which just goes to show that the very idea that there is such a thing as a computer wiz “personality type” is nonsense anyway."

Thats one conclusion. Another would be that the mechanism that is being used to measure IQ and personality traits doesnt really work as intended. Or at all.

As ENTP, I will easily show that you are wrong - it is not a pseudoscience. It doesn't quite rise to the Dr. Oz / Oprah standard of science, but a pseudoscience,it is not.

Recovering programmer here. Any retrospective is suspect, but I recall pretty diverse populations, and who was judged "top 10%" in any organization was diverse as well.

FWIW though, when I was cutting my teeth in the 80's I took "egoless programming" to heart, and "defects only" code reviews. Those things and others have become codified into formulas, and given names. ie. "we do ___ programming here."

Through it all though I think the actual-best programmers had balance. They would champion their ideas, but knew when to back off, to fold, which an actually better idea was put on the table. So in that sense, sure. Openness.

(Also, programming is the harshest of logical domains. A political argument can "be right on logic" forever, whether or not it actually is. A program which is not correct, fails. This might ground "openness" more than in those other more flexible domains.)

And yes, I'm looking at you, economics.

and who was judged “top 10%” in any organization was diverse as well

In the organizations I have been in, getting a high performance rating required one to be "visible" to the management hierarchy. Self-promotion was not just not considered in bad taste, it was almost mandatory. So highly rated programmers who get promoted up the ranks tend to have EQ in addition to IQ. The smart but awkward types hold on to their jobs and even get raises, but don't get promoted that much.

I believe it was Baldassare Castiglione who said in 1528, basically, be brave if you must, but especially when the king is watching. I was perceived as a better programmer after I took this to heart, working the same Saturday hours say, as the company president.

But yeah, all sorts of ineffective things, from the standpoint of a good code base, are rated highly.

More in line with your comment, I remember another guy. He'd lollygag and waste time and then work 3 days straight to meet his deadline. He'd be visible at all hours. They gave him a gift basket at an all-hands meeting because he was such a "hero."

"He’d be visible at all hours."

Well, that is not unique to programmers. Being seen by the boss is a good route to job security most places.

True, and "ability" is going to be pretty mushy in many fields as well.

You have to know both who is assigned what, and what they are pulling off, to know what ability really is - whether that is selling a property or writing a program.


He’d lollygag and waste time and then work 3 days straight to meet his deadline.

As long as he did the work he was supposed to and met his deadlines I wouldn't say there was anything wrong with it. I was talking about people who are good at talking and sucked up to their bosses (and their bosses' bosses), and would code a few easy features that got prominence. Where much of the work involved in making the software robust, bug-free, and perform well, is done by people who keep a lower profile (and given that they do non-sexy work, they don't have a chance to raise their profiles.) I'm not saying this happens all the time, but I've seen cases.

The thing is that this guy was not producing more features than other programmers but was looking like a hero by pulling all-nighters unnecessarily.

Here are the three more important things I have found in two decades of development:

1) Think logically and carefully
2) Be interested in the domain
3) Refuse to give up when hitting a roadblock

Someone trying to make a name in anthropology? There are those wierd people doing something I don't understand, mostly men, all doing stuff that eventually end up in my car, refrigerator or phone.

Understanding is the first step to controlling.

It is simple. These are people who are capable of quick learning since everything they do is built on and manipulating something someone else has done.

They are detailed oriented, they have to be. Compilers are a harsh mistress.

They are a mixture of disciplined and undisciplined.

The tasks are very demanding so probably aren't much good at other demanding tasks. There is only so much mental bandwidth.

They are inherently social; any project of almost any size requires collaboration on a very deep level. Even using a library is a window into the mind of someone else and to harness the power of that library requires grasping the thought processes and often quirks of someone else. To communicate an interface for effective collaboration requires almost a melding of minds. Many programming techniques are about two or more people poring over the product of your mind searching for logical errors, a touchy insecure person will not last.

Those social skills will come across as wierd even threatening in the real world.

Of course since the whole endeavor is about using your mind to put something together, the more nimble your thinking, the quicker study, the quicker at recognizing a dead end, the maturity of recognizing multiple answers to the same question, a very good memory, reading and listening skills, however measured, all will make a good programmer.

It also helps to be able to focus deeply on your task for long periods of time.

A sometimes programmer recognizes in the language and execution a second rate mind. Golly gee if you are intent on putting people into a small little slot, at least keep your definitions consistent from paragraph to paragraph.

paragraphs 3-10, +1

This is interesting. It's also the most parsimonious explanation for Silicon Valley's liberal politics, per Jonathan Haidt's Moral-Political Psychology theories.

I would have used the term "libertarian politics"

The problem that both studies and industry have is that we don't have a great way of measuring programmer productivity.

We try LOC/number of changes, but these can, and are, gamed, even at the best software companies. There are a tremendous number of 'easy' changes that need to be done day in/day out and those who understand how the metrics work, grab these changes. We try with bug fix/comment count, but again these have similar issues. We also try with patents, but due to the multiple author issue it is again difficult to tease out who was the person that had the spark.

Most of the issues above are due to social factors, which is probably what the studies are measuring.

Here's a wacky idea: maybe high IQ people know how to answer these personality tests so as to make themselves test as less neurotic and more extroverted than they really are?

And why they will do that?

And the study associates being a good programer with introversion, than, if anything, could be the opposite case: high IQ answering the tests to appear more introvert than they really are (perhaps because of the extrovert-dumb stereotype).

I'd think computer programmers would be more concerned about the introvert-nerd stereotype.

A lot depends where you work, but in industry positions if you can combine interpersonal skills, communication skills and technical skills, you can make six figures in IT pretty easily.

I think the openness thing is not a surprise to anyone who's worked in the field for ten years or more. Good programmers always want to share their ideas and try out yours.

"Good programmers always want to share their ideas and try out yours."

Based on my anecdotal experience with open source projects, that "always want to share" is more like "usually". It seems to me that probably more than 10% of contributions come from people who aren't all that vocal (at least on the project, dunno what they are like in the local pub) and mostly just code stuff. Communication is very important for developing most new functionality, but people who are content to look at existing functionality and fix it and/or aggressively test it can be really helpful even if they aren't inclined to chat much. And there are even some kinds of new functionality that may require hardly any brainstorming and negotiation because it may be mostly obvious what it means to do it correctly: consider porting a software system to a new OS or CPU or compiler, or writing a device driver for a new device, or writing an importer for a previously-unsupported file format.

So by "Programmer", do they mean "Software Engineer"? Because nowadays, if you are creating software, you are likely doing requirements gathering, writing documentation, designing architecture, testing, etc., much more than you will be actually writing code. The days of the code-monkey are long gone.

I dunno.... there seems to be a lot code being written where I work. Documentation, requirement gathering and testing are left to unsuccessful programmers that had to be taken off line.

There are 19 papers cited in the meta-analysis. N is 1600. So 80 participants per study. My guess is a substantial number of them are students given a relatively simple task that could be objectively measured.

To give credence to the second paragraph, I remember when I was deciding what to major in I looked up the personality data on accountants. It turns out there actually some on them because some researchers think of accounting as a very neutral subject and so they use accounting as a stand-in for "any old major or subject" (which is dubious, but that's another story). Anyway, when it came to the Myers-Briggs personality test (also dubious, but widely available and certain stuff correlates well with more scientifically constructed personality tests) they found that the typical accountant was the ESTP type - extraverted, concrete / down-to-earth, and analytical. However, the accountants that made a lot of money and got promoted to CFO or however they did it they were by and large INTP - still analytical, but more introverted and abstract thinkers.

So anyway, my point is that, yes, there is a good, scientific basis for thinking that what attracts a person to a certain career or area of study isn't necessarily what predicts who will excel in it the most.

Comments for this post are closed