The Two Types of Programmers

Jeff Atwood at Coding Horror wrote a post called The Two Types of Programmers, which gained a lot of controversial comments. Then he wrote another post trying to explain what he meant in the first one and to bring up the peace but the war has already started. I read them both. I read them many times and I still don’t understand what exactly he meant.

He says that there are two types of programmers – Type 0 (20%) are the people who program for fun. These people live programming, they breathe programming. They use Linux and they contribute to Open Source projects. In other words (although he doesn’t say it), these are the good guys, the smart guys. The other group are Type 1 (80%) – people who practice programming for living. They work from 9 to 5, they use only Microsoft technology and they don’t read the technical news. “They are not stupid”, he says but I believe it is just what he means because the final appeal is to the smart guys to swallow their pride and to hope the stupid guys become smarter.

If you feel that you belong to the Type 1 programmers, the stupid ones, don’t worry – one of the most important characteristics of the 20% group is that they read blogs, especially Jeff’s one. So you just need to read one article of his and you’ll automatically become a member of the elite group.

Sorry Jeff, I don’t buy it!

I would agree that we can separate the programmers into two groups – one for the people who like programming for the sake of the programming itself, and another for the people who provide value with the applications they write. But this definition is so archetypal that it doesn’t bring much of a value. And claiming that the developers belonging to the one group are smart and the others are dumb, is not only insulting, it is just wrong.

First of all, I have never seen a programmer, who had never read a technical web site or a blog. Second, nobody has counted the programmers and there is no evidence that the ratio is 20/80. I believe the numbers are just taken from the Paretto principle without any backup survey. Third, to accuse someone for being stupid just because they value their private time or because they use Microsoft technology, is just flaming another religious war.

The software development is a business like any other. It is important and powerful one. This business needs the two types of people – the ones who love the process of programming, who create and invent new ideas and new solutions, and the ones who make those ideas reality, the ones who implement the customer’s requirements and bring real value to them. Perhaps the real ratio should be 20/80, or 10/90, or whatever – it depends on the business area. The point is, all kinds of developers are valuable because they bring value in different ways. Their diversity is their richness.

You cannot call someone stupid or inexperienced only because he or she doesn’t write code during the night or because they write in Visual Basic .NET. One is inexperienced because she lacks experience. An if you are more experienced you can help them by sharing your experience and by showing them good sources of information. People learn and people change and very soon they will have more knowledge and more experience and will be professionals just like you.

This post is also available in Bulgarian language

If you like the posts in this blog or you are interested in the discussed topics, please, subscribe to the RSS feed to guarantee yourself that you won’t miss an interesting post. You can do it in an RSS reader or by Email

2 Comments

Leave a Reply

Your email address will not be published.