Rob over at the “Software by Rob” blog has a very opinionated and interesting take on what makes a great programmer. Besides his failure to define what he believes a great programmer to be, he makes a few questionable assumptions about great programmers. His opinion seems to be that all great programmers share the following four personality traits:
- They’re Pessimistic
- They’re Angered by Sloppy Code
- They’re Long Term Life Planners
- They have an Attention to Detail
First of all, let’s just give in to number 4. “Attention to Detail” is such a standard of conventional wisdom, that I don’t want to ruffle too many more feathers than I already will with this post. Maybe another time.
As for the rest of them, let’s break it down shall we? First he says they are pessimistic. Rob uses Admiral Jim Stockdale as an example of how “the discipline to confront the most brutal facts of your current reality” is using pessimism to foster an optimistic outcome. This dichotomy is not only completely ridiculous, but it makes no sense. It is also quite possibly outright wrong. I think Rob is confusing pessimism with pragmatism. Pragmatic people make good decisions based on the information available to them. Pessimism does not lead to optimism or support it. Sorry Rob.
Secondly he claims that great programmers are angered by sloppy code. Angered is definitely a strong word, but what’s even more confusing is the fact that the references used to support the “sloppy code” claim are more about non-working code and bad decisions than sloppy code. I think it’s pretty obvious that programmers who write code that doesn’t work would not be considered great programmers.
Lastly, in “long term planners” Rob makes so many disconnected assumptions it’s hard to comment on their validity, but suffice it to say that his assumptions boil down to this: “being able to see the impacts of present-day decisions is paramount to building great software.” That last statement is true. However, being a long-term planner does not mean you see the future possibilities. Most long-term planners manifest their futures by adhering to a plan they have set forth. What would have happened to them had they not had the plan they had? Intuition is the trait at work in being about to predict consequential reactions to present day action.
Bottom line here is this: If Rob is saying that these four traits make great programmers, then that is simply ridiculous. If what he’s saying is that in his limited experience the people who have been great programmers happened to have these common traits, then Rob should perhaps look up the difference between cause and correlation in the dictionary.
?