Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have wondered about this for a long time, and I haven't been able to find a suitable answer, even on this website.

When comparing an average programmer's salary to other common careers, where education is mostly required, the salaries programmers receive is usually much higher. At least in the entry & mid-levels of the job scale.

Even for programmers which don't have any sort of academic degree, the salary is very high.

Try to compare it to beginning & mid-experienced lawyers, doctors, and teachers, for example.

And it's not that programmers are a rarity nowadays. Programming resources are much more abundant than Law and Medicine.

What do you think is the cause of this?

EDIT:

Just some statistics to backup my statement.

Please try to write a full, thorough answer, and not just "ROI" or "Supply-and-Demand". These simple answers don't cover the whole issue.

share|improve this question

closed as not constructive by Mark Trapp Jan 26 '12 at 1:31

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

35  
First thought: I doubt that entry-level lawyers and doctors make less than programmers. Can you back that up. Because a quick google suggests starting salary for a programmer is maybe $40-50k, but for a medical doctor is $200k+. –  qes May 31 '11 at 19:17
    
And here I always rationalized it as a good programmer is worth several people in what they can automate, make more efficient, etc. (At least this applies to my position as my "self goal" is to save the company labor/equipment expenses comparable (or greater) than my compensation.) –  Brad Christie May 31 '11 at 19:34
6  
Teachers are shamefully underpaid in many (most?) Western countries, this is well known. I'd be curious as to what data you're using to conclude that programming salaries are higher than other careers such as law and medicine, though! –  Carson63000 May 31 '11 at 21:11
2  
@Carson63000: I would clarify that statement, personally I sat through many k-12 teachers who as far as I was concerned were over paid. The good ones most certainly are underpaid. Also lets not forget teachers have some of the best benefits around. –  Chris Jun 1 '11 at 0:19
7  
Those statistics aren't referring to doctors and lawyers. Like, people in healthcare with bachelor's degrees are nurses or clerical workers, not doctors. –  jhocking Jun 1 '11 at 2:48

15 Answers 15

up vote 10 down vote accepted

There is a great deal of demand, and not enough supply.

I can join the speculation in terms of the causes for this:

  • programming is, for most people, and extremely unpleasant activity. From having to order your thoughts in ways which can be translated into computer languages, to dealing with hardware instead of people most of the time, to not having as rich a social life, to the sex ratio - there are lots of reasons given by those who don't enjoy it, as to why they avoid the field altogether

  • computers are fairly new contraptions, and they change very very quickly. We don't yet have an established method for ensuring the demand for skill is met. At the same time, the demand is growing faster than we can grow the supply of skilled people. Once most everyone on the planet has most of their computing requirements mostly met, this will stabilize.

  • the higher pay is overrated. Generally speaking, the work hours and after hours demands are much higher in IT work than in other positions. It's much less likely that, say, an accountant will be required to work regular weekends and carry a pager than an IT person at similar pay level.

  • computers are, relatively speaking, poorly understood by most people. Most will overpay someone to deal with a problem that they don't understand, and make it go away.

  • we don't have a good way to estimate the value generated by software. A few pieces of software way over-produce compared to their cost, and others often under produce. Clients rarely can tell the difference, and the average salary is high, just in case. Call it the confuseopoly effect.

share|improve this answer
    
I think this answer covers most of the bases. It's true that programming requires a specific personality type that's relatively rare, and that we still haven't figured out how to value software properly. –  John Bode May 31 '11 at 22:36
    
But still, it's not like programming is the ONLY proffession whom these rules apply to. Why doesn't other proffessions who go by these rules don't have such a high salary? –  Ory Band Jun 1 '11 at 0:03
    
@Ory which other professions follow all of these rules? –  blueberryfields Jun 1 '11 at 19:05
    
I don't have an answer just yet. But I have a feeling programming isn't the only proffession. –  Ory Band Jun 2 '11 at 5:26
    
“having to order your thoughts in ways which can be translated into computer languages, to dealing with hardware instead of people most of the time” is what I actually enjoy about programming. These machines do what I tell them and like me the way I am. –  Dan Jun 2 '11 at 7:04

Programming requires a mindset that can be considered uncommon. The balance point on the supply-demand diagram is at a higher price, because employers need more programmers than what is available.

share|improve this answer
  1. Programming is one of the few jobs that ROI is very high, if you do some software for a business, then leave the business, the company still (even though you left) receives ROI from your software, while accountant ROI will be very low when he/she leaves the business.

  2. Programmers resources are not that much, still up to today, the demand is higher than the supply (unless you consider "Hello world!" type of programmers.

  3. Programming is (first of all) a talent, you're paying for a talent resource, that is unique for each programmer.

  4. Again, ROI is very high

share|improve this answer
2  
ROI is high, but when you look at an engineer who designs a train and its cars, they tend to work for years and generate maintenance jobs for their life times. Same applies for a program. The business has to pay for maintenance, which is not trivial considering the life time of a software. Programming, like any other job, is a job. Each job requires a unique talent, so to say. –  vpit3833 May 31 '11 at 23:00
2  
As much as I would like to believe that I'm paid more than other highly trained professionals because what I do is more difficult, challenging, etc, I know that's not why. The ROI answer is the right answer. –  Julio May 31 '11 at 23:21

I don't know where you live, but in Germany, doctors can have huge salaries (double of an average software developer).

But people are still saying programmer salaries are big. It is most likely because there is a shortage of programmers and there is a demand for them.

share|improve this answer
    
There is a shortage of other proffessions as well, and you don't see their salary crank up like programmers. –  Ory Band Jun 1 '11 at 0:07
    
@Ory Such as? There are a shortage of people willing to drive mining trucks in outback Australia, starting salaries are around $100K. For driving a truck. –  jozzas Jun 1 '11 at 1:15
1  
The doctors with the "huge" salaries are the ones with their own practice or the ones very high up in the hierarchy of a big hospital. You have to compare them to programmers became entrepreneurs or programmers who became managers. –  nikie Jun 1 '11 at 8:46
1  
Well, over here (Belgium) the doctors with their own practice are at the bottom. In college they all want to specialize and become a surgeon or other specialty, that's where the real money is. And even those doctors earn a lot more than most developers do. –  Carra Jul 22 '11 at 7:24

There's a number of reasons

  • There's a huge demand for programmers. Just about every business wants a programmer of some kind or another to build/maintain a website, or build/maintain some custom software. Even if they don't hire a programmer to do this, they will hire a 3rd party agency to do it for them.

  • There's the potential for larger profits in the programming industry, which means investors are willing to spend more hiring a programmer. If you hire a doctor/teacher/lawyer, your profits are fairly limited, but hiring a programmer and having them build a killer app or software, can you make a lot of money. It doesn't have to be the next Facebook, just something that reaches a large audience who is willing to spend a few dollars on it.

  • Programming is a hobby to many people, and easy to get into, so gaining experience in programming is easy. More experienced employees = higher pay.

  • As Mark pointed out, the ROI of hiring a programmer can be high since the company can keep and make profit of a program long after the programmer is gone

share|improve this answer
3  
Oh the other hand, everyone is a programmer (this is at least as accurate as your "everyone"), while only some people are lawyers, doctors, etc. –  Rein Henrichs May 31 '11 at 19:23
4  
Actually, to be more accurate, almost everyone will at some point require the services of a lawyer or doctor. Few people will require the services of a programmer. S&D is precisely opposite of what you suggest. –  Rein Henrichs May 31 '11 at 19:26
    
Well I personally don't want a programmer. Unless he's a nice girl that is. –  user8685 May 31 '11 at 19:30
    
@Rein I modified my answer to specify businesses, not people. I meant to update my answer to expand on what I meant, but got pulled away from my desk before I could. –  Rachel May 31 '11 at 19:31
10  
@Developer: if you're trying to flirt with Rachel, try harder –  Jaap May 31 '11 at 19:34

I don't know about other countries, but in Australia this is definitely not the case. Programmers are probably around the low-to-medium part of the spectrum of the "professional" pay scales, on average. But there are certainly a lot of outliers, depending on exact specialties and contexts (both within programming and within other professions).

One possible reason why this impression might come up is that programming tends to be more highly specialized and fragmented than some other professions. For example: if you're a teacher, you have a relatively standard career path after graduation. Often virtually no choice but to go to whatever public school the state posts you to. And your starting salary is pretty much fixed. Programming's different. With programming, if you're a real proven rockstar (eg Already have your own startup on the side when you're finishing up uni) and know a high-demand technology, you might be able to start on a fairly high starting salary. On the flipside, if you're a totally random nobody CS graduate with no interesting experience yet, you might barely get a low end maintenance job in some codemonkey sweatshop, hacking at simple PHP sites for far below a decent "professional" package.

So yes, I can certainly imagine that programmers have it good in certain high-demand markets. But I don't think it's all that glamorous when taken as a whole. Although I can imagine that in certain Third World markets such as India and the Philippines, where a lot of big business from the First World outsources, programming is to some extend automatically a pretty good profession, due to the skewed value of money that floats the programming market in those places.

share|improve this answer
1  
Like someone else suggested, it's the high ROI. In the Silicon Valley, a $150k-$200k programmer can build/help build something that will make everyone a millionaire and the investors billionaires. That's less likely to happen in other places. Not impossible, just less likely. –  Julio May 31 '11 at 23:47

Programmers are like 21st century manufacturing machines. We are in the business of allowing other fields to be "streamlined". So many jobs these days are glorified data entry positions. Most programmers could write a few SQL scripts in an afternoon at your average company and make 80% of these people permanently obsolete in that company. Entrepreneurial programmers have an easy case to make when they offer that kind of service. "Pay me 85k and I can do the same amount of work as 10 accountants with pen and paper who make 65k each (650k)".

share|improve this answer

They don't.

The link you posted is about the salaries of people with Bachelors Degrees in broad fields. People with a BA in (e.g.) a Law & Public Policy field could be lawyers, or maybe middle-managers in charities or local government. Then again, they could just as well end up on the dole or flipping burgers, they could even be programmers.

As you can see from these data, programmers earn considerably less than lawyers at comparable points in their careers.

Entry Level Attorney    $88,264
Entry Level Programmer  $53,944
Attorney with 5-8 yrs   $143,300.
Programmer with 5-8 yrs $93,389

Sources:

share|improve this answer
    
Also, someone with a first degree in Computer Science could just as well move into Law. –  Paul Butcher Jun 1 '11 at 15:11
    
You need to take into account the difference in the level of education. A "programmer" with his PhD in CS will command a much higher salary than a programmer with a lowly BS (and you don't even have to have a BS). But nearly all lawyers have their equivalent of a PhD (D. Jur). –  Satanicpuppy Jun 1 '11 at 16:40

And it's not that programmers are a rarity nowadays

"Programmers" aren't rare. Actual programmers are quite uncommon.

share|improve this answer
    
What meaning exactly do you put into the work "actual"? –  user8685 May 31 '11 at 20:46
    
+1 I can count on one hand how many 'actual' programmers I have met. –  G3D May 31 '11 at 20:47
3  
well my standard isn't so strict that it cuts the field to just 5 programmers. I meant more like this codinghorror.com/blog/2007/02/why-cant-programmers-program.html –  jhocking May 31 '11 at 21:16
    
Even non-"actual" programmers get entry-level high salaries compared to other jobs. –  Ory Band Jun 1 '11 at 0:06
    
They're benefiting from the value of actual programmers, and from hiring practices that failed to weed them out. The rarity of really skilled programmers is the reason for the salaries, and all programmers benefit from those salaries. –  jhocking Jun 1 '11 at 10:55

Initially it happened because original programming activities were quite difficult and required certain intellectual skills and a strong scientific background. IT was beginning its explosive growth and there weren't so many smart people around. Programmers were seen as very bright and even brilliant people.

Then higher salaries stuck for a while. For a long while.

Then with time as most scientific tasks were covered and IT started to become consumer-oriented the need for very smart people decreased. At the same time the power of development tools grew and the entry barrier for programmers dropped. Everybody jumped in. Programmers were now seen as overly expensive code monkeys.

The situation you observe now is a reminiscence of those times combined with certain market inertia. But it's not going to always stay that way. Not that I want it to happen but it will regardless of my wishes.

One other aspect that yet holds salaries rather high is a strong distribution of skills in individuals of "publicly" the same level. Not every $60k programmer is the same. One can build great things with just two hands, the other one has issues with the FizzBuzz test. Employers are trying to get the better ones by offering more. Not that it always works but it does work to our advantage. In the long run this is perhaps the only consideration that will keep salaries from rapid dropping.

And the dark side of the moon that everyone forgets is that the speed of change in the field has increased exponentially in the last years. The knowledge and experience of programmers is constantly devalued. One needs to be running very quickly just not to fall. Therefore nowadays a young programmer can expect the salary to stay more or less constant throughout his career (at best) while the earnings of a lawyer or a doctor will only grow with time.

Times change. Things change.

share|improve this answer
4  
And there remains a fairly large and growing market segment that requires good programmers, which I don't see going away for a long time. –  David Thornley May 31 '11 at 20:55

I am not so sure. In Australia I know doctors working at hospitals with same sort of experience as very senior programmers (15yrs). They definitely get paid way more than any programmer, get paid overtime, rostered days off and generous allowances for books, journals, laptops, conferences etc. Plus they get opportunity to conduct research part time. The job is of course very demanding and literally a patients wellbeing depends on them. Also there is a shortage of doctor in regional areas in Australia and these may be reason why it is so high.

share|improve this answer
    
@Mark above suggested the reason was the high ROI. I think that's the right answer. In some places the ROI will be even higher. For example, in the Silicon Valley (or similar), paying a programmer $150k-$200k is not that unusual. Mostly because theres$150k-$200k can –  Julio May 31 '11 at 23:44

Several reasons:

  1. It's as much an art as it is science
  2. There is no true "profession" so to speak, so learning how to be a programmer is still a bit voodoo, elbow grease, and smarts
  3. The field changes sooooo fast, it's unbelievable. You pay for someone who has to constantly be learning
share|improve this answer
    
constant learning is also a good factor –  Peter Jun 1 '11 at 8:16

It's simple supply and demand. Software developers are paid relatively well because few people can build a working program.

share|improve this answer
    
I actually think it's quite the opposite. There's a handful of programmers that can build some sort of solution for each problem, no matter if it's excellent, good, or just "enough" to get the job done. –  Ory Band May 31 '11 at 22:10

Programming is a vocational skill, and thus can only really be performed by people with that skill. A lot of other white-collar jobs do not require specific vocational skills as such, but rather rely mostly on domain knowledge.

share|improve this answer

Fear and ignorance.

Imagine you are a business that wants a new type of invisible building. You can count the people going in and out, ask them how happy they were with the building, and even go in yourself. Inside, you find that it's completely dark, and while there are cues to finding what you need in the building: your office, the kitchen, the bathroom, stairways, etc., you really have to figure out a means of getting through it without actually being able to see anything.

The "builders" of your building constantly tell you 1) how great the building they built is and, 2) how it needs more stuff which will require more time and more builders or it might fall. Further, unlike doctors and lawyers, there is not really any way to quantitatively judge them against other builders, and very little reliable peer review, or, say, best practices to use to gauge their performance.

I don't know about you, but if I ever felt that I had to sign up for this ridiculous proposed development scenario, I would fully expect to a) pretty much pay my builders whatever they wanted and b) pay them even more in fear that the building will suddenly fall because some property I can't observe will be unattended by enough builders.

share|improve this answer
    
-1 All software contracts I know of, have pretty accurate estimated development plans. Sometimes even more accurate then buildings do (some buildings are over schedule too). –  Danny Varod May 31 '11 at 21:47

Not the answer you're looking for? Browse other questions tagged or ask your own question.