I met a friend the other day, an excellent programmer who told me he was going to law school and the main motivation for that was apparently money. It made me ask myself the question: “are the programmers underpaid? “.
I started recalling all the IT groups I have been involved with in the last 15 years and then I also spent a bit of time looking at job boards to see what kind of compensation is being offered for programming positions. After spending a couple of hours thinking about it I concluded that the answer to “are the programmers underpaid?” is both YES and NO and the reason for that is the word programmer which is not specific enough.
In the real World there are two groups of programmers:
- the real programmers – those who have a solid knowledge of the theoretical foundation of the computer science, the ones who truly understand “the stuff”, the ones who get it done quickly and efficiently and do it right the first time, the ones who represent only 20% of any IT department out there but carry 80% of the load - in short those guys and gals are the ones who know what they are doing;
- the pretend programmers – those are the ones who lack understanding of basic principles, who tinker around for weeks with projects that should take hours, ones who usually master the art of “pretending to be” and are capable of presenting themselves as being highly knowledgeable to an audience that is not capable of probing deeper than the thin layer of knowledge that they have. Those are the fortunate ones who have gotten a “lifetime scholarship” on the IT department of some organization.
After coming up with this classification the answer to my question became crystal clear: the real programmers are significantly underpaid (see the argument below), while the pretend programmers are overpaid. In total as a big group of programmers they are apparently fairly compensated – after all it is the free market that has dictated the levels of compensation we see today.
So why do I think real programmers are underpaid? Well, here is my simple calculation: let’s take an average salary of $80K / year and divide it by 52 weeks that rounds to about $1.5K per week. Now, a real programmer, as I am sure you all know, puts in an average of 60 hours of work per week (not accounting here for the fact that even after those 60 hours he/she is still thinking and reading about how to deal with a challenge, how to more efficiently handle a process etc.) – that translated to a pitiful $25 / hour. Some may disagree with me on the “pitifulness” of the $25 / hour considering that the minimum wage posted on our office hall says $5.85 / hour, but, I can bring plenty of examples to support my statement – examples like my cousin who just started working for a railroad company on the maintenance and makes $27 / hour (mind you no experience and no education) or my next door neighbor (lawyer with experience and education) who won’t start talking for less than $300 / hour. So, where does a real programmer fall in this wide spectrum of abilities and compensations – what I know is that if you consider the intelligence, the education, the sheer amount of work they have put into gaining that education the real programmers are at the top of the spectrum but unfortunately, when it comes to compensation they are between the McDonalds kids flipping burgers and skilled laborers! Sad!
So, what is wrong with this picture and what can one do to correct it? Well, I will leave that for another day – for now, I will go ask for a raise :)