There are four types of programmer

Their is a story about a German general that declared that there were four kinds of people, only three of which he wanted in his army.

Here’s my take on it from a programmer’s angle.
 
Intelligent Lazy
Intelligent lazy people hate having to reinvent a solution to a problem that has already been solved. Moreover they don’t always go for the first solution that comes to mind. They would prefer the best solution; the one that means you don’t have to go through all of the problem solving work all over again when a slight variation turns up. They’re the ones that build a generic library with built-in extensibility. It will probably conform to SOLID principles. Their downside is that they may have a tendency to over engineer things at times.
 
Intelligent Active
These people are productive and can come up with working solutions in a short amount of time. They’re great when you need a quick and dirty solution. The downside is that that’s what you may get a lot of the time. A mixture of Intelligent Lazy & Intelligent Active in some proportion may be useful as they will tend to temper each other’s excesses.
Or they may just annoy each other like crazy.
 
Stupid Lazy
These sort of people aren’t really smart enough to be superstar programmers, but, given clear enough instructions, can be fairly productive. Just don’t ask them to design a new framework. They won’t design one on their own as they don’t tend to take the initiative.
 
Stupid Active
These are the dangerous ones! They don’t really know what they’re doing, but either they think they do or just have a go anyway. These are the ones that make you groan with despair at code review time. They write brittle code, they write complex code with subtle bugs. They leave chaos in the code base they persists for years, if not forever.
 
I like to think that I come under the Intelligent Lazy label. One of the things I really hate when writing software is having to do the same, or something almost the same, over and over again. The first thing I think when presented with a problem that requires a specific set of functionality is “Is this a specific case of a more generic problem?”. Surprisingly, I can say “yes” more often than you would expect. Even if not all of the problem can be seen as generic, there are almost certainly parts that are. In every job I’ve had I’ve left an extensive code library behind me.
John Wellbelove

John Wellbelove

Director of Aster Consulting Ltd
United Kingdom
I have been involved in technology and computer systems for all of my working life and have amassed considerable knowledge of designing and implementing systems that are both performant and correct. My role normally encompasses the entire project life-cycle, from specification to maintenance phase. Most systems I have worked on have required high speed and deterministic performance, often within a highly constrained platform. I am experienced in designing and adapting algorithms to solutions that are both space and time efficient, avoiding the normal overheads of standard solutions. Acting as a mentor for colleagues has often been a significant, though unofficial, part of my role.

I administer an open source project on Github.
See http://www.etlcpp.com/

Leave a Reply

Your email address will not be published. Required fields are marked *