I read a very interesting article in a recent edition of the Communications of the ACM entitled "Does Personality Matter?" The basic idea under discussion was that some personality types are better at debugging code than others. In the tests that were run the authors found that intuitive thinkers found a higher percentage of bugs in some sample code than non-intuitive thinkers.
I'm a little skeptical of Myers-Briggs and similar tests but they do provide a common base for discussion of some things. Likewise the sample size of this test was a little small to comfortably extrapolate to the whole population for my tastes. Still it was thought provoking to think about the effects of personality on programming in general and debugging in particular. I'd like to see more research in the area. While the personality of people who are good at debugging is interesting I also wonder what sort of personality creates fewer bugs in the first place?
My first reaction to the question "does personality matter" is "well, yes, of course one should have a personality." A bit flip perhaps but it seems as though the personality, or perceived lack there of, is part of the problem we have in the field of computer science these days. We are perceived as having a sort mono-culture of personality types. Worse still the perceived personality of computer people is not one that most people want to be part of. Clearly to me we need to see more variety in the personalities we coax into computer science. I also think that we have a lot more diversity in personality in computer science than people think but that is grist for another post someday.
I see personality as something that has an impact on how people do any job. But more important to me is learning how to teach to people with different personalities and learning styles. The students in the study from the CACM article had taken the same training and were fairly fresh into the whole learning computer science thing. I wonder if the real benefit of studying the effects, or influence, of personality type might be in finding better ways to teach people the skills they need.
In education a lot of time these days is spent on understanding learning styles and how to customize education for the various ways people learn. I don't think we do enough of that sort of thinking with regards to training computer scientists or even basic programming skills. There are few graduate programs in computer science education though there are lots of graduate programs in teaching of reading, math or general science. We're missing something there I think.