03 July 2013

Four Types of Programmers

I have worked with many programmers through several projects. These projects vary from school projects to projects abroad, or projects within companies. Through all these different groups and teams, I found the "programmer" easiest to identify by type. I think when starting up teams as a producer, its essential to know the different "types" you are working with, especially programmers, since they are doing a very important job. No disrespect to game designers, audio guys or artists, but programmers are like the drummer of a band. The engine of the team. If they stop working, well what do we have? Nothing.

I think I found four types to roughly label each programmer. I will also tell you what type I prefer to work with, and why that is.

source: http://www.wired.com/wiredenterprise/2012/06/beard-gallery/

The Lazy Jackass

This type is useless. These programmers do not have great knowledge about programming or have the motivation or energy to do something about that. I can be short about this type. Usually these programmers will end up being kicked out of a team, or are leeching on programmers that do know their way around code. Above all they will block the project flow.

The Laborious Struggler

Programmers like this are really useful. Just not as an individual (Lead Programmer). These programmers are willing to do everything and spend as much time they can. They are just not skilled enough to execute everything. Its great to work with them on small parts of the game. Stuff that is not too complex. They are also eager to learn so they work best with other programmers beside them. 

The Stubborn Genius

I think a lot programmers wear this label. These stubborn creatures are hard to work with in teams. They know exactly how stuff is done and don't want to change anything about that. This type feeds on facts and conviction. You can not just walk by and drop a task on their desk. They will set-up a fierce fight against you. As a producer, you have to be armed with a lot of patience. Eventually when the convincing part is over and you get them to work for you, they will create the most astonishing things. It would take a great man to convince them doing something they do not agree on. You can compare this to an act of god, figurally speaking.

The Peaceful Pro

This is my favorite type. Its a rare type of programmer. You won't find much of these programmers, at least I didn't. This programmer is a great listener and knows its way around code better than anyone. If they do not agree on something, they will give constructive feedback, something I as a producer can do a lot with. The process with these programmers is immense. I never finished a product with other programmers this fast. Also the products accuracy compared to the concept is mind blowing. If you find someone like this, cherish them! Or send them straight to me. 

In short, identifying types beforehand is greatly advised. Every programmer besides the "Lazy Jackass" is useful in a team. As a producer you have to fit them in a position where they are most useful and keep them there. Some of them need to be kept on a short leash and some of them can move more freely in the process. You could say that a team of Peaceful Pro's would be ideal, but having a Stubborn type on board can be an eyeopener on certain aspects, for example it prevents "one direction thinking", and it doesn't get boring.

To end my story with a point of advise to the Lazy Jackasses: 
"Stop what you are doing, your talent lies somewhere else"


Find Me On:
Twitter: @KoenDeetman
Facebook: Koen.Deetman

Follow my blog with Bloglovin


  1. first! and it seems I'm a Java programmer, :D

    1. Did you grow a mature beard like that already :P?

  2. Ah, mr Koen! I Stumbles upon this blog through google and I like your article about the classification of programmers! I would however like to argue that there are actually 5 types of programmers. In my work as 'technical system integrator lead' which I have been doing for the past 12,5 years I have bumped in to all four of your programmer types and the one additional one I like to call the 'jew programmer'. These programmers tend to refrain from playing open card and proactively work at keeping all knowledge and development work in their own little pond. They then farm out all the shitty work in shards to keep their colleague programmers from knowing what the hell is going on. Basically they are safeguarding their jobs.

    I see you just started your blog. I will be sure to check back to see more of your good work!

    1. Hi Dick,

      Thank you for stopping by and for leaving a comment!

      The programmer type you describe are also among the game development programmers. However this type is harder to notice, because in Game Development we work with agile methods such as "Scrum". Scrum encourages programmers to play open card. This part of the method is called "stand up meetings". In these meetings every member of the team points out what work they did, what they found and what they are going to do the next week and what problems occurred.

  3. Now I'm wondering what programmer I am. I know C#, C, C++, Java, PHP, which I interchange regularly. Also I know a bearded programmer who loves haskell who's very pro. Is there the hipster programmer who only uses Objective C for his love of iPhone?

  4. Hi Subliminalman,

    Thank your for commenting.
    I think programmers that know Objective C would have knowledge about other programming languages, because Objective C is not as important as others. But there might be programmers that did self study on Objective C and are only able to feed their iPhone yes.