Hacker News new | past | comments | ask | show | jobs | submit login
If Software Is Eating The World, Why Don't Coders Get Any Respect?
618 points by throwaway37 on Aug 24, 2011 | hide | past | favorite | 265 comments
Software, as Marc Andreesen said in his famous editorial, is becoming a larger and larger part of our daily lives. Given how important software is, then, you'd expect computer programmer - the task of developing and maintaining software - to be one of the highest-paid, most-wanted jobs. It isn't. Why not?

"Hold on", you say, "isn't programming a high-paying job"? Sure, next to the average American worker. But the average American worker is a college dropout. What if you compare programming to jobs for other highly skilled professionals?

Consider a 35-year-old, senior Google engineer. He probably makes about $150,000, which is enough to buy a good house and raise a family. But Google wouldn't hire a random guy to fill that job - this engineer probably has an Ivy League or other elite degree, fifteen years of work experience, a very high IQ, strong drive, and numerous other skills (anyone who's been through the Google hiring process can tell you how hard it is to get in).

As a doctor, however, someone like this - a top professional at the peak of their career - would probably make about $400,000. Partners at big law firms commonly net a million a year. Investment bankers are making several million (post-crash!). Top management consultants easily clear $500,000. Even a top accountant - probably a partner at a big 4 firm - would make two, three, or four times as much.

Of course, life isn't all about money. Is programming a top job from a social perspective? Again, no. Congress includes not a single programmer, and to my knowledge, it never has. Almost all big companies are run by MBAs. Even Microsoft, arguably the canonical software company, is run by a non-programmer from Stanford Business School.

Are programmers top government advisors? Are they national heroes? Do doctors and lawyers and policemen tell their children that, if they work hard and practice, one day they can grow up to be a programmer? No. Obviously not.

When the government wants to bring in more workers from overseas - which obviously lowers salaries, and reduces job security - who do they bring in? Computer programmers. Every single one of the top ten H1-B visa users is a technology company. Politicians justify this by talking about a "shortage" of programmers, but would there really be a "shortage" if programmers were paid $500K, as much as doctors or management consultants? Of course not. Saying there's a "shortage" is economically the same as saying that "we don't want to pay you guys enough to meet the demand for labor".

Now, to wrap off, since this is a startup site, doubtless someone is saying "but programmers can make millions in startups!". This, on the face of it, is true. However, as I'm sure any founder here can tell you, you can't make a successful startup just by being a good programmer. You have to, to quote Paul Graham, also "answer support calls, administer the servers, design the web site, cold-call customers, find the company office space, and go out and get everyone lunch."

Now, if you're willing to do all that, and work the eighty-hour weeks a business requires, why do you need to be a programmer to make it rich? You don't. There are millions of ordinary small businesses - ditch diggers, electrical companies, contractors, roofers, construction firms, and on and on - that, if run well, will make you millions without a single line of code. (For more on these sorts of business, check out, eg., the book The Millionaire Next Door.) What "programmers can get rich in startups" really means is "entrepreneurs can get rich in startups", whether they're programmers or bricklayers.

So, why is this the case, given how important software is to the world? I think the answer is hidden in the rest of my post. Notice how I've been arguing for more pay, job security, etc. for programmers. A majority of the people here are probably programmers. Yet, my tone is pretty argumentative; I expect people to disagree with me, and am trying to answer their objections.

Why is that? On the face of it, it's very strange. If you went to a welder's union, and argued that welding wasn't respected enough and should be better paid, you'd expect to see loud cries of agreement. If you talked about better wages for teachers or policemen or nurses - all of whom make more than the American average - who would dispute it?

But for some reason, unlike just about every other profession, programmers seem to have an aversion to asking for more pay and more respectability. It would seem selfish, somehow - a programmer making $80,000 feels he shouldn't ask for more, since he's already making double the US average of $40,000. (Even though, when a teacher making $80,000 (as many of them do) asks for more, no one disagrees.) And you could argue that this is selfish, even though it's the sort of selfishness America usually endorses. After all, when the miner's union strikes for better working conditions, aren't they being selfish? They're acting in their own self-interest, trying to benefit themselves.

So, if you don't like being selfish, is there a reason to make programming one of America's top jobs? I think there is. For the last ten years, the people running the US have been other, non-technical top professionals - lawyers, management consultants, investment bankers, MBAs. And it hasn't worked. The economy is in the toilet, the budget isn't balanced, the government can't get anything done, we're in two wars we can't get out of, and some days it feels like the country is falling apart at the seams.

By contrast, when you look at Silicon Valley, where a lot of the top programmers live and run the local industry, everyone is doing great. Profits are up, unemployment is down, companies are getting started, and user growth is through the roof. Might this be a coincidence? I think it isn't. And for proof, look no further than China. All of China's top leaders are engineers, not lawyers or financiers or consultants. And China's been doing great. They've had steady, 10% annual economic growth - triple the US's, even in good times - for the last thirty years. Sure, they have problems with pollution and corruption, but so did the US when we were industrializing. Overall, though, they're on the right track, and the US is not (according to 85% of Americans anyway).

Of course, that isn't to say that most non-programmers are stupid or immoral, or that we shouldn't have any lawyers in government. Any well-run society has a mix of people at the top, because of specialization of labor. But is the optimal number of programmers in Congress really zero? Is it good for the country that Silicon Valley, arguably the best-performing sector of the economy, has next to no influence in politics, so that laws like the DMCA get passed even when the whole hacker community is violently opposed? I think it isn't. I think the country would be better off if MIT computer science students, like their neighbors at Harvard Law School, could dream of growing up to be President. And I think we'd all be better of if computer science wasn't just seen as a major for socially awkward nerds.

(Original WSJ editorial I'm referencing at http://online.wsj.com/article/SB10001424053111903480904576512250915629460.html. I've been on HN since '08, but using a throwaway in case anyone gets mad.)




There are a lot of very fundamental misunderstandings of economics and labor structures in here. But I'll start with the general objection that you'll run into:

The core of your argument is entitled whining.

Computer programmers can make truckloads of money the same way that everyone else can: by seeking it. If your professional goals are aligned with making money, then your chances of making a lot of money go way up. Top lawyers aren't paid the most because they know the law the best; that's ancillary. They're paid big bucks because they win money for their clients, prevent their clients from losing money and build networks to people that have money to give them. Likewise, programmers who define their goals economically (which broadly includes creating value for users) have nearly unparalleled earning potential.

8 of the 20 richest people in America are (or have been, at least nominally) programmers.

The crux of things is that you don't get rich for being a skilled technician -- and I use that word broadly. Lawyers don't get rich for knowing the law, bankers don't get rich for understanding economics and programmers don't get rich for slinging code. You get rich by creating value (or at least tying yourself at an opportune moment to a benefactor whose goals are so aligned).

The rest of folks are compensated at prevailing market rates for their technical skills -- and incidentally, American programmers are paid better than in almost any other country.

But claiming that "computer programmers don't get respect" is broken on so many levels. First, computer programmers are certainly among the most respected trades. You need to interact with a broader cross-section of society if you believe that not to be the case. Second, the baseline for becoming a programmer isn't very high -- certainly nothing on the order of becoming a doctor or lawyer. The median programmer has jumped over far fewer hurdles than the median doctor or lawyer. (I got my first programming job at 17. I'd have needed another decade of non-trivial training before I'd have been able to get a job as a doctor.) The spectrum is far broader for programmers, and as such, the respect a programmer commands has more to do with their actual status within those ranks than simply being a part of that trade. But again, the spectrum extends up to "richest person in the world", so we're hardly being shafted.

If being respected among the elite is something that you want, align your goals with that. If it's not, enjoy the fact that you're in a trade where even untrained, mediocre practitioners reach the top 10% of American incomes.


Let me start by stating that you reply is somewhat of an example of HN-bias...

The world of programming is vast. Larger than "America", larger than Sillicon Valley, larger than the world of startups, and certainly much larger than the "elite" that regularly reads (and comments on) HN and pats each other in the back.

Even if we accept that programmers are well-paid and respected (two different propositions) in the technology sector, most programming jobs are _not_ in the technology sector, but spread throughout the corporate world. And corporate programmers are all but respected.

In your average company, a programmer is considered a glorified mechanic or janitor, a code-monkey if you will, well below the guys that "bring in the money" like sales and marketing. It is an expense, something that the company has to live with because someone has to implement the ideas that the guys in charge come up with to help the guys that "bring in the money" bring in more money.

Besides manufacturing, programmers are on the first line for outsourcing, and it is no coincidence that an expression such as "software factories" exists. Why do you think this is?

Most programmers will only actually _program_ for a few years before going into management positions. There are few "old" programmers around, and those that survive are often met with disdain. "What? You are 35 and still a programmer?" kind of disdain.

When the average corporate user spends most of his time in front of a computer, forced to use boring applications day-in and day-out, how do you think he feels about the people that build those applications?

And even outside the corporate world... If you are a doctor, or a lawyer, or a freakin' sales guy, people will listen to your stories, at least for a while. On the other hand, if you are a programmer and even start to talk about what you do for a living, people's eyes will glaze in boredom instantly.

Disclaimer: I am _not_ a programmer (I'm a sysadmin, which is mostly the same, although usually better respected because sysadmin positions tend to be longer-running inside companies).


For the record, I don't live in the US and only spent 3 of my 10 years of full-time software development at startups (my own). The US is just a convenient and familiar frame of reference.

There always exists a context where a given person is on the low end of the totem pole. You can almost always shift the goal-posts by moving around within society to find a place where you're a relative dunce. It seems totally plausible to me that programmers aren't at the top of the food-chain in positions in non-software companies.

But if you go out into the broader world ... the world where my brother works at Walgreens and my sister is a tour guide at the zoo, where my best friend just got fired and is about to move back in with her mom, my grandfather sold tractors and my mom is an elementary school teacher ... in that world being a computer programmer is a respected trade.

I feel like you zoomed out some, but if you zoom out even further, all of the sudden being a programmer is respected again. You're right that we orientate ourselves relative to our peers and that's the lens that we see the world through, but the broader world isn't all white-collar knowledge-workers.

As a somewhat disconnected point, and this probably partially owing to the fact that most of my professional experience is in Europe, being a 30-something programmer here is totally normal. In fact, I'm 31 and most of the programmers I've worked with have been older than me. The median age seems to be more 35-ish, with a lot of people still working in normal programming positions into their 40s and 50s. The distribution here more seems to follow the pattern of there simply being a lot more people that started programming in the 90s or 2000s than in the 70s or 80s rather than a particularly strong age bias against programmers.

I've also not experienced the total lack of interest in programming. Lots of my friends -- most of who are non-technical -- ask questions about it. I suspect part of the problem may simply be that a lot of programmers aren't particularly good communicators.


Exactly. Even in this thread, it is appalling how quickly people reach for the "but look at Google!" argument.

Guys, Google is a top paid company in a top paid part of one of the richest countries in the world! Stop throwing around 6-figure salaries (in US dollars, no less).

I can attest to the fact that in Europe, programmers have respect on the level of assembly line workers. By Europe I mean countries from UK to Belgium to Czech to Romania. It's an ok job, you get paid some money, or even good money if you're skilled and know the right people. But your parents would much prefer you picked a respectable profession, like a doctor or a lawyer.

The reason I see for this is that IT is the wild-wild-west free market at the moment. That's why it's so successful, disruptive, productive and generally awesome. And why it scares parents. But it's also filled with wide-eyed, passionate kids who were so busy fighting each other and comparing e-penises that they didn't even notice when the old hands commoditized them. Remember, revolutions eat their own children.

Still, I am very much against introducing unions and regulations to artificially limit the market. The last paragraph of the original post is spot-on. The only way to gain respect is not to cry for it, but to realize your value and hold your head high. Sadly, programmers as a community seem to have already lost that battle.


"...programmers have respect on the level of assembly line workers... [in the] UK... your parents would much prefer you picked a respectable profession, like a doctor or a lawyer."

In the UK, sure, being a lawyer or doctor is much more prestigious than being a programmer. However, to equate programmers to (presumably unskilled) assembly-line workers is total nonsense.


> However, to equate programmers to (presumably unskilled) assembly-line workers is total nonsense.

Really? Is it so absurd?

Some programming tasks certainly require a lot of skill and insight. Not everyone could be a senior developer on a major software project, or start a successful business making their software from scratch.

On the other hand, many programming tasks today are very much like an assembly line: here are some parts, glue them together like this, make a product. A scary number of "programmers" today lack even basic background knowledge of the theory underlying their work, or a proper understanding of their tools, or any particular training and experience (academic, personal projects/self-study, or otherwise) that qualifies them to work on industrial, commercial projects.

Unsurprisingly, those people produce crap. Their software doesn't do what users need, or loses users' data, or crashes users' computers, or in the Internet age has security problems that let malware onto users' systems. Funnily enough, the people paying for that crap don't much appreciate it, and the software industry generally has a poor reputation for being able to produce good quality work as a result of these fools.

Of course, smart programmers have also built things like the Internet and air traffic control that can co-ordinate landing dozens of planes an hour safely, but people take it for granted that these things work without any understanding of how difficult it is to get such critical software right, and most professional programmers will never work on such important projects anyway.

I don't see how we're going to start distinguishing between software developers who know what they're doing and those who don't until we have some sort of competent and authoritative professional standards body. I don't see how we're going to have one of those until our industry is grown up enough to set useful professional standards. We clearly aren't ready for that today, with widespread ignorance in the industrial community, academics whose theories often don't stand up to practical applications, management who can't even estimate a project within a factor of 5 for time and budget, and consultants who peddle the Next Big Thing as if snake oil was going out of fashion. And thus the vicious cycle goes on, and probably will until our industry is a lot more mature.

Until then, many so-called professional programmers are pretty close to unskilled assembly line workers, and it is a strange idea that they should earn 10x the wage of someone working an eight-hour shift under far less pleasant conditions in a factory to produce goods that you and I rely on every day.


It all comes down to the point you make about there being no widespread absolute consensus on the best way to develop software: our industry moves too fast and contradicts itself too often for institutions and standards to become permanently established. But I suspect, comparatively, we are actually doing much better than more mature fields such as law and medicine (who took hundreds of years from their founding to reach what they have achieved today).

Also, maybe law and medicine aren’t that great. Every time I visit my GP these days I’m always struck by how he basically has no idea what is wrong with me. And our legal system seems to be pretty out of date in the light of more recent findings in psychology and changes in society caused by the Internet.


What kind of programmer and what kind of assembly line?


I'd taken to calling myself a 'digital garbageman' for a time, because that's essentially what I was. I had some corp jobs, and it was mostly cleaning up other peoples' code. I said it tongue-in-cheek, but I did feel that way, and eventually left corporate work to hang out my own shingle. This time around, I'm primarily solo, and sub out work to people to augment my time/skills.

I've gotten much better about charging rates I'm comfortable with, and finding clients that a) can afford it and b) find value in what I do at those rates. It would actually be nicer to do 'value-based' pricing, vs hourly, but it's not something that both parties are usually able to agree on. Unless you know a particular industry well, it may be hard to understand the full value of the work you do. Even then, the company may much prefer to pay hourly or much lower rates, simply because they can probably find someone else to do it.

With medical and legal professions, the licensing/regulation creates a large barrier to entry, and people have to go to those professionals for certain tasks. You can represent yourself in court, for example, but it's often frowned on, but you generally can't prescribe yourself your own medication. With software, no licensing/regulation exists, so there's generally a much broader range of skills and value in the marketplace, which dilutes the value perception many people have.

Agreed on the age thing. As long as there's a youth-obsessed focus in the software world (and I think it's done just as much by us inside than by the outside world) it'll be hard to get the respect we'd like as a profession, simply because most people don't treat it as a career. Would you rather use a 22 year old lawyer, or a 52 year old lawyer? How about a 22 year old developer vs a 52 year old developer? :)


"With medical and legal professions, the licensing/regulation creates a large barrier to entry"

This is the heart of the differences in pay. Expensive certifications keep the supply of doctors and lawyers artificially low and thus their average salaries higher. Meanwhile, anyone with a computer can start programming software.


Certainly the 52-year-old developer all else being equal. Isn't this a complete no-brainer?


well, as a rule, so far, the 52-year-old developers don't get the jobs over the 22 year olds. That'll hopefully change as more of us get older though :)

My one other thought - way too late to the game here - is that many/most developers seem to choose their 'respect' in the form of free sodas, air hockey tables, nerf gun fights, flex time and other similarly frivolous/trivial 'perks'. It's not how I would choose to be respected, but it seems that's what enough developers seem to gravitate towards that it's set the perception of developers in the marketplace.

This is now how software developers are courted - "hey, this place has free sodas! and you can play ping pong!" Nothing wrong with those, but I'd rather take more cash. I a talked to a company about a position, and postponed, then came to them about 9 months later, and was offered $30k less than what we'd talked about before. I inquired about this rather massive discrepancy, and was told "we have free gym memberships, and all the free soda you can drink!". Tell you what... I'll buy my own sodas, drink fewer of them, not need the gym as much, and buy my own gym membership closer to my home with the extra $30k, thank you very much.

I'd also rather be able to come in, have people respect what I say, take my ideas seriously, and not have to deal with a load of internal politics on a daily basis. That tends to be the life of a contractor/consultant, and it suits me better.


Indeed. I'm a 41-year-old developer and have spent most of my career working in university research departments. Just a grown-up amongst grown-ups. I had an interview the other day with a start-up whose HR department and developer-interviewers insisted on talking about the "free lunches" they provide. I mean, when it came to question time for me they actually asked whether I wanted to know anything else about the lunches. By then they must have realised I couldn't give a shit. I was and still am just bemused by how this could possible attract anyone, of any age. I mean, do I look like an idiot? I'll make my own sandwiches and take the money instead please.


Exactly.

"TANSTAAFL" :)

Now, I'm not against free lunches. In a large enough group, I think it's a nice thing to offer - you get a variety of stuff you might not otherwise cook for yourself, communal eating is fun sometimes (not all the time), etc. But... as a stated 'benefit' that you know is being offered in lieu of extra cash... not sure that sways me.


Yes, free lunches are fine, and communal eating thing much of the week would work well for me and no doubt for the team's performance. If I was told we each together a few times a week, that would be hugely important. As it was, I tend to imagine individuals scurrying to the kitchen, and taking a boxed meal from the fridge back to their desk while they're still working. I should have asked which of these actually happened.


> If you are a doctor, or a lawyer, or a freakin' sales guy, people will listen to your stories, at least for a while. On the other hand, if you are a programmer and even start to talk about what you do for a living, people's eyes will glaze in boredom instantly.

What saddens me is that it happens inside the industry too. Too many times I have seen and talked to programmers who seem to consider themselves 'glorified janitors'. If you mention anything science/tech/IT-related outside of 09:00-17:00 period, you'll get shunned for being a geek. I say, WTF? I respect people who came to programming 'for the money' rather than because of being interested, however I consider disrespectfully discarding science/tech/IT stories while being too happy to discuss tourism, sports and cooking as a sign of mental limitation and general lack of respect to other people.

</rant>


Genuinely curious:

“I respect people who came to programming 'for the money' rather than because of being interested”

Why?


Until last year I was a programmer of pure heart, that would despise perspective of working 09:00-17:00 as a programmer, and then go home and 'have a life'. Programming for me was, and still is, a creative art and a tool to solve problems worth solving. However, since then I started working and actually earning money for my expenses, instead of relying on parents, and this pretty much shifted my perspective. You need to take money from somewhere if you want to eat (and support people both above and below you on the family tree). Also, it's really hard to find a job that would be perfectly aligned with your dreams/goals - that actually hurted the most. I understand now that people have different priorities, and life is not so simple, and people tend not to have everything 'figured out'.

While I still strive to find a way to give value to human society to the best of my abilities, and don't want to end in a corporate 0900-1700 job and make money for the sake of making money, I understand and respect people who chose differently. I believe, that there are other interesting things I might learn from them. However, I expect the same respect from them, that I give to them. Otherwise, we have nothing to talk about.


Sorry I only just got round to reading your reply. What you say is interesting and all but hazy. What is your actual reason for respecting them other than the fact that you acknowledge there might be reasons for their decision? To my mind that doesn’t warrant respect, but the suspension of judgement until you have more information.


Respect to a human being in general? I try to give it by default, unless someone works really hard to loose it.

Maybe you're right about that, phrasing it as 'suspension of judgement' is more accurate. I used to treat 'programming just for money' as disrespectful; now I assign to it the default value of respect I assign to everything else that I don't give special considerations.


> In your average company, a programmer is considered a glorified mechanic or janitor, a code-monkey if you will, well below the guys that "bring in the money" like sales and marketing. It is an expense, something that the company has to live with because someone has to implement the ideas that the guys in charge come up with to help the guys that "bring in the money" bring in more money.

It's worse than that. Even in the tech sector, the situation you describe sometimes happens. I have yet to fully analyze that kind of situation, but i've already come with some criteria that might help identify such environments.

What is sad is that it's merely a reflect of the mainstreams governance models at wide scale (and only worse: democracy is even less frequent in companies than in countries...), which have proven to be poor, and will prove to be catastrophic in a near future.

Of course in the real world things happen on a continuous scale, but if by bad luck the environment you're in exactly fit below exacerbate description, run!

1. A strictly tree like, military like hierarchy, ruling everything in strict tree order regardless of its a tech, hr, or other issue. This is one of the most effective way to waste talent and to take non optimal decisions (and not even near to optimal) -- add not taking into account bottom-up proposals if you want the perfect mix to achieve a high level of ineffectiveness.

2. The hierarchical tree is strict enough so that programmers typically can't even be spontaneously inspired by new ideas, which often is not enough to kill a business, but just to impede it, so sadly the situation might persist.

3. Each programmer is considered as a "just another programmer" in the company, regardless of achievement, knowledge, skill. The paradoxical part is that does not mean that individual requests are not done to the good people when needed, but it looks like not much people would recognize that when they have no question. Improvements in achievement, knowledge, skill are neither fully exploited and often not rewarded at all, directly leading to a high turnover.

4. Small valorisation of tech realization for those who actually do them, regardless at which level (that can go as far as considering programming mainly as a cost center that needs to be beaten into submission to behave, and preventing it from getting helpful resources).

Lesser versions of those situations exist, leading to more effective tech companies that are more programmers friendly. The two often somehow go together. At the end of this better path, you have some companies like MS, Google. (not exempt from pb, but they arguably are not that bad)


I think this comic comparing the org charts of various tech companies is relevant to your analysis. :)

http://www.bonkersworld.net/2011/06/27/organizational-charts...


I can only speak from my American experience, working as a software engineer for ~12 years in NYC. I am 33 years old--I never feel too old for this. My non-tech co-workers and engineering peers respect me very much. I love them back. We do awesome shit together. I solve hard problems and make beautiful software. I work hella hard but get paid well and I love every second of it. I am so glad I do what I do and when I read about people not being respected and not loving their work, I can only suggest that you do something else or do it somewhere else. The world is your oyster. Life is short. Carpe diem!!


"When the average corporate user spends most of his time in front of a computer, forced to use boring applications day-in and day-out, how do you think he feels about the people that build those applications?"

The thing is that those apps don't have to be boring. Most apps are low-quality, in code and design, as a result of a management philosophy that considers developers as low-value. Apple is a good counter-example. They put a high value in quality of code and design, and as a result even their settings dialogs are a pleasure to use. I've never come across a category of software that couldn't be made pleasant to use with some inspired design and coding.


I say that corporate apps are boring whatever you do to make them less so. Corporate users don't use those apps because they want to, they use them because they must use them to perform their work. It's the obligation that's the killer.


Firstly, if you disagree, that's fine. But saying my arguments are "entitled whining" isn't disagreement, it's name calling. DH0, to use Paul Graham's phrase.

Secondly, some of my arguments might be wrong, but I provide numbers and evidence to back them up.

"Likewise, programmers who define their goals economically (which broadly includes creating value for users) have nearly unparalleled earning potential."

Evidence? If you're talking about startups, I already covered that. Read the post.

"and incidentally, American programmers are paid better than in almost any other country."

This is sophistry. American Xs are paid better than non-American Xs because America has a high GDP per capita, pretty much regardless of X.

"First, computer programmers are certainly among the most respected trades."

Citation? And, adjusted for IQ, skill, hours worked, degrees earned, and so on?

"If it's not, enjoy the fact that you're in a trade where even untrained, mediocre practitioners reach the top 10% of American incomes."

Citation? Do you even know what the top 10% is? Here's a hint: The average salary of a computer programmer in the US is $75,000 (cite: http://www.collegeboard.com/csearch/majors_careers/profiles/...). Most of those have college degrees in computer science or other technical fields, they certainly aren't "untrained". And 90th percentile income is higher than that even including people who don't have jobs (cite: http://en.wikipedia.org/wiki/Personal_income_in_the_United_S...).


But saying my arguments are "entitled whining" isn't disagreement, it's name calling.

Actually it's not. Name calling would be if I called you an entitled whiner. There's a difference between attacking your argument and attacking you. (And if we're sticking to the taxonomy, that part of my comment would be DH2, "responding to tone".)

Evidence?

That was the crux of my post. Programmers do get filthy rich (usually via starting tech companies). You're right that at that point they're not programming, but that's because programming in isolation has limited economic value. Using the skills one acquires as a programmer and aiming them at value creation has created a large chunk of America's billionaires. And while that phenomenon is not unique to programming in the least -- in fact, it holds across almost any skilled trade (i.e. soft-skills begin to dominate hard-skills) -- the upper bound is demonstrably higher for programming (as evidenced by the list of richest Americans) than it is for almost any field.

American Xs are paid better than non-American Xs because America has a high GDP per capita

No, I meant relative to GDP per capita. I live in Germany where programmer salaries are about 50% above the GDP per capita, whereas in the US it's about 75%. From what I've gathered, in the UK, it's closer to 25%.

Citation?

It's nigh on impossible to measure "respect" in some sort of meaningful way, but here's a list from a couple seconds of Googling on the "Best Jobs in America":

http://money.cnn.com/magazines/moneymag/bestjobs/2010/full_l...

  1: Software Architect
  7: Database Administrator
  18: Software Engineering / Development Director
  20: Information Technology Manager
  21: Telecommunications Network Engineer
  24: Network Operations Project Manager
  26: Information Technology Business Analyst
  30: Test Software Development Engineer
  31: Information Technology Network Engineer
  33: Information Technology Program Manager
  38: Applications Engineer
Your citation for the average programmer salary is from 2005. Salaries have gone up significantly since then. Even just adjusting for inflation (and ignoring the recent IT boom) puts it above the 10% ($82,500) bar. I have no idea what percentage of programmers hold computer science degrees, but it's certainly not "all" and I wouldn't be surprised if it's not "most".

One of the things that's somewhat endemic to your case is shifting back and forth between comparing the median with the top tier. Average doctors, bankers and lawyers aren't making the salaries you suggested. Median programmers aren't particularly impressive.

Let's split it out:

Elite programmers do things like start software companies, work at corporate research labs, work in financial engineering or work on high-profile open source projects. Those folks command respect and have high earning potential. (Though interestingly, among the elite of these groups, programmers probably have the lowest percentage of completed formal training.)

Elite investment bankers are measured heavily on their returns and a large portion of their compensation is bonuses. Elite lawyers are measured on their returns (wins) and compensated to a significant extent relative to their non-legal social skills (i.e. their network).

Median programmers write intellectually trivial code that solves uninteresting problems. Training is optional and there are virtually no systematic hurdles to cross to enter the trade. They still make relatively high salaries relative to societal norms.

Median lawyers work on intellectually trivial cases. Formal training and certification is required and compensation is relatively high, but nothing that will generate notable wealth. Median investment bankers (my father would have been in said category) mostly convince a handful of clients they've been given by their organization to invest in a 90% cookie cutter portfolio and are compensated reasonably well -- varying largely on their ability to source their own clients. (But first year run of the mill stock brokers probably make less than first year run of the mill programmers.) Formal training is theoretically optional (though there's a de facto requirement of a degree in something) and formal certification is required. Again, no notable wealth is generated in this category.

At the low end, the gap isn't particularly wide between these groups. At the high end, folks from finance and programming backgrounds comprise a disproportionately large percentage of the economic ultra-elite and lawyers of the political ultra-elite. It still bewilders me that given that demonstrable fact, that you'd brand our profession as not getting any respect.


Let's be honest here. It's hard to define respect, but an overwhelming majority of parents would rather have their daughter marry a lawyer or a doctor, than a programmer. That right there gives you a strong indicator of society's take on the issue. I'm not arguing that programmers get no respect (they do pretty well among non-prestigious trades). I'm arguing that programmers are not perceived as belonging to the same professional elite that lawyers and doctors belong to.


Well, if you want potential mothers-in-law to gaze lovingly, consider that they have interacted with physicians and attorneys and know what their value is, as has our society for centuries. Stand up straight, offer eye contact and a warm smile, and if you're every bit as smart and dedicated as the average finance dude, what is left to prove? Be confident that you can quickly educate anyone on the nobility of your professional choice. Any doc or lawyer can lay it on thick. ;)

In all seriousness...I don't altogether get this gripe. I guess because I went to art school and will never, ever have any "power," let alone money. But it was _my_ choice. I'd rather be doing something fun that I'm good at.


It has nothing to do with respect. Parents in most cases do not understand technology, much less programming whereas they can understand what an attorney or doctor does. The lawyer can keep you out of jail. The doctor can keep you from dying. What the heck does a programmer do that's so important? Note - I'm a programmer. I'm just look at it from their position. Then again, I live in Silicon Valley. When I say I write iPhone apps nobody looks down on me --- in fact quite the opposite.


I concur with this sentiment. When I meet new people, and they ask me what I do and I say I 'make and market websites' they stop - chin drops - and they say 'wait... you MAKE websites?! Like you MAKE them? Give me your number'.

Sure, moms don't romanticize their kids becoming a programmer. However by people who understand what value you can bring, you are greatly respected - almost as if you are a magical being capable of things beyond mere mortals.


Actually it's not. Name calling would be if I called you an entitled whiner. There's a difference between attacking your argument and attacking you. The difference is very minor.

Median programmers write intellectually trivial code that solves uninteresting problems. Training is optional and there are virtually no systematic hurdles to cross to enter the trade. A median programmer has BS in computer science, understands basics of computer hardware architecture, OS administration, networking and database management. Keeps current with the latest industry trends, has familiarity with a number of complex development tools and, in addition to all that, specializes in some area of programming.

What I listed above are the implied prerequisites for almost any mid-level developer position out there.


> That was the crux of my post. Programmers do get filthy rich (usually via starting tech companies).

There is a big problem with this argument. It is true that there is a good number of rich programmers. However, this doesn't mean anything for the broad class of people working in the same occupation. For example, this is similar to saying that being a singer is a good job because there are a lot of rich singers in the world. However, the average singer can't even put food on the table.

Similarly, the fact that there are some rich programmers doesn't mean that the category is doing well. In fact, pointing to these successes is unhelpful, because it can mask the problems found by normal people.


Imagine if someone made the statement: "This is a tinfoil hat argument." Or, more directly: "This is an idiotic argument". How about "that argument is positively pedophiliac!"

Any time you take a pejorative term and apply it to the argument, it is always going to sound like you're applying it to there person. In most cases, that's the way it reads as well. It seems a way to engage in personal attack while being able to pretend to have only been characterizing the argument.

If you said "this argument has logical fallacy X because Y is Z" that would be a characterization of the argument of a totally different color. That would be addressing weaknesses in the argument, rather than anthropomorphizing it.

I have no opinion or position on your intentions, and presume that it wasn't your intention to characterize the person making the argument. I'm just trying to show why that form of characterizing the argument comes off as a personal attack.


Many of the top programmers at Google are making much more than you mentioned in your post. The amount you mentioned is more in line with a ~20 something there, in total compensation.

A Bachelors degree does not compare to medical school + residency (they also have to get a bachelor's before starting those two). While you're making money for 8 years at a comfortable 9-6, they're spending over 100k to train themselves and performing physically and mentally exhausting work.

Also, in the medical profession, those in primary care don't make the huge amounts you posted - many are below 200k, some far below. It's the specialists that you're thinking of.


Yeah, I don't have any stats at hand but docs-in-training I know seem to see themselves as being somewhere around $200k in hock for all the training. And med. reimbursement is going to a scary place in the US. I worked in a medical practice and the dual specialist MD lost money on every patient due to insurance and overhead and abysmal medicare reimbursement. Clinical trials provided the practice's profit. Programming / engineering seems much more free.


Also don't forget debt. Most MDs and DDSs I know in the US have 350K+ of debt. On top of that, they have to worry about malpractice suits. The work is very demanding physically and emotionally. While I can work from home on a rainy day, a doctor can't.


"Entitled whining" is a bit harsh I agree, but I have to say that my reaction was along those lines as well. What do you suggest be done about the situation? The abstract "respect" term is not very useful. The investment bankers that you mention make a lot of money but they don't have a lot of respect right now, at least for some definition of the word.

You could say that we deserve higher salaries but in my opinion the free market works perfectly there. And in fact, the same applies to respect. It's not something you can force, people respect those who earn their respect. It's not adjusted for IQ, skills, worked hours etc.


Absolutely fantastic reply.

Although one can get a programming "job" with little experience, or better yet just start programming with little more than a laptop and some free software - being a top-notch developer takes many Years of training.

As the computing industry and inherent complexity continue to grow, and as society relies more heavily upon it, we'll likely find similar barriers to entry. Programming is an infant relative to the practices of medicine, law, and other well established industries.

My ideal world is one in which everyone learns how to program along side math, science, language, and so on - just as we learn about health and civics, not to become doctors or lawyers but to become healthy members of society. If computers are to become an important part of human society, then programming them should be a part of the basic curriculum. The social respect of professional developers will surely grow as software development becomes better understood.

Not that I receive any lack of respect from my non-techie peers. But I certainly wouldn't mind being able to discuss my daily brain-benders with a stranger at the local watering hole-in-the-wall.


he does have a point. lawyers and doctors both work in industries that are protected. anybody can come off the street and start slinging code. you can't come off the street and start lawyering and doing surgery even if you were more capable than the average doctor or lawyer.


you can't come off the street and start lawyering and doing surgery

True, you can't do that now. But going back to what he says about the industrial era of America, you could do that in an earlier age. The software industry and culture is only in its infancy in America.


Consider this quote from http://www.fastcompany.com/magazine/06/writestuff.html about the Space Shuttle software (which has been on Hacker News before)...

"""But how much work the software does is not what makes it remarkable. What makes it remarkable is how well the software works. This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program -- each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors. Commercial programs of equivalent complexity would have 5,000 errors.

"""This software is the work of 260 women and men based in an anonymous office building across the street from the Johnson Space Center in Clear Lake, Texas, southeast of Houston. They work for the "on-board shuttle group," a branch of Lockheed Martin Corps space mission systems division, and their prowess is world renowned: the shuttle software group is one of just four outfits in the world to win the coveted Level 5 ranking of the federal governments Software Engineering Institute (SEI) a measure of the sophistication and reliability of the way they do their work. In fact, the SEI based it standards in part from watching the on-board shuttle group do its work."""

Perhaps change the law to make companies legally liable for software quality and losses arising from it. Even require software to meet a certain SEI ranking, depending on the industry. Of course you need a phase in process. Eventually, salaries for software workers would rise.


Even require software to meet a certain SEI ranking, depending on the industry.

Anyone who's worked with a CMM level 5 certified organization knows how laughable that suggestion is. On-board Shuttle Group are undoubtedly top-notch. But any random Bangalore bodyshop has CMM level 5 too.


Reminds me of a quote from Yossi Kreinin:

CMM has 5 levels. CMM level 1 is where you operate right now: it denotes the ability to ship something. CMM level 5, the one mentioned in the interview from Kent Beck's book, denotes complete paralysis. To do anything, you have to write or update so many documents, have so many meetings with "relevant stakeholders", and to perform so many pointless measurements of the defects/LOC kind, that it's much more productive to just go postal and at least remove a CMM auditor or two from the face of the Earth in the process.

Levels 2 to 4 indicate various intermediate stages where paralysis is spreading, but you can still ship. For example, level 2 is called "Managed Process". "Managed Process is distinguished by the degree to which the process is Managed". I'm not making this up. There's a book called Capability Maturity Model Integration, and this book, heavy enough to kill a human, is full of this sort of stuff. Reading it is impossible.

http://www.yosefk.com/blog/extreme-programming-explained.htm...


But wouldn't salaries for software workers eventually rise? Accounting and legal rules are also books heavy enough to kill a human. My point is that government intervention is the reason solicitors and accountants salaries are so high. Exams are the reason teachers salaries are high. The same would be needed (e.g legislated and enforced CMM levels) for programmer salaries to rise.


> But wouldn't salaries for software workers eventually rise?

No.

Lawyers, accountants, and teachers can make a lot of money because people are willing to pay a lot of money for the services they provide, because those services are very valuable.

Paying a top-notch lawyer US$500 an hour can save you a huge multiple of that US$500 if you're being sued for US$500M. Paying a good accountant allows you to manage your business transparently enough that you can raise money on a stock market, thus getting 20 times the amount of cash you've made in profits. A four-year university education can lift you from the lower class into the middle class, adding millions to your earnings and a decade to your lifespan.

It turns out that developing software quickly is a very valuable activity. In a single day of work, a good programmer can write a piece of software that functions in production for years afterwards, serving dozens, hundreds, or millions of people. Often, this is even the case if the software is buggy; the alternatives (repetitive manual labor, spreadsheets built by amateurs) are often even less reliable.

If you tried to outlaw the development of unreliable software, programmer salaries would go the same place that salaries for nuclear plant engineers and designers of small planes have gone over the last three decades: overseas or into oblivion.

Worse, it would likely be counterproductive. What we need for more reliable software is not books of management rules but better abstractions, better theorem provers, better programming languages, better insights. Those things are themselves software, but they are probably not software that we can develop faster, or at all, under an SEI CMM Level 5 process.


Those protections stifle innovation... can we not ask for them too loudly please just in case somebody gets an idea for an IT Professional Institute?

The actuarial profession is protected here, and fuck does that make it difficult to get a decent actuary who can also program.


This is because of the BAR and the AMA. If there was an equivalent group for programmers that could get equivalent regulation this would not be the case. I think a group like that would solve a lot of the issues OP brings up.


"The rest of folks are compensated at prevailing market rates for their technical skills -- and incidentally, American programmers are paid better than in almost any other country."

Not so. The supply of MDs, CPAs, and lawyers is kept artificially low by accreditation bodies.


    Top lawyers aren't paid the most because
    they know the law the best; that's ancillary.
    They're paid big bucks because they win money
    for their clients, prevent their clients from losing 
    money and build networks to people that have 
    money to give them. 
Actually, the top people are called "rainmakers". These people are able to find, smooch and retain new customers. The technical people are the first to get laid off.


Thank you, more or less exactly what I wanted to say, but I found it difficult to find the right words.


There are many people who sling code who make as much as a doctor or partner at a law firm. More than a few people on HN fit that description, actually.

A partner at a law firm is a businessman first and an individual producer of lawyering second. He has people to do that for him. Many - but not all - ways to do extraordinarily well as a programmer involve becoming a businessman first and a code slinger forty-second. There are many people on HN who run consultancies. If you're unaware how the numbers shake out, ask them what percentage of the money they get came in from billable hours programming and what percentage came from e.g. the delta between what they charge for consultants and what they pay them, or the line-item fees which have no associated hours.

I keep giving this advice: stop calling yourself a programmer. You're right, it is anomalously highly paid and low status. So call yourself something else. If you sling code and make businesses serious money and are sophisticated about extracting that value, you will be quite highly paid indeed.

With regards to social status: most white collar laborers don't really have it. You could be a payroll clerk, so count your blessings. If you want it, either a) find a peer group where you have it or b) use code slinging to achieve something society values. You know how teachers have status? Try the line "I helped X million kids learn to read last year" out some time. (Helpful if it is true, obviously.). Or you can just wait until society moves in the direction of Programming is Sexy. (Not as far fetched as you might think. My girlfriend and her circle of friends loved Social Network. If I had reputational stock I'd be IPOing right now.)


<tangent>

  My girlfriend and her circle of friends loved Social
  Network. If I had reputational stock I'd be IPOing
  right now.
In a relationship, IPO equates to "marriage". Note that the time/money requirements to satisfy each level of advancement in that arena (marriage, child1, child2, ...) grows exponentially.

The relationship Cost/Benefit ratio works remarkably similarly with a business ipo actually. If you're headed in that direction, I strongly recommend performing in-depth due diligence particularly around the areas of money-management, child-rearing.

</tangent>


<tangent> I'm in the quiet period, so no comment. </tangent>


"If I had reputational stock I'd be IPOing right now." I love that! lol

I'm sure that I'm a little biased living in Silicon Valley but here being a geek and being sexy is not mutually exclusive. Being a "programmer" is respectable but being a tech entrepreneur is respected much more.


> stop calling yourself a programmer

That's right. The top "programmers" are entrepreneurs. Or in New York, they're portfolio managers. So it should be obvious that anyone who wants to make lots of money as a programmer should join a start-up or a trading firm.


Or AmaYaGooBookSoft, if you're capable of reading a quarterly earnings statement and an org chart.

I have no special knowledge of the internal organization or compensation schemes at Google, but a blind ferret could tell you that good things happen to key employees on AdWords.



Quite a few good replies in this thread already. Let me just add a couple points:

Engineering, done right, is an invisible art. Doctoring and lawyering done right are intensely personal activities, service businesses with one-on-one human attention. Good engineers fade into the background. Engineers make objects and the objects speak for themselves. You probably can't name the engineer who recorded and mixed the sound on your favorite new record. You almost certainly can't name the engineers who designed all your local bridges and rail systems. We don't even know how many people designed, say, the smart cover for the iPad 2. All of this is by design.

Engineers also rip and mix and burn and create things that are the sum total of a lot of individual efforts. I don't even know if I'm the engineer responsible for the test software that tested the wafer that spawned the chip that went into your cell phone that filters the RF frequencies in your cellular radio. There are very good odds that I am: I wrote such software, and last I heard it was still running and my old company is still selling chips. Again, this is how proper engineering works. Many of the best people you'll ever meet work outside the spotlight, quietly making their corner of the system better.

Engineering is a worldbuilding activity. The objects become famous, not us, but even the objects' fame is fleeting. The marvel of one age is the boring infrastructure of the next. But, hey, at least you get to change the world. Fame isn't everything.


Engineering, done right, is an invisible art... The objects become famous, not us.

I think that is the exact type of thinking the thread starter wishes would change.

Why is that the case? Why don't we exalt those who created such great things that we take for granted.

And further more wouldn't we be better off as country if we did?


Why don't we exalt those who created such great things that we take for granted?

Because there are too many of them. Look around you. The objects you can currently see or touch have been built though the effort of, literally, tens of thousands of people. My MacBook alone is the work of a small city's worth of designers, engineers, techs, modelers, miners, carpenters, accountants, physicists, chemists, machinists, architects, caterers, truck drivers, and so on. You couldn't read all their names aloud in a week even if you knew their names.

We do give people individual credit, sometimes. The movies have credits with names in fine print. And a few lucky (?) people become archetypes: They're the ones who appear in the encyclopedia under inventors.

But mostly engineers and other builders take pride in the results. To praise a Pixar engineer, praise the movies. To praise an Apple engineer, praise the MacBook Air (which by the way is absolutely excellent). To praise my semiconductor engineering, talk about how thin your phone is or how good its reception is. Most of the credit isn't mine, but a little of it is, and that's going to be good enough.

I disagree that our country would be a better place if we all spent even more time blowing sunshine up each other's butts. Rather, I think the world benefits from teamwork: People who do their jobs effectively and consistently and take pride in the results.


  I disagree that our country would be a better place 
  if we all spent even more time blowing sunshine up 
  each other's butts. 
I completely share your view. In fact, the software industry is a perfect one to be in if you want to enjoy life without having to make noise and conform to social norms. And while I personally like to have diversified relationships, the industry as a whole has a rich enough culture for us to be comfortable on our own.

In comparision, I love Mathematics, but the field is too narrow. I have heard stories about how investment bankers hate their crowds. And lawyers are always in stiff competition with one another. Looking from this perspective, the software community is similar to the designers' community. We share a lot and we genuinely like each other. Well, maybe that's a problem itself. We tend to form into cults and we are too ignorant with what else is going on in the world, hence we tend to be more socially awkward. But that's an internal problem and not an external one. We have to fix that individually.

However, while I don't think we should strive for more publicity and social status, not having enough cash can hurt. This is a real issue. In my country, on average, a programmer gets paid as much as an accountant, if not less. I know a lot of couples where the guy is a coder and the girl is an accountant, and they eventually had to break up partly because the girl is earning more.


I like your points so I will compliment the mechanical fish ;)

To bring it back to the OP's point with your perspective, we should then not attempt to make the designers famous but rather highlight the importance, fun and satisfaction that is their craft.

We all appreciate what the designers make, but we don't spend much time exalting the designers. I don't think the OP necessarily wants all of them famous, just like we don't sit around talking about various primary care physicians. We do tell our kids that they can grow up to be those doctors though. I'm of the opinion that the next generation of parents could be telling their kids that they can build anything they want when they grow up. Something that legos drove home to me, but I consider myself lucky enough to be in a family that encouraged such thinking and could provide the tools for me to explore it.


I think you're misrepresenting a few things, so I'll take a stab at it:

1. Senior software engineers at Google in Mountain View make over $200k all told.

2. Senior software engineer is in the middle of the Google ladder. The bulk of engineers at Google are senior level, so it's not special. The very best engineers make more.

3. You are vastly overstating the salary and difficulty of other fields.

3a. Doctor - You have to go through medical school and residency. Medical school incurs a ton of debt and residency pays shit. The average salary for a doctor in Silicon Valley is $200k.

3b. Investment banking and management consulting - first of all, in these fields, a few people make a ton of money, but most don't make nearly as much. Both of these fields are known for their horrendous hours. I'd rather work 40 hours at $200k than 80 hours at $500k.

4. There are also big winners in the programmer world. People who went to good startups early (Facebook, Google).

5. Many programmers _enjoy_ their work. How many can say the same about investment banking, lawyering, or management consulting?


2. It's not actually "the bulk" of engineers - I heard Senior SWE + above is something like the 30% of engineers. However, the age range is off; typically Senior SWEs at Google are about 26-32, depending on what their past career was. Someone who's 35 and of Google caliber (i.e. same intelligence as a doctor, lawyer, or management consultant) would usually be at least Staff and have some management responsibilities.

4. This is pretty key. Most of the top engineers I know at Google aren't paid $150K, they're paid millions via acquisition, stock grants, or insane counter-offer.


>>(i.e. same intelligence as a doctor, lawyer, or management consultant)

I keep reading this again and again. A doctor, lawyer, or management is not necessarily smarter than a programmer. They have to work longer before they can start practicing their profession but that doesn't make them smarter.


There are plenty of programmers too dumb to get a job at Google. I think the post you were replying to was merely saying that they also wouldn't have been able to pass the LSAT or MCAT.


1-3). Citation needed. Especially for Google salaries. I personally know a number of Google engineers, one of whom has been in software since 1994, and they've told me what they make.

3a) - 3b). True, but I was comparing the top bankers/consultants to the top programmers. Remember that Google is the very top, #1 software company to work for - it's only fair to compare Google engineers to, say, mid-level bankers at Goldman Sachs. If you want to compare average people, you'd have to look at, say, programmers at Wells Fargo or something.

4). That's essentially luck. If it isn't luck, please explain why the median VC loses money. Either a). average programmers must be better at picking winners than average VCs, who (if not as smart) have decades of experience and spend hundreds of hours on it rather than ten minutes deciding between job offers, or b). an average programmer shouldn't exercise their startup stock options, because they'll expect to lose money on net.

5). Definitely true, and it's why I'm a programmer myself. But it doesn't address my points.


What % of programmers work at Google? Yes, "people who went to good startups early" profited immensely (not just Google, but Microsoft, others, etc.)

What % of programmers work at "software" companies? Here, in this space, that realm receives bulk of focus, and even there, most of these positions are of the one-off variety (or very small teams) compared to corporate IT where not so long ago, hundreds, even thousands of programmers worked in departments now staffed (in what I would estimate to be the majority of firms) by an amalgamation of offshore programmers and imported non-immigrant visa workers. Yes, these jobs pay more than lettuce picking, but the mechanism still serves as downward throttle on wages and bill rates.

There is colossal range in low-end to high-end in programmer pay. And jobs at the high end are not as plentiful as those on the low end. And developers in Silicon Valley (or big metro hubs) eclipse the rest of the country where it's not unfathomable for programmers to make less than 50K.

I will agree with the contention that the free agency nature of career field is driving out those who do it because they "_enjoy_ their work" -- in non-software corporate positions, I do not believe that was the norm until the 21st century.


+1 for the 5th point. I had to read a few contracts and I was utterly convinced that I wasn't paying my lawyer enough as he had to read this horrible stuff every day.


This is a very weak argument. I am pretty sure your lawyer says the same thing about the code you write.

Everything is boring when you don't understand its meaning. A good lawyer can easily figure out what is important in a legal document, and make smart decisions based on it.


What would your lawyer say if he read a few programs and contemplated the fact that you have to read that stuff every day?

I don't think legal language is as unpleasant to lawyers as it is to people without legal training and experience.


I think reason #5 is a big one. Most of my friends in banking, law, etc know they are trading happiness for money, and accept that.


As a programmer I'll comment on why I wouldn't fit into some of the molds you've suggested that programmers might join. (Personal opinion, of course.)

1. As a general rule, I am very unwilling to put up with crap...life is too short. I also want to be productive with the energy I put into something. If you are hired in a technical job, you can reasonably expect to be around competence (and if you're not, you leave). The biggest reason I would never see myself joining Congress, or upper management at some companies, and similar jobs, is this: I can already see who my co-workers would be, and they're horrible people. I've seen what a lot of these clowns are capable of, and you couldn't pay me enough to be the only smart man in the room. It would be day after day of banging my head against the wall and wasting my breath.

I believe that the only way you'll ever see engineers enter these kinds of jobs is if you can simultaneously replace a huge percentage of an organization with new people: the kind of people that engineers can believe in and work effectively with. It has to be appealing from the outside, and right now it just isn't.

2. I enjoy most work. As long as I'm making cool stuff and I can be proud of what I produce, I'm pretty happy. I am more stressed about things that have technical consequences (e.g. somebody pushing for a change that I know will be a long-term negative), than I am about salary.

In other words, if it wasn't so easy to find enjoyable work doing actual programming and the "important" jobs weren't so maddeningly filled with annoying individuals, you probably would see engineers doing other things.


So, in tl; dr: engineers tend to have aversion to bullshit - the one that tends to fill upper-management and business circles.

I understand your sentiments - I personally don't see myself as ever joining upper management - in my life I want to do good, worthwhile things. If the best way to accomplish something will be to manage a team, then fine. But no crap, straight to the point. It's the one reason I find startups more and more appealing.


"Are programmers top government advisors? Are they national heroes? Do doctors and lawyers and policemen tell their children that, if they work hard and practice, one day they can grow up to be a programmer? No. Obviously not."

No. Because a majority of people don't like software, programmers and automation. They don't see programmers as an example because they don't want it to be this way.

1) They are perceived as eating their jobs. You can explain increased productivity all day, but someone out of a job due to a computer program curses you.

2) It is hard to understand for laymen what they actually do. A doctor's jargon is also hard to understand, but at least solves problems visible to most.

A lot of people are borderline-luddites, others are more compromising and like applied technology as long as it serves them. But very few, I think only scientists and programmers (and the people that get rich from them) actually like where the world is going.

Not that it is possible to stop the software eating the world... It could be that the problem will solve itself, eventually, because the more of the world is 'eaten' by computers and software, the more powerful the people controlling them will be.


Dare I say it... but could part of the problem be a complete lack of unions? Not to suggest every programmer who wants a job needs to join a union, but AFAIK there are very little programming jobs which are part of a union. Here are some thoughts.

The reason hockey players have agents is because the hockey players focus on playing hockey, while the agent focuses on understanding how much value the player brings to the team, and tries to extract at the margin the price a team is willing to play. Likewise with unions, they have negotiators who understand the value that these employees bring, and try to extract how much the company is willing to pay these employees at the margin to still turn acceptable profits.

Programmers do not seem to have this - many program because they enjoy it, and companies take advantage of this fact. I believe many doctors are part of organized unions, as well as other engineering professions. I do not suggest that startups should have unions, but maybe unions should be introduced into companies which employ a large number of software engineers, that way they can worry about coding, and the union can worry about salaries being fair. Thoughts?


This. Take for example the American Medical Association:

From Wikipedia: Economist Milton Friedman, [has] asserted that the organization acts as a guild and has attempted to increase physicians' wages and fees by influencing limitations on the supply of physicians and non-physician competition. In Free to Choose, Friedman said "the AMA has engaged in extensive litigation charging chiropractors and osteopathic physicians with the unlicensed practice of medicine, in an attempt to restrict them to as narrow an area as possible."

So AMA works to increase physicians' wages. Now let's think about what the ACM is doing:

- Trying to increase international membership. This benefits ACM in terms of dues, but I'm not really sure how it benefits members as programmers. If anything, it could hurt them. Don't we face enough international competition as it is?

- Promoting programming education as part of core curriculum in high school. WTF? Last thing I need is every dipshit who ever took a class thinking he can write software.

TL;DR: American Medical Association serves its members. ACM doesn't seem to help its professional programmer members whatsoever.

Edit: I suppose ACM is serving teachers on the above points? ACM has a lot of academic members. Maybe what's need is a separate programmer's association.


Thread winner right here. CEO's have no problem making more and more even though many of the productivity gains are coming from us. The issue is absolutely that we have no representation.


Programmers do not seem to have this

Sure we do. They're called recruiters, and they're paid a percentage of your starting salary as commission by the hiring organization.


No we don't. Recruiters do not represent workers, they're payed directly by the companies. Their goal is to hire as many qualified people for as little as they can. Sure, recruiters will tell you that they have your benefit in mind, which is partly true because they want the people they recruit to work out in the long term, but they never lose sight of whom they're representing.


I think one of the reasons programmers are not paid as much is that by and large, we are seen as interchangeable cogs. There are definitely exceptions, but I think the companies that think this way are large enough to set the market rate. For example, I used to work for a large defense company that probably had more software engineers than every startup in the world combined (we hired 10% of all CS graduates in the country every year). The prevailing attitude was to pay as little as they could get away with because there is always some new naive college CS grad to replace those who left.


The thing is that programmers largely are interchangeable. Of course, you are a special snowflake etc; but at the end, the majority of programmers do repeatable, simple work, e.g. writing line-of-business Java applications, maintenance work like adapting Cobol code to work with new tax rules, writing generic GUI's that work just well enough to justify the expense given that the app has only a few 10's or 100's of users, etc.

For all of these things, when managed properly (i.e., rotate programmers enough, take care of documentation, have strict coding standards etc), you can get a new programmer who has had a 2 year degree in programming and 6 months of training on the specific technology up to speed in such a project in a week. That's not quite as interchangeable as a guy turning screws in a car factory, but it's not that far off, either.

I realize that everybody likes to thing that they are so special and that without them the world (and certainly their company) would grind to a halt), but for the vast majority of programmers, it's simply not true. And for those where it is true, there is a large part where it's only true because management allowed one person to become so entrenched in one place that they've made themselves indispensable. And not because of the nature of the work.


> you can get a new programmer who has had a 2 year degree in programming and 6 months of training on the specific technology up to speed in such a project in a week.

And this is how crap code comes to be.


Sure, but it works well enough for many organizations. Very seldom is there a business case to be made for a beautifully architected, extensible, maintainable, useable (with useability testing etc) expense tracking application. Throw something together that works well enough to produce the output required and is integrated with other systems, write a 10-page manual that explains the input formats (because sane input checking and error reporting is for pussies - just display 'data input error' when the user enters a date as dd-mm-yy instead of dd-mm-yyyy), write a 'policy' that people only can get paid expenses if they use the application and voila, you're done.

And when you need changes in 3 years time - hire a contractor on fixed fee, who cares that he will age 10 years in 10 days time; he'll move on to the next pile of crap soon anyway.


> "Sure, but it works well enough for many organizations."

Which is to say: organizations derive such fantastic value from software, that even slow, buggy, late and over-budget projects, nor a parade of such projects, is enough to cause them to reconsider their approach.

Which is the answer to the original question.

Q: If software delivers so much value, why are programmers typically paid so little and treated so poorly?

A: Because even bad software delivers value far faster than most organizations can incorporate it and there's no shortage of bad programmers.


Following that logic, most doctors and lawyers are also interchangeable for the most part. The majority of work in those fields is applying what you've been taught and trying not to screw it up.

And of course there are exceptions, but from what I've seen it seems like there are more opportunities for programmers to bring personal creativity to their work than doctors and lawyers, just because the field is less established and there are more open questions.


Sure, they are. That's the way hospitals are managed here nowadays - you make an appointment with a doctor with specialization xyz, and you don't know until you show up who's going to be there. They read through your medical history a few minutes before they call you in, and that's that. Centralized medical history tracking through automation is quickly making being a doctor a lot more routine than most doctors would like it to be.


But technically doctors and lawyers are interchangeable as well. Barring specialization, they all have similar educational background and they differ more by reputation rather than basic skills.

Of course, there's the union/doctor's association thing that keeps the supply short whereas programmers and "programmers" turn up almost everywhere.

Similarly programming skills vary a lot. Doctors and lawyers execute more and innovate less and they all have a basic level of knowledge that people are willing to pay for. Hiring a programmer is like hiring an artist: a good one will create lots of wealth while many can just fill in the blanks with something.

There's also the question that many doctors and lawyers are running their own clinic or law office, or they're shareholders of their "employer". There are a lot of programmers merely on the payroll. And being on the payroll only doesn't make you rich unless you can negotiate your salary or compensation to match your perceived personal capability. This hints that doctors and lawyers could be more fairly compared to entrepreneurs.


"Programmers are interchangeable" seems to come up quite a lot, but I don't think we have a monopoly on it: celebrities (where it is the individual's brand that sells) are the only example that aren't interchangeable that comes to mind.

One thing that may disadvantage us is that programmers are still one big blob: we don't define our specialities strongly enough to the outside world (or to ourselves). For example, teachers have their subjects: one might consider two maths teachers interchangeable but not a maths teacher and a French teacher, and that is obvious to a non-teacher. You and I might see the absurdity with swapping a web programmer for an embedded safety-critical systems programmer, but I don't think it is at all obvious to the outside world.


Funny you should mention that. I'm kinda doing both.


I think this attitude arises in part because upper management in a non-software firm doesn't have any way to measure the quality of the programmers they employ. It may be because they don't use the software, because their process minimizes the influence of individual programmers, or it may just be that they have no appreciation for all the mistakes avoided in the development process.

If management can't see the difference in value-add between a seasoned hacker and a new CS graduate, they won't pay for it.


My girlfriend's a finance lawyer for a really big firm, she earns about 50% more than me and I image that in a couple of years will probably earn even more.

To get this she is required to work any weekend clients need her to (even if it means cancelling a planned holiday), any evening they need her to (pretty much all of them) and she has to read boring stuff constantly.

I on the other hand finish work after my 40 hours and go home. If I want to get some extra work I'll ask a couple of contacts if anything is going and go to the cafe with a couple of beers and have some coding fun.

I don't accept that we earn a lot less than other professionals. My pay/hours is certainly comparable to any other professional in the area I work, and I love doing what I do. If I ever earn $500,000 I'm pretty sure the hours I put in will be astronomical, and if that happens I'll probably die before I get to spend the money anyway.


she earns about 50% more than me

per hour or per year?


About 50% per year. If you work it out hourly, I do better. I know I'd hate to work the hours she does though. I prefer to choose when I want to do extra work and have time for personal projects and other things.


Knowing programmers who work in finance, you are in fact correct.

I'd say software consulting is the sweet spot, your effectively hourly rates catch up to finance rates in a few years of productive operation in a hot field. The few months I worked like a finance guy made me realize I do not like money as much as I thought I did.


I don't see this mentioned anywhere, but one very important difference between programmers and the other professions is that doctors and lawyers have not only a high bar to entry, but a legal monopoly. There is outsourcing of legal review and radiology, but still not on the scale of programming. There's also the matter that doctors save lives, and lawyers either bring justice to the aggrieved, or keep you out of jail. OK, most of them actually don't do those things, but those are the images we have in our minds, and that's part of what makes them respectable.

If we professionalized and forced anyone calling themselves a programmer to meet a very high bar of competence, things would look pretty different. The median salary would be higher. My guess is that we wouldn't see anything like the dynamism of the startup community. Think of how slow-moving and conservative both medicine and the law are compared to programming. You could argue that that's not a bad thing, but it would certainly be very different.

I would love to see the top programmers get respect for doing what they do, instead of having to become marketers, but I'm just not sure it's how the world works. To make money, you have to convince someone else to give it to you. Most people working in a job only make it linearly because they only have a relationship with one customer. Many more fortunes are made by figuring out how to serve MANY customers than are made by finding a single customer with very deep pockets who needs you badly.


One of the big reasons that lawyers and doctors make a lot more money is because they use regulation and the coercive power of the state for the benefit of their cartel. You are going to get a top of the line lawyer and pay through the nose because your business, freedom, even your life may depend on it. The number of lawyers and doctors is limited to an artificial shortage due to bar exams and number of residency spots. Non-US bar exams and residencies, no matter how qualified, are not recognized. That means a top neurosurgeon from the most prestigious hospital in any country can not practice in the US unless he spends 6+ years in a US residency program.

Now, does that mean that programmers should clamor for more regulation in their trade? Of course not! for one, that would mean that the current lead of the US in the tech industry would be replaced by over-priced, substandard products and harm the culture of innovation and freedom. Instead, if many of these regulations in other areas were brought down, young programmers making 60k won't have to pay exhorbitant sums for simple things like getting a root canal or registering a business or fighting off patent harassment.


I am not so sure that the free market does really offer what you're saying. For example, a big problem in have in the US is that a lot of smart people don't want to become programmers (for example, because they don't want to compete with programmers from India). But it is well known that the USA has more openings for programmers than available workers. So, it seems that the free market is not doing its job of moving more workers to the field.

Regulation would have the very beneficial side effect that salaries would increase, and therefore it would encourage lots of people to become trained in the IT industry. This would not have an adverse effect in the competitiveness of US companies. It is well known that salaries are just a small portion of the costs for major software companies. Moreover, salaries for programmers in the US are already way higher than in other nations, which doesn't seem to have had a negative influence in the results achieved by these companies.


Regulation would mean people being certified by the Louisiana Board of Computer Programming for the Wizwoz system 2.0. Yuck! Some of the software industry will move abroad, but even more most large countries will start having local markets. The thing going for software is very fast innovation and adoption, leading to IT, software, mobile undercutting a lot of traditional industries and practices, and this is just the beginning. Stopping it would mean killing the golden goose.


I think it all boils down to the fact there's no such thing as free market capitalism in America. All those well respected jobs you mentioned have special privileges provided by the government. Banking, finance, law, accounting and healthcare are heavily regulated industries. They don't have to compete with third world countries nor with Americans without the proper certifications.

Call me a libertarian, but I truly believe there lies the problem.


Respect and money are two different things. Armed forces command great respect and little money. Doctors command good respect and earn good money. But Lawyers command little respect but earn lots of money.

Doctors save lives, Soldiers defend lives, Lawyers win you lives, Teachers build lives. All of them impact lives, This is where respect comes from. And Software programmers ? They make software which at best speeds up, accurate up other primary professions. In that sense, Software programmer supports the other primary professions. I say software programming is a support profession.

And then money ? Money comes from the value provided by a profession to people’s lives. As of today, Software makes our lives easier but does not add much of a value to life as other primary professions do. Software profession helps but not create/add value to life by itself.

Even for a support profession, It takes time to mature and join the big league of primary professions. Software programming is relative new entrant in league of professions. It can wait until the day it will impact lives in a way we have not known before rather than helping already known ways !


I say software programming is a support profession.

Isn't medicine also a support profession? A good doctor will proactively prevent sickness and death, while most will deal with it as it happens.


when I say support proffession, I mean 'A proffession which supports other Proffessions'. I did not mean it as 'A proffession which supports lives or people'.


I'm partial to some of this, but since others here have covered other problems with your argument, I'll limit myself to one of your points that hasn't been dealt with. You say:

Is it good for the country that Silicon Valley, arguably the best-performing sector of the economy, has next to no influence in politics

Next to no influence in politics? Seriously? All the major software companies (GOOG, MSFT, APPL) spend enormous sums of money on lobbyists to influence the passing of favourable laws in Washington:

[Google] now has 12 lobbyists and lobbying-related professionals on staff here -- more than double the size of the standard corporate lobbying office -- and is continuing to add people.

Its in-house talent includes such veteran government insiders as communications director Robert Boorstin, a speechwriter and foreign policy adviser in the Clinton White House, and Jamie Brown, a White House lobbyist under President Bush.

Google has also hired some heavyweight outside help to lobby, including the Podesta Group, led by Democrat Anthony T. Podesta, and the law firm King & Spalding, led by former Republican senators Daniel R. Coats (Ind.) and Connie Mack (Fla.). To help steer through regulatory approvals in its proposed acquisition of DoubleClick, an online advertising company, Google recently retained the law firm Brownstein Hyatt Farber Schreck.

http://www.washingtonpost.com/wp-dyn/content/article/2007/06...


I work in DC. Outside of telecom, tech is very under-represented and is ineffective at manipulating the levers of power. It is getting better, but to put Google's 12 people into perspective, the AMA has over 200 DC lobbying staff.


Any idea how the "old-line" tech companies are in comparison? Does IBM, for example, have any effective influence?


This is a startling array of claims, which is unfortunate, as there's a reasonable debate to be had here.

Unfortunately, I think starting off with a tl;dr rant, including such howlers as comparing the growth rate of a developing and a developed country isn't the way to get going, not to mention citing Microsoft's current leadership as evidence that programmers can't get anywhere. Erm, I vaguely recall someone else running Microsoft on its way to success... Bill someone?

As an aside, given the vast amount of political crackpottery - plenty of which is in evidence here at HN - among programmers, I have to say that I'm not hugely saddened that congress isn't stuffed with developers.

There's a serious debate to be had here, but not with this wild, ranting start from a throwaway account.


One reason salary is too low for programmers, a normal engineering grad joining Infosys, TCS, Accenture, Cognizant etc. in India, is paid approx $10,000 and you guys compete with them for jobs.

PS: I am an Indian, working in one of those jobs.


This is a fantastic post. It is well written, and I agree with many of the authors points. Far from being angry, I think that the majority of people reading here on HN actually appreciate this type of critical analysis, and I think that it is a shame that it had to be posted on a throwaway account. However, I would like to present some alternative viewpoints for a few of the issues brought up in this post.

"As a doctor, however, someone like this - a top professional at the peak of their career - would probably make about $400,000. Partners at big law firms commonly net a million a year. Investment bankers are making several million (post-crash!). Top management consultants easily clear $500,000. Even a top accountant - probably a partner at a big 4 firm - would make two, three, or four times as much."

Hold on a second. What is the point that you are trying to make in this post. You say that you are talking about comparing computer programmers as compared to other highly skilled professionals, but then you narrow your focus to the highest percentile in each category. How many lawyers are partners in a big law firm out of the total number of lawyers? How many of these top management consultants clear $500,000?

The top performers in every industry will always make a salary that is amazingly higher than the median. However, unless you know the exact distributions of the salaries in each industry you can not meaningfully compare top performers. What good is it to know that a certain lawyer makes a million dollars a year without knowing how probable that outcome is relative to some more dreary alternatives.

When I started reading your post, I started reading it with the expectation that you were talking about the general market for programmers. Then about halfway through, it seemed to me that you had switched to talking about the very highest performers in the highly skilled labor market. Well, if that is what we are going to be talking about, then we should focus on it.

Look, the highest performers in the computer programming field are no longer called computer programmers. They are called CEOs and there is a high likelihood that they are very, very well compensated relative to the best performers in many other industries. However, as I said earlier, it is pointless to throw around anecdotes about how this 99.999th percentile individual made millions or this one made billions.

So, let's get back down to earth, and try to find some passably good numbers (not perfect, but better than nothing) to use as comparison points. Let's look at some numbers that may be more relevant with what someone around the 50th percentile would experience. All of the following links display ranges for salaries in each field. No, they are not the best samples available, but they are better than going without any data whatsoever.

Note: As stated on the site - all compensation data shown are gross, national from the 10th to 90th percentile ranges.

Physicians: http://www.payscale.com/research/US/People_with_Jobs_as_Phys...

Note: Physicians must have several years of residency as well as an M.D, so a programmer would already have 5 to 9 years of experience compared to a physician that is just beginning.

Lawyers: http://www.payscale.com/research/US/Job=Attorney_%2f_Lawyer/...

Lawyers in the states typically need a J.D. before they can actually begin being a lawyer, and law school is very expensive. I should also note, that the gravy train is slowing down dramatically for lawyers - http://www.economist.com/node/18651114

Software Engineers: http://www.payscale.com/research/US/Job=Software_Engineer_%2...

Sr. Software Engineers: http://www.payscale.com/research/US/Job=Sr._Software_Enginee...

Sr. Business Analyst: http://www.payscale.com/research/US/Job=Sr._Business_Analyst...

System Admins: http://www.payscale.com/research/US/Job=System_Administrator...

Computer Programmers: http://www.payscale.com/research/US/Job=Computer_Programmer/...

Management Consultants: http://www.payscale.com/research/US/Job=Management_Consultan...

Investment Banking: http://www.payscale.com/research/US/Job=Associate_-_Investme...

Accountants: http://www.payscale.com/research/US/Job=Accountant/Salary/by...

Sr. Accountant (numbers look a little screwy here): http://www.payscale.com/research/US/Job=Senior_Accountant/Sa...

Looking at those numbers, it does not seem to me that there is anything particularly wrong with computer programming as compared to other highly skilled professions. As a matter of fact, given that one can become a programmer without needing additional certification, it seems to me, at least, that computer programming is a great field to be in.

"What \"programmers can get rich in startups\" really means is \"entrepreneurs can get rich in startups\", whether they're programmers or bricklayers."

What is the percentage of bricklayers that get rich creating a startup? I don't have the number offhand, but I do know that there is no "Silicon Valley equivalent" for bricklayers. If there was really that vibrant of a bricklayer startup industry, then, due to agglomeration, you would expect there to be at least a few geographical areas where there was a high concentration of bricklaying startup business being conducted (think something like Wall Street).

"I think it isn't. I think the country would be better off if MIT computer science students, like their neighbors at Harvard Law School, could dream of growing up to be President. And I think we'd all be better of if computer science wasn't just seen as a major for socially awkward nerds."

I agree completely, and, actually, I agree with many of your other points as well. That's the thing though, when you are talking about programmer respect it seemed as though confused several different "types" of respect - compensation, entrepreneurship, political pull. With regards to the first type of respect (compensation), I disagree with you because the data for compensation suggests that an alternative hypothesis may be true. With regards to the second type (entrepreneurship), I cannot definitively definitively say either way but neither can you because the data needed to compare the numbers of successful entrepreneurs in different industries does not seem to be readily available.

With regards to the third type (political pull), I agree with you, but I think that perhaps their are deeper things. I have some hypothesis:

1. Perhaps the skills that it takes to do well in politics in the U.S. are somewhat orthogonal to the skills that it takes to build a multi-million dollar software firm from nothing and run it? How could an engineer win an election where the campaigning generally consists of 5 second soundbites and smear campaigns?

2. Maybe the problem is the general youth of the industry. The software industry is in its infancy. Maybe, over time, as it grows deeper roots, it will acquire more political power and influence? This is a fairly likely hypothesis.

Finally, I would like to address one last point:

"When the government wants to bring in more workers from overseas - which obviously lowers salaries, and reduces job security - who do they bring in?"

The problem is actually not so obvious:

* Are the programmers entering the country working in the same exact fields and at the same levels of expertise as the programmers that are local? If this is not the case, then the impact on pre-existing salaries would be negligible.

* Are the programmers entering the country located in similar geographical areas to the programmers that are local? If this is not the case, then, again, you are not likely to see much of an impact.

* Do the programmers entering the country require additional training as compared to local programmers? If this is the case, then they would have lower compensation not because they are willing to work for less but because they are being compensated in the form of additional training.

* Is the industry rapidly growing? If this is the case, then it may be conceivable that existing programmers and programmers entering the country would both benefit as the growing industry has room for them both.

* Of course, one can always increase pay through artificial scarcity, but the problem with doing this is that it ends up costing society by resulting in a deadweight loss - consumer and producer benefits that are never obtained due to artificially high market prices.

* There are quite a few other things, but this post is now more than long enough, and I really need to get back to work.


If there was really that vibrant of a bricklayer startup industry, then, due to agglomeration, you would expect there to be at least a few geographical areas where there was a high concentration of bricklaying startup business being conducted (think something like Wall Street). Wait, think about that for a second.

There is a concentration of tech startups in SV because the internet lets them sell to the rest of the country without issue. Brick layers / construction are far less mobile because you need to be at the construction site to build a brick wall. Now nationwide startups represent a fairly small percentage of successful small businesses their advantage is how quickly they can go from multimillion dollar companies to multibillion dollar companies.

PS: Read the millionaire next door and you find a lot of people in the use that made a few million from those bricklaying startups. The main difference is it often took them 20 years to get where software companies got in 5.


Schwarzenegger made a ton of money in a literal bricklaying startup, which was a big part of his early success; he built a multimillion dollar business out of it in a timeframe more like 5 years than 20.


I didn't know that. From his bio:

"Bricklaying Business

In 1968, Schwarzenegger and fellow bodybuilder Franco Columbu started a bricklaying business. The business flourished both because of the pair's marketing savvy and increased demand following a major Los Angeles earthquake in 1971"

"By the age of 22, Schwarzenegger was a millionaire, well before his career in Hollywood."

http://arnoldaloisschwarzenegger.com/biography.html


FYI, that "marketing savvy" involved going to door to door and giving homeowners a free appraisal of the state of their chimneys, which would invariably collapse. Because apparently it's a lot easier to push over a chimney than it looks, especially if you are a bodybuilder. Schwarzenegger admitted this on the Johnny Carson show back in the 1980s.

http://blogs.ocweekly.com/navelgazing/2007/04/your_multitask...


"There is a concentration of tech startups in SV because the internet lets them sell to the rest of the country without issue."

I don't think so. If the Internet was all that was needed to explain this concentration, then that would not be a sufficient explanation because it would prompt a new question. If geographical proximity was due to the Internet, then why Silicon Valley vs some other location?

I think that it is more likely that there are a high concentration of tech startups in SV because the concentration of tech companies in SV offers positive externalities to firms that locate themselves in SV. This is not a very good article (even by wikipedia standards), but I think that it could help to paint a picture:

http://en.wikipedia.org/wiki/Economies_of_agglomeration

But then, you are right. If tech companies needed to be within a hundred miles of their customers in order to transact business with them, then they would not be able to benefit from agglomeration effects. But I think that there are probably other things that factor into as well - margins, competition, regulations, etc.

"Brick layers / construction are far less mobile because you need to be at the construction site to build a brick wall."

I agree, this is true. Perhaps I should have been more selective with my examples. One more thing that is also true is that a side effect of their lack of mobility is that it is more challenging for them to scale vis-a-vis the technology companies.

"PS: Read the millionaire next door and you find a lot of people in the use that made a few million from those bricklaying startups. The main difference is it often took them 20 years to get where software companies got in 5."

The OP cited bricklayers as an example of million-dollar startup companies not being unique to the computer industry. I think that your point about how challenging it is to scale more conventional "mobility-challenged" businesses is actually a very convincing argument against the idea that starting a computer company and starting a bricklayer company offer comparable potential rewards.

Holding all other factors constant, if bricklayer startups are more geographically limited than tech startups, then it is reasonable to hypothesize that tech startups have a higher probability of becoming million-dollar companies.

Also, with regards to the Millionaire Next Door, I think that it is worth repeating the old axiom: the plural of anecdote is not data.


I agree with most of what you are saying. However, SV still generates a smaller fraction of millionaires than most people in the tech world might think. Around 200,000 Americans made over a million dollars last year and most of them took fewer risks than the classic raman profitable startup does. A tiny fraction of startups generate billionaires but when you start looking at expected payout and risk it's harder to justify as anything other than the best option based on your current skills.


I think (and have no evidence to support this whatsoever) that the temperate climate may factor in to the concentration of bootstrapped ventures in SV as well.

My logic is that homelessness in somewhere like Juno Alaska would be FAR worse than being homeless in the Valley, so in that sense, a bootstrapped Valley startup with a short runway is more risk averse than that same startup somewhere with more extreme temperatures.


I'd like to add another point to this: in the case of doctors, you've also got to include the various types of doctors. (As the son of a general practitioner, I'm particularly sensitive about this.)

General practitioners make wildly less than the various specialists which abound in the medical profession. Now, GPs can certainly make a good living; in rich areas >$200,000 a year isn't uncommon. At the same time, for, say, dermatologists, >$200,000 is the average salary [1].

(I, for one, think this is backwards: GPs, both in private practices and as hospitalists, are the primary diagnosticians and almost certainly save more lives than any other kind of doctor.)

And don't even get me started on residency; doctors deserve every ounce of geld they get for putting up with that.

Anyone, not directly relevant to OP, but I think that saying, "hey, doctors and lawyers are rich, we should be too" is a bit off the mark. Many doctors are rich. Not all.


Why does medicine have the hazing ritual known as residency?


My wife is a physician, so let me chime in. It's not so much a hazing ritual but a very carefully constructed mentorship program. It's intense, and in some cases maybe overly so, but the goal is to immerse them into the environment, and to provide a lot of experience, while being carefully supervised by more experienced doctors. After three years of this, you come out really knowing you stuff.

In software, we don't really have structured learning like this, which is unfortunate. Something that would be great to have to really make us into a true profession.


Perhaps we will, once that software development has as much history and tradition as medicine does.


Don't we, to a small degree already? They are called implementations. Often over promised, under-staffed and under-scheduled time-wise. Long hours are spent, a truckload is learned, experience is gained, etc. Unfortunately, there doesn't seem to be a 3-year limit.


That's actually fairly common in fields where mistakes can be dangerous. Most places refer to it as apprenticeship, but it's fairly common in even less glamorous trades like electrical work, carpentry, etc.


The difference as far as I know, is that apprentices have normal working hours, while residents are sleep deprived to counterproductive levels and they could be barred from becoming a doctor at the end of it. If residents had normal hours like the rest of the doctors, I wouldn't nearly be nearly as apprehensive about it.


I'll hazard a guess that specialists tend to see patients with specific insurance-covered issues, and those issues are the expensive ones. GPs deal with everything and not all of those ailments are worth much, billing-wise, yet take the same amount of time.

Or, 1 hour of a GPs time will usually result in a lower-return ailment than a Specialists 1 hour of time.

Or the problem of the Craftsman vs. Assembly-Line Worker. It may be better product, but you can't make 'em as fast. In this case, the Assembly Line people only deal with expensive items.


Yeah, I think you're absolutely right. Insurance really drives this, too: HMOs, especially, are constantly pushing for GPs to receive less and less for a given procedure. Combined with the role insurance companies play in (effectively) deciding what a patient does or doesn't "need,* insurance post-1990 has been trying very hard to convince doctors to do a worse job.

My father, for example, had a practice for over 20 years in a small, working and lower-middle class town. He was notorious for taking patients in late and for long waiting times. And everyone wanted to see him. He was also notorious, as it were, for consistently finding and correctly diagnosing issues that other doctors failed to find. He talked to patients about the health in detail, with physicals often taking an hour or more. He would "forget" to charge folks who he knew were struggling to make ends meet.

For over ten years, this worked fine. My family was, frankly, rich, with yearly salary approaching $200,000 dollars at times. Starting in the 1990s, my father ran into HMOs, head-on, if you will. Over the next ten years, his monthly salary consistently decreases until his overhead exceeded his revenue, and was forced out of private practice.

Now, my Dad might not have been the model of an efficient capitalist, but he was a damn fine doctor. I, at least, think it's a damn shame that we live in a world where that kind of care is systematically eradicated.

So, yes, I think it is that GPs deal with "less expensive" issues, but that's also because they deal with every issue. The goal of a medical system should be to avoid entirely expensive issues. The fact that specialists are employed frequently enough (i.e., demand is high enough) that their labor is worth so much is a systematic failing of the medical system.


What happened to your father is just plain wrong.

Growing up, we had a family doctor that we went to for everything and he referred us to a specialist if need be, but otherwise, he handled everything (which was pretty rare, luckily).

I'm slowly trying to establish the same relationship with a new doctor here (well, technically a Nurse-Practictioner).


> How many lawyers are partners in a big law firm out of the total number of lawyers? How many of these top management consultants clear $500,000?

Even with doctors, to be solidly in the above $200,000 layer, you pretty much need your own practice established and smoothly running (with nurses, staff, and everything) -- not every M.D. out there has that, and the effort required to get there is equivalent to the effort required to start your own business (with 80-hour work weeks etc.)


Also guys, doctors are saving lives everyday. I would say as a programmer I do not have a that direct an impact on someone's life. I agree a doctor has to setup their own practice before they make that much money. They also go through a lot of school for a very long time. Comparing a programmer and doctor is not the same in my opinion.


Someone wrote the software for the equipment they use. I was recently at the hospital for surgery, and there were scant few pieces of equipment that didn't have some kind of programming in it.


And what % of people writing software write that kind of software? It's a really small number.

What % of doctors have an impact on the health of their patients? Almost all.

We are dealing with statistics here.


In percentages, sure. In the raw number of people, I imagine the numbers are a lot closer than you imagine.

As for the remaining percentage of people, we may not deal with their physical health, but our work can impact their financial or family's well being fairly easily. Some of the code I have written has touched billions of financial transactions that have decided the future of whether people will be able to buy a house, or a car, or any other line of credit.

Not trivial.


Maybe a small percent of software is written for life-critical systems. That's because software is a huge market. But a growing percent of life-critical systems rely on software. How many adverse outcomes (even death) are you willing to accept caused by programming failures?

You know, a big part of the prosecution's evidence in the Casey Anthony trial turned out to be false; it was due to faulty software. She could have been imprisoned due to a software bug! http://en.wikipedia.org/wiki/Casey_Anthony#Evidence

Now consider that anybody can call themselves a software engineer without even picking up a book. Next time your life hangs on the proper functioning of some computer system, think about that.


> They also go through a lot of school for a very long time

And that school is very expensive. Also, many highly-paid positions carry the risk of getting sued by the patient's side for having made a silly mistake (can happen to anyone) or even for things that were unavoidable but which the patient's side believes otherwise.


People should be paid according to the value they provide, not their need. (Correcting for basic necessities.)


That'll be ideal. But realistically most people are paid based on market/political factor.


Maybe not the software you write but software is used to run all sorts of things, such as medical equipment that could easily kill. Part of the articles claim is that it is the pervasiveness of software that warrants higher compensation, social status, etc.


Funnily enough, many political representatives in China are engineers.


However, look at the age of those politicians (at least in China). They became engineers in the 60's and 70's when China still had a planned economy. They tested well in the national exams, which meant they likely went to an engineering school. Likewise, the fact that they tested well meant they were put on the political path. I wouldn't necessarily draw the conclusion that they are politicians because of some advantage an engineering background gave them, it's more likely the card they drew.


India too. "If you are not an engineer, you are nothing" I was told that by a friend from India once.


I don't want to come off as arrogant but I should say this. People generally do not select engineering as a profession in India- it's one of the default professions for most of the middle class.

I have been involved with computers since I was 6, so for me it was a pure choice. But most of my friends, some of them working for big name SV places don't really love or care about software or technology. In fact, some of them actively hate their jobs. Unlike in America, where people actually go to computer science because they love it. In India it's just the default way for a better life.


+1. I would hate to classify any Indian politician as an engineer. More like chose the easiest career path to get a decent amount of respect + a degree and moved into politics.

Influence can buy you grades and admissions in India :/


IIRC many political figures in Latin America are doctors.


Indeed, here (Uruguay) it's, along with lawyers, the most respected profession.

Former (and probably future) president Dr. Tabaré Vázquez is an oncologist (and is an actual practitioner in between political campaigns).

So are several prominent politicians (my own political party representative, Dr. Daniel Radío, is a medical doctor as well)


Could that be because they don't have to win a media driven popularity contest to 'win' office?


Or that they have thousands of years of history where civil servitude is a scholastic meritocracy.


There are a number of points I'd like to disagree with, but to start:

- $150,000 is much less than a top-flight engineer like the one you're describing might make; it's not out of the realm of possibility for what an engineer with a good pedigree might make his first year out of school, if he went to work for a big company.

- The engineer went to school for four/five/six years and then went to work. The doctor who earns $300-400k went through a four-year university degree, four years of medical school, and a residency or fellowship before he started earning money. Some specialists, like neurosurgeons, take at least 11 years after getting their undergraduate degree before they really "get their wings." Not only are their then-substantial salaries offset by the huge delay in getting those salaries (residents make, what, $35k?) but they also have to pay for things like malpractice insurance, which can be in the six-figure range.


> The doctor who earns $300-400k went through a four-year university degree, four years of medical school, and a residency or fellowship before he started earning money.

The market doesn't care about what you have done to get to where you are. If you spent the better part of a decade to acquire a Ph.D, you are not entitled to earn more money waiting tables at the local restaurant.

The upper bounds of earning is only limited by the value provided by the work. A good doctor or lawyer can provide a lot of value (health and freedom are, to most people, the most important things in life) and they are usually in short supply, thus they can command the high rates.

If programming jobs top out at $150,000, it means that either there is no shortage of people to do the job, or that it is simply no value in having someone do the work for more. In the latter case, if true, means that programming really isn't that important.


Yes, but the market does care about long schooling when it is a requirement to practice the profession. That's why it drives up wages in Medicine and Law.


It only cares a little bit in some professions, such as humanities professors. They almost certainly went to school for longer than the lawyer did, but make far less. So the market value in this case is closely related to the work that is being done.


I agree with what you're saying. I was just trying to point out that strict education requirements (e.g. state regulation of the profession) do influence wages within the profession. Parent made a point about PhD waiters being paid the same as non-PhD waiters. But that is only true because restaurants have no requirement to employ advanced degree holders. By contrast, in Law and Medicine, you are legally required to have that education. The pay difference there is huge: a lawyer with a JD makes much more than lawyer without a JD. Because you can't even be a lawyer without a JD (under most state law).

My point is about the relative pay within a profession, rather than a profession relative to other professions.


The market still doesn't care. The requirements just create an artificial shortage of workers, hence driving their earnings towards the value ceiling.

It is said there is a real shortage of programmers, so programmer wages will also be moving towards the value ceiling; which appears to be $150,000 (though I think there is room for debate there).


150K right out of school? I've never heard of anyone making that much in the valley, maybe 100K tops.


I've heard $130k for top students is not uncommon.


Downvoting me doesn't change the fact that I've seen offers for top CS Stanford grads for $120k for undergrad and $130k for master's, and that was a few years ago.


It's definitely not outside of the realm of possibility. I know several people at that level right out of university (undergrad)


How did they manage that? Is there some esoteric qualification that raises their value by 50-100% over other fresh graduates, or are they working at some company that happens to pay 50-100% more than Google and Facebook for fresh grads?


Salary? Sure. But if you include bonuses and other compensation that doesn't seem too far fetched for Google, Facebook, Apple and the like...


What's "Other compensation?" I don't think bonuses usually total $50K at these companies.


Bonuses + stock options + RSUs + perks can easily total $50K. Sometimes more.


Some of the mentioned professions, law, accounting, medicine, legally require a degree, a minimum number of years invested in school, continuing education, and a license. Then there are malpractice suits, longer work hours, doctors being on-call, etc. If you fuck up as a doctor, someone dies. If you fuck up as a programmer, you might cost someone some money. Usually nothing happens, you just fix it.

Computer programming is one of the very, very few fields where you can make a lot of money doing very little work without having even a GED.

Plenty of programmers make 80-100k/yr, and a great number of lawyers make less than that. How many state-level attorneys make <70K? You'd be surprised.

In summary, programmers have other advantages than pay, and still get paid rather well considering the low barrier to entry in that profession. My work situation is pretty plum, and I don't exactly have a formidable resume. I'm grateful. If I were aiming to be a doctor, lawyer, or accountant, I'd still be in school. And in the long term, I'll end up making more than if I pursued one of those paths, I'd wager.


Regarding governance - most ambitious politicians appear to be extroverts. I'm not an engineer but there are many in my family and they're not the most gregarious sort. Is this an inaccurate stereotype? I wonder if despite highly intelligent, moral attributes, our technologists, research scientists, etc. are not attracted to the intense social demands and / or rewards of politics. Are our smart, worthy introverts "opting out?" If so, it's a shame. But on the other hand, no-one will be coming by to tap you on the shoulder for such roles, even my neighborhood councilman has to hustle.


One of the many differences between programming and medicine, law, etc is that entry into the latter fields is tightly controlled by governing bodies. Anybody can read a programming book and start working, but only so many law students graduate each year. So in that sense it's not that programmers' salaries are artificially low, it's that those other professions pay artificially well.


At least in the U.S., there is no effective pressure by the profession to keep the number of practicing lawyers low.


Ah, you're right. Though while it doesn't put a hard limit on the number of lawyers, it does limit the number somewhat by the requirement that you have to attend 3 years of an accredited university and then pass the bar exam.


If you know the law but do not have a law degree, you cannot take the bar examination in most states. In California and less than four other states, you can do something like an apprenticeship in order to qualify instead, but (in California) you must be at least 23 to begin. A friend of mine with a solid understanding of the law and a desire to practice law cannot enter the profession because he is not 23 and does not have truckloads of money.


Barriers to entry in programming are still low, and programming itself is still fiercely creative and competitive. Just look at all the languages, frameworks and platforms.

By comparison, law and medicine have long since circled the wagons. It used to be that to be a lawyer, you only needed to pass the bar in your state of practice. Sure, many aspiring lawyers did attend law school, but the profession was not hermetically sealed. Today, you have to pass the bar and have graduated from an accredited law school, at tremendous cost. Same story w/ medicine.

So these $400K salaries do not translate to $400K in value produced. Maybe $100K, maybe $200K, but the remainder is rent-seeking. Meanwhile, your modest salary of $75-150K if anything undervalues your product. And this is good! You have a produced a surplus. You are the engine of progress. Yes the rentiers will take their cut, but the rest returns to society and benefits society.


Doctors, Lawyers etc usually work and bill by the hour. Be a top software consultant and you can make $200k-500k a year as "easy" as those other fields. Of course its still not easy to make $500k a year, but it also isnt that easy for the other jobs you mentioned. You need to be really good, have good clients with deep pockets who have lots of work for you and its probably easier to reach that kind of money than with other jobs.


agriculture is important, crucial and fundamental to human beings, while farmers don't usually get paid too much.

Maybe lawyers shouldn't get that much money. Sometimes, they just don't contribute to humankind. Look at the patent war.

Maybe programmers are underpaid, But I think someones else are overpaid.


It's not that lawyers are overpaid, it's just that they don't compete with the world for prices and they all agree on certain prices in their own market. You can't outsource a lawyer to India because he most likely doesn't know US law. Also we programmer have this extraordinarily poor ability to SELL ourselves. We should try to factor in the time we bill the time it took us to get to that kind of knowledge we have, like pharma companies factor in the cost of research and then sell a single blue pill at 20US a pop!


There's no reason a lawyer in India couldn't learn US law. He probably wouldn't even start very far behind US citizen. The real problem is that he can't set foot in a US courtroom without a visa.


There's an amount of legal work currently outsourced to India - things that can be legally outsourced, that is. Currently, the class of things that can be legally outsourced is small (research + writing + document review.)

random google survey:

http://www.pangea3.com/ http://sqglobalsolutions.com/ http://www.sunlexis.com/ http://legal-process-outsourcing.com/ http://www.legaleasesolutions.com/

Here's a list last updated in 2008: http://www.prismlegal.com/index.php?option=content&task=...

To me, this is indication that there's a flood being held back by legislation.


Where I am lawyers have to do two years of supervised training in an existing law firm on top of a degree and a postgraduate qualification.

You might be able to do that remotely - but it would be pretty difficult to do some things (e.g. how do you attend court?).


Yeah right, even a German lawyer could learn US law, except he wouldn't even be able to call himself a lawyer in US, cause even without the visa he couldn't practice the profession.


No, the main problem is that he needs a license to practise US law. The most you can get him to do is review or draft documents.


right. Software engineering is a global thing.


China is not on the right track, that's for sure.


I'm a Chinese student. Believe me, I abandoned Chinese food for Carl's Jr for good reasons. China is not on a right track.

China was an inferior student of the class, he used to get F for his final exams, but now he has improved to C or may be B, Admittedly he has been improving really fast, but this is because he was so bad that he had a large room to improve. How hard to improve from A to A+?

You mentioned that Chinese leaders are engineers, that's true. But I can tell you why, because 25 years ago, there was no such thing called "finance" in China. Did they have it in the Soviet Union? North Korea? Cuba? Also, in a country without a real legal system, why would people want to be a lawyer?

Those Chinese leaders became leaders, not because they are excellent engineers, but because they have connections. In fact, I seriously doubt how they got their engineering degrees.

I agree with you that engineers should play more role in politics and government. I'm willing to see more presidents with engineering backgrounds.


Well, but the Chinese society does encourage young people to pursue an engineering degree.

In China, people have the impression that engineering students are the smartest, whereas in the U.S. people think smartest student go to law school.


We don't get any respect because people respect those with power (notoriously not programmers) and those who can put on a good show (sport stars, politicians, celebrities).

Carrying the world on ones shoulders (if that is indeed what programmers do) is not something that gives respect.


Software is eating the world and we are part of that world, so software is eating us too!

But unlike lawyers, doctors and bankers we don't have artificial barriers make the industry protected.


So what we really need is a proper professional society, or even unions.


Don't you think that the real reason for their prosperity is that doctors, lawyers and bankers create their wealth collectively and sometimes collaboratively robbing people?

They create work for themselves with some hardwared awareness of their needs.

One doctor doesn't do all the job on yourself, sometimes does a bad job on their subject matter and you get to spend thousands to have this fixed.

Lawyers set up laws that everyone needs to follow and you need other lawyers to help you with that.

I don't even start talking about bankers ...

When programmers become congressmen or create a closed industry like medical services then we can talk about wealth y developers.


To the business world, you work in IT. They don't understand the difference between the person who plugs in the monitor and the person who designs their perfectly modularised accounting software landscape.

It sucks, but there is a major education gap amongst non-techs about what computer people do.


(Lots of great comments in this thread, on all sides of the issue. Bravo, HN!)

One thing to keep in mind when comparing programming to law and medicine: a high-school dropout can be an adequate programmer and earn a good living writing Rails (between 65k and 90k at start, depending on location). Most other high-end white collar jobs require extensive education. A physician has to put himself through college, pre-med, medical school, residency, possibly a fellowship, and only then commands a high income. A 30-year old orthopedic surgery resident making 45k probably isn't thrilled that he has another five years of indentured servitude before he can claim a serious income and start paying off 250k of medical school debt. Law school is similar. Using an MBA to switch careers into finance is similar.

In essence, programming jobs can trade off relatively high income early on for an income which maxes out in the late 20s or early 30s. Law and medicine start with much higher requirements, take much longer to spin up, but have much better-defined career paths leading to higher income.

Entry-level Wall Street jobs (I mean real Wall Street jobs, not IT) work a little differently, in that they do offer excellent income up front and a lucrative career path, but require a degree and high GPA from a top school to get in. So they aren't really representative of an opportunity which most people have.


The world runs on electricity, education, petrol, food, construction, clothers... what is really happening and what Andreesen should be saying is that now software is totally mainstream, not a hobbie or a hackers thing. And as so, we are part of society. But, you know, most people work in important industries and yet doesn't have the respect they deserve. Think in food supply or water supply, when was the last time you found someone famous related to water suply, which who was awarded and so?


The lawyers/MBAs and doctors will be disrupted. This is already happening... Then they will be on the streets. all the low level jobs in Backoffice and law is getting outsourced. So if u r getting into law... u should actually be capable of creating value. Just look at all those industries that Apple Amazon etc are disrupting... No Newspaper also means the news paper does not need expensive lawyers, MBAs etc. Of course you could say Apple,Amazon,Google etc. will need the lawyers MBAs etc. But these few players need far less external help and glue coz they have captured most of the supply chain.

Imagine a device where u put a drop of blood/urine etc and out pops a diagnosis. Imagine a pharma company in a box which synthesizes a medicine on demand using basic raw materials. Then there are diagnostic solutions like IBMs Watson...

Education and healthcare will take much longer than Print/Retail/Music/Advertising/Communications to get disrupted... When these get disrupted, they will hurt more than they needed to coz of enjoying the protectionism.

There will always be demand for Good Doctors/Teachers/Programmers/Lawyers/MBAs... But those whose existence depends solely depends on protectionism or monopolies are going to see their jobs disrupted.


I think one issue that maybe takes into account is that all the professions mentioned that do have respect (except wall street bankers of course) are professions that directly interact with people.

Software Engineers on the other hand build a product, which faces the user, but you never really get to see the programmer or interact with him. Our impact on society is a second step from the software that we create.


Once the fruits of someone else's labor is a concern, you've lost.

Stay interested and keep working hard.

We're people who build things.

Our fortune is a natural one -- not money and not even respect.

It's that we are getting paid to learn new things every single day.


>We're people who build things.

True. But if I'm building something for someone else I'd damned well better be getting paid for it.


Interesting post. I have to agree with you that there is something wrong with our line of business. I think part of the problem is that we are still feeling the affects of the "lights out operations" fad from the nineties. This was when "Big IT" convinced all the companies to automate an outsource. That's when we first became a liability to our companies instead of an asset. Since then there's been a couple of distractions in the IT industry (Y2K, dot.com bubble, and the current get-rich-with-the-cloud phase), but for the most part I still feel business sees us as an unfortunate necessity. My kids have had a keyboard in front of them since they could sit up straight, but neither of them are interested in an IT career. I think we are a lot like plumbers now; everyone wants a flush toilet, but nobody wants to deal with the pipes.


There is a big confusion here between personal credit and objective physical properties.

Software is 'eating the world' because it is the most super-efficient building material ever invented.

You could say the wheel 'ate the world', but not because each person making each wheel is a genius, but because of the general physical properties and value of roundness. The overall benefit is not a matter of individual credit or respect, it is a matter of physics.

We should be paying the total programming workforce for the total (personal) effort required, not the absolute (objective) 'value' returned. The excess of value is gain: you do not need to pay anyone, it is a free gift from physical reality.

Now, whether programmers' pay compares 'fairly' with anyone else is still an open question, but the physical facts of software being great stuff does not (or should not) seem to justify one side or the other.


Some of the professions you mentioned like biglaw firms, bankers, management consulting are lucky to operate very high up the "value chain". Look at the Motorola-Google deal: $12,5b purchase prize, and a $2,5 billion fee that Google has to pay Motorola if the deal falls through for any reason. At these high dimensions the exorbitant bankers/lawyers fees are more like a rounding error. Of course you can say it is not "fair" in a higher sense that they get to capture this value, but to say they don't add value is unrealistic as well.


I'm surprised that so many of the comments/replies to this post accept the premise that programmers are underpaid and don't get respect.

Everyone I know who writes code is making a hell of a lot more than people who aren't. The people I know at Google aren't making $150k. They are making a lot more and would be making a lot less as a management consultant or a politician or whatever else.

In fact, to say that top management consultants clear $500k is true, but top engineers clear a lot more, both of those industries strike me as massively paid industries.

Then there's banking. Engineers at banks make ridiculous amounts of money just like non-engineers working at investment banks.

Sure, there are engineers working for $60k just like there are management consultants working for $60k.

But I know a lot of unemployed management consultants, and I don't know a single unemployed engineer.

So I think people have raised very interesting thoughts about why doctors make more or less, but I couldn't get past the premise of the article. I think engineers are making a ton of money, and they deserve a ton of money. I think they get a ton of respect, and they deserve it.

Maybe that's just what I'm seeing. But particularly when you then say that teachers are paid more than the average American, I start to wonder who this mythical "average American" is, particularly knowing that my sister is a high school teacher and has to buy her own chalk. She would probably disagree with the article based on all the corvettes and teslas sitting in the Google parking lot.

:-)


Programmers are janitors.

Everyone wants software, but no one really respects the developers. Just like everyone wants a clean building to work in, but no one really respects the janitor.


Great thought provoking post. I think two sentences in your post truly answer the question "Why Don't Coders Get Any Respect?"

"But for some reason, unlike just about every other profession, programmers seem to have an aversion to asking for more pay and more respectability." and "And I think we'd all be better of if computer science wasn't just seen as a major for socially awkward nerds."

As a non-programmer, I think the perceived lack of communication/influence/negotiation "soft skills" has become the group's reality. Obviously there are exceptions, but the natural tendency is to think programmers are introverts, who don't innately have or haven't been taught the skills involved in negotiating higher salaries and gaining power through office politics/informal communication methods.

Maybe the act of programming in the US creates a natural selection bias towards a certain type of person and maybe that person isn't a natural fit in positions where communication, both formal and informal, is a key requisite. Or maybe the programmer just doesn't care. Either way, I think these skills can be learned to some extent and wouldn't mind seeing more programmers in power positions in companies and in the government.


Overall good post, but I have one problem. You say that because China is run by engineers, it is on the right track. First, economies are very complex and there could be several factors that are causing China's economy to grow, I doubt having leaders as engineers matters too much. The US economy has grown too, and it wasn't run by engineers. Shouldn't we also give the lawyers and politicians in charge credit for the times our economy was growing, instead of grief for what's happening now?

You also say: "Sure, they have problems with pollution and corruption, but so did the US when we were industrializing. Overall, though, they're on the right track, and the US is not."

If engineers were better leaders than lawyers, wouldn't they be able to industrialize with minimal pollution? Instead, they're industrializing in similar ways that we were.

Also, China seems like a lousy place to live compared to the US with regards to personal freedoms, but I wouldn't go out and say that lawyers care about freedom and engineers want to govern with absolute control.

Sorry if I seem to be focusing on only 5% of the post, I just wanted to get that thought out. All that said, you bring up some very thought provoking points.


"To be one of the highest-paid, most-wanted jobs. It isn't. Why not"

Because the barriers to entry are really low and there is a vast supply of people willing to have a go.

And, I have to say, compared to many fields most development isn't actually that difficult - I suspect a reasonably intelligent and motivated person could probably be trained to do 95% of all development jobs within a year or so.


What I don't understand is why you are trying to compare programmers with doctors and lawyers. Why not choose fields that are more closely related and let's see how the average software developer is doing vs. those working in those fields?

For example, let's say, electronics engineer - I would hazard to say that the average software developer is earning higher than the average circuit designer.

Sure, you are saying that software is pervasive in our lives and extremly important - but all software runs on some hardware, which was designed by an electronics engineer.

Engineering and science related careers have never been amongst the top paid jobs in the society we live in - and you could argue for many engineering fields that they are amongst the most important jobs in our current economy (be it construction engineers, automotive, aerospace engineering, energy production, whatever). I don't really see why programmers should earn much more than people working in these fields.


Anecdotal but I was recently contracting for a place that was developing web software for the first time. Even though I had pretty much wrote all the code on their system with them having hired and gone through 5 other programmers, the comment that caused me to leave was

"Why are we paying this guy when we could just hire someone from high school for $10/hr?"


You can also outsource the task to India for a similar amount, or even less, and get someone who will be better than a high schooler. That's the thing that should make some North American developers nervous.


I don't know about that. I've been approached a number of times by people who tried to outsource cheaply to India or China and then realised half-way through the project it was a mess and now they needed someone to try and salvage it.

It doesn't make me nervous at all. If someone wants to hire developers to build a complex system at $10/hr then I encourage them to do it and see how it goes.


In my opinion, software is a risky business, like hollywood. You probably can act better than Depp but you are struggling because you have not yet been noticed or given an opportunity.

Your best bet is to love doing what you are doing - acting or programming. Also plan your life according to what you are making and be content. Leave the rest to fate.


Aside from the many good points being raised here. I'd like to add 2 more:

1, in terms of making money, there is a mis-match within programmer world. You earn respect from other programmers by being great programmer, not by making a lot of money. So you are in a hard-spot if you strive to be a great programmer and rich.

While on the other hand, most dentists, lawyers, bankers's status within their own circles are highly related to their financial success.

2, the world of programming does have barrier of entry, not to the general run-of-the-mill programming jobs, but to programming jobs creating high values. You can come off the street and make a website, which don't make you rich, but you can't just start doing financial programming, or work for Google without some proven track record.


Software is just automation. You need to know problem domain to get any respect.

Traders in Hedge Funds will always get more respects than quants.

Physicists and Electronics engineers in Semi industry will always get more respect than software engineers.

Sales guys will get more respect than programmers in companies like EMC or VMWare.

Etc.


Because our main job skills do not revolve around self-promotion and manipulation of others.


If everyone visits a restaurant every now and then, why don't waiters get any respect?

If everyone needs a house, why don't builders get any respect?

If everyone needs their streets clean, why don't cleaners get any respect?

If everyone's children need babysitting, why don't baby-sisters get any respect?

If you don't think you receive enough money and respect being a programmer, why don't you do s/t else, being a doctor or management consultant for example?

Why someone has to pay 500K for a job that s/he could hire a H1B person to do at 1/10th the rate?

Comparing job to job is like comparing orange to apple. Let the market decides how much software engineers should earn and are respected. If Adam Smith is correct, the market is pretty good at that.


I think there are some good points here but I always find the premise behind posts/articles/arguments like this a little silly. I don't think there's any correlation between respect and salary. And getting too caught up in what others think of you and your work is effort/thought/time wasted. Pick a career you like, do it well and respect yourself. If you get more out of it than that, great, but don't expect any more than that. Setting out on a "quest for respect" is more than likely going to end in disappointment regardless of whether you're a doctor, lawyer, engineer, bricklayer or some poor, poor programmer.


Architects are the original programmers. They are the master builders who conceive of the built environment that no computer programmer could live without. They fulfill a basic need and (arguably) practice the highest form of art. They complete a level of education comparable to any lawyer and most doctors. Yet even an architect who runs their own successful, mid-size firm would be lucky to turn over $150,000 working 70 hour weeks. Did I mention they take on the liability of life, safety, and well-being of the general public with every decision?

Just sayin'... compensation isn't logical, and it sure as hell isn't fair.


> Given how important [education] is, then, you'd expect [teachers] ... to be one of the highest-paid, most-wanted jobs. It isn't. Why not?

The wages for teachers and programmers are set the same way as the price for any good, e.g. bananas.

Not by vague notions of importance, value, or respect, but by supply or demand.

When people start arguing that foo good (profession) with a low price (wage) is inherently more important than bar good, I think of a person arguing that bananas are more important than apples and should have a higher price, disregarding their supply and demand differences.


> Saying there's a "shortage" is economically the same as saying that "we don't want to pay you guys enough to meet the demand for labor".

Indeed, it's like saying that there is a shortage of super yachts for people.


Work hard and replace all those professionals with robots. But make sure that the robots are under your control. At that time all of the payments will go to the computer professionals.


The content of the orignal post may be questionable, but I feel it was written in a way that would trigger a heated debate. For that, mission accomplished. There has been many wise comments, but they all choose to take a branch of the post to dig into. Not to blame them, as the question raised here is basically:

    The software industry has huge impact on human lives 
    but such impact has not been materialized in terms of
    both cash and social status for its practicioners. 
    True or false? 
And it boils down to too many things to talk about all at once. Maybe it would help to break them into sub-topics to make it easier to link the seemingly disconnected but insightful points posted here:

1. Are lawyers and investment bankers overpaid? If they are overpaid, one can't say software engineers are underpaid by comparing to them.

2. So the software industry impacts lives, but is it all positive? Maybe society isn't that much better off with all this digitalization. There is a chance that the total value of the industry is being inflated.

3. Are we concerned that the median and average salaries of software engineers are too low (a), or are we concerned that the elite programmers are not being paid as high as top attorneys (b)? We can solve (a) by raising barriers to entry, much like in other elite fields, but is that a good thing to do? As for (b), elite programmers are now called startup founders. If entrepreneurship is made easier in the software industry, then things seem fair.

4. Now speaking of social status, I think programmers aren't cool because nerds aren't cool, not because they are paid less. Pick a programmer and an accountant with the same salary, and the accountant is more likely to shine in social outings. But if the whole industry raises its average salary, then yes, the social status of being a coder will increase. We are back to the question raised in (3a).

5. About political power, I think this is more of a problem with motivation. To be motivated enough to run for office, you have to be hungry for fame and power. However, it's a good point that the government could benefit from having more top engineers. See a related post: http://lemire.me/blog/archives/2011/08/22/linux-and-the-fina...

6. Is China really on the right track?


Bill Gates, Larry Ellison, Jeff Bezos, Larry Page and Sergey Brin started as software developers and among the richest people in the world. Top tier IT professionals - directors or C level, successful entrepreneurs or finance standouts, all make gobs of money by almost any professional standard.

Software developers have unique opportunities and a culture of meritocracy. (It's hard to imagine a freelance actuary.)


It's true and false for me. I think the main problem lies in ourselves. We must go around with their heads held high and announcing to the whole world: we are a programmer. The real problem is that we ourselves, the programmers, do not see the value of our work. Thanks to the doctors, people do not die and are cured of their diseases. Well, thanks to the programmers, computers can run programs, and increasingly, higher quality. I have programmers friends that his dream is an MBA or something else required to climb in the profession. To my mind, I think are wrong. They tell me that not want to be 50 years old and continuing with writting code. I differ from them because if I want to be 50 years and still write code. I understand that the first change require that we change our work perspective. It's needed to understand that programmer it's an inportant piece of the current society. Without programmers, a lot of companies die directly. The programmers, are currently working the lines of the future and they are the responsible of stablish and maintain the social status. It's important understand that only the programmers can do the programmer work and must appraise the done work. Until the programmers don't understand that programmer work it's important, serious, complex, with responsibility, that requires constantly study, then the society does not change the view of the programmers. It's our work demostrate the importance of our work, the value of our thoughts and our contributions to the society (as the doctor that cure the diseases).


A simplified view is supply and demand. There's only like 600 major league baseball players and their average salary is 4mm. Rare group to get into. There's fewer doctors than engineers or coders. And it's not like you can jump on elance and have someone remove your tonsils. And with greater supply comes greater variability in skill and salary.


It strike me as odd that nobody here talked about happiness and about enjoying her job/work life. I read in some book from Dr. Martin E. P. Selligman that law is the profession in which people are more susceptible to depression and other mental health issues (statistically speaking). So much for your millions and society's appraisal, eh?


Programming is art. And artist usually don't get paid too well. Artists either have to be entrepreneurial or very good at their craft in order to get rich.

Like most arts, programming can be learnt by yourself without any teacher, but there are also schools, universities and books for it, if you want to know more about the background and history.


One major flaw with comparing programmers to doctors and lawyers is that there's no acknowledgement of liability. It is far more often the case that a lousy lawyer or doctor puts lives at risk than it is a lousy programmer does, and liability is one of the most justified determinants for compensation.


Is dress code a factor? Would you want your lawyer or doctor to have Star Wars toys and Nerf guns in their office?

I propose "Formal Friday", where programmers wear ties and nice shirts (or skirts, as appropriate).


> Would you want your lawyer or doctor to have Star Wars toys and Nerf guns in their office?

Well, that depends... Do I get to play too?


One data point: companies that hire programmers seem to work a lot harder at making it a fun/good place to work than companies that hire laywers.

Perhaps programming is just more fun?


Yes, though I think this plays into the poster's point about respect/prestige.

Right or wrong, a popular perception in the USA is that a lawyer wears nice clothes to work, and likes to unwind with a round of golf, fine scotch, and a cigar. Whereas a programmer is an overgrown teenager, wearing ripped jeans, playing video games, and drinking Red Bull. Of course the lawyer should earn more than that guy.


Yeah, I think it's important to have the 'professional' costume for that reason.

I mean, I've seen startups advertising their company kegs in recruiting. Like that's going to get you any respect from anyone but an early 20-something...


Case in point : Yelp


Supply and demand, can't really say much else. That's usually the biggest driver for wages and something you have neglected to recognise.


There is nothing stopping MIT graduates from having government positions. The PM of Israel, Binyamin Netanyahu, is a graduate of MIT.


You have to earn respect no matter what profession your in. Zuckerberg is a Coder. Sergey and Larry, Bill Gates, Jack Dorsey, etc.


Zuckerberg didn't earn his respect through coding, neither did Bill, really, they were mostly opportunists. Besides, they're outliers in the grand perspective of things; your average programmer in the street is significantly less paid and respected than your average hedge-fund manager.


Your average hedge-fund manager also pays a 15% income tax on the pretext that he is risking his own money. When programmers get to systematically win asymmetric zero-sum games against the lower 99.9% of the income earning population, they will be accorded all due respect.


It's really hard to get rich in the world by following an easy path. All things considered (prerequisite education, initial debt, work hours, desirability of everyday work), the average cog-like computer programmer is somewhere close to the top.

If you want to make money, stop whining and go make it. Negotiate a better salary with your company. Find someone with a problem and solve it. Realize an inefficiency in the world and fix it. The people who make money and love life don't do it by lobbying.

Here's a secret: you don't have to have any education to make good money. My stepmother started breeding German Shepherds when I was a child. She now sells them for $2000+ each, for family pets (http://minternsgermanshepherds.com if you're interested). She didn't even finish high school. She now pays a couple teenagers to help with the laborious task of caring for dozens of dogs.

My brother turned down a pharmacy scholarship to join the Marines. By the time he finished his five year tour-of-duty, he had established himself in the field of performance diesel trucks. He's helping people make 7,200-pound trucks do 10-second quarter miles (think Fast and the Furious). He runs his own garage (http://dieseladdiction.com if you're interested). He gets there at 6 AM and doesn't leave until 5 PM or later. He's booking people a month out because his schedule is so full, and he just keeps raising his rates. He now has two guys working for him and will be looking to hire another soon.

By and large, the people who make lots of money do it by working really hard. They develop their expertise to a point where there are perhaps one or two competitors even close to their level. The product they provide is something that people want and are willing to pay money for. They grow their business beyond themselves and enable others to make a living, too.

I don't want to work that hard. I'm happy to be able to use my expertise to improve my stepmom's or my brother's business operations. I can build them websites, automate some of their clerical tasks, and otherwise support what they do. But I don't lose sight of the fact that they are the ones creating the value in the first place. They put in the hard work to make the lives of thousands of people better in some small way, and I just grease the gears.

People want great pets. People want fast trucks. People don't want computer programs, they want better lives. When programmers actually align themselves with something people want, they do just fine.

If we want to be able to clock in at 10 or 11 and leave by 6 or 7, to enjoy what we do, to avoid taking full ownership of the product, to be generally stress-free, to not take some fucking initiative, then no, sorry to tell you, we're not going to do better than a well-above-average salary. You don't get rich by being lazy.


Plumbers and Garbage Man don't get much respect either, even though they are very important functions and everybody needs them.


HFT programmers earn a lot, so its all about creating value http://j.mp/p6Sl45


The guys from MIT who invented a then not explicitly illegal card counting technique earned a lot, it is all about creating value http://en.wikipedia.org/wiki/MIT_Blackjack_Team


They didn't create value, they figured out a way to purloin value out of the casinos. Every dollar they gained was a casino's loss.

Much of programming is indeed like that, especially in the finance industry, where your gain is usually someone else's loss. There does exist true value-creating programming though. Games are an easy one; presumably the reason a customer pays $10 or whatever for your game is that the customer perceives more than $10 in entertainment value.


The non obfuscated link above:

http://news.ycombinator.com/item?id=2828538


China is definitely not on the right track...


Writing software != Selling software


Great article! I totally agree with the points.


新的技术带来的是新的成本


I think you make several excellent points, and I unexpectedly found myself agreeing with you. I thought $150k was a lot of money, but had never stopped to think about the fact that the other alumni of my school who became doctors are making far more.

I think the reason we're seeing this is that programming has been commoditized quite successfully by an industry that saw they needed programmers but that did not know how to judge the quality of a programmer. Doctors certainly vary greatly in quality, but doctors are unionized after a fashion by the AMA, and they have managed to put into place artificial supply controls (regulation and licensure) that keep incomes higher.

The software development industry has gone the other way- instead of limiting the number of programmers (not necessarily a good thing, but it would boost incomes) we've developed quite a bit of process to try and make programmers interchangeable. I'm talking about much of the "best practice" and even the entire attitude that programmers should not be "lone guns" but part of a homogenous collective of coders. Everything from pair programming to test driven development to code reviews serves the process of making programmers homogenous and interchangeable, and thus more easily replaceable.

I also think that the Legal and Medical and Finance professions have developed for centuries in an environment where they were able to artificially limit the number of practitioners, and artificially boost the "Establishment credibility" that they received. I don't think most politicians are lawyers because lawyers are good leaders, but because lawyers were able to establish that career path as one of their own.

Software development, in contrast, is much newer, and currently is much closer to a free market.


"but had never stopped to think about the fact that the other alumni of my school who became doctors are making far more."

A CS degree, which many programmers don't even have, takes 4 years. There are quite a few 'programming' jobs for which having a CS degree is being overqualified, but let's say that a CS degree is the baseline. To become an MD, with the specialties that pay the amounts mentioned here, one needs to get a 4 year degree, then pass the MCAT, then go to medical school for 4 years, and then do 3 to 8 (!) years of residency, in which you do 60 hours on a slow week and have regular weekend and night shifts. So that's 11 to 16 years of studying. You only get paid in the residency, and even there only around US modal wage.

Never mind that nowhere in this time period, you are guaranteed a high-paying job. You can do your full residency and be told at the end that they don't consider you fit to be a doctor.

Do a quick total lifetime earnings comparison in Excel. Don't forget to include tuition and resulting student debt payments. You'll see that the general picture painted is flat out wrong.

(don't even get me started on lawyers - there is vast unemployment under lawyers, only a very small percentage work at firms that pay the amounts mentioned, and of those only a very small percentage make partner, after working 80 hour weeks for 20 years. Why do you think the US alcoholism rate is twice the national average amongst lawyers? Hint: not because they have the easy-money lifestyle being suggested here.)


I'd buy this argument if a CS degree qualified you for a programming job. It doesn't. It doesn't even mean you can program. You're expected to learn all of the skills that a programmer uses on the job on your own time. What if instead, you went to university for a pre-programming degree (CS) that was math and theory heavy, then went to a 2-3 year programming school, then went into some established shop for your 3-8 year residency?

My guess is that the profession would become a lot more attractive to the average kid that is very smart, but doesn't have an interest in law or medicine. Other guesses are that security would become absurdly good in general, and a lot of tools would be perfected.

Instead, the importance is placed on loving programming, because you're going to have to love figuring out what you need to be educated in and love providing for that education out of pocket, and with no credentials to show for it. So you're on an equal playing field with anybody off the street when dealing with an HR department, and at a disadvantage against a CS graduate who may not be able to program to save his/her life if you didn't go to school to learn the math, but simply learned your profession.

To have a capital-p Programming educational track like Law or Medicine could really be a boon for the profession in most ways in my opinion. Could somebody tell me where the Perl class is? Because I can't seem to find it or get student loans to cover it.

The one thing that I think would be problematic would be an injury to Free/Open Source software, because practitioners wouldn't feel the necessity to put that evidence out there that they actually can program, like surgeons don't feel like they have to stream over the web live operations they are doing for free.


%| I'm not sure what you're arguing here, or if you're just trolling. Are you seriously suggesting that people complete a 12 year program after which they need to join the 'programmers guild' (APA, if you will) before being allowed to write code? Are you seriously saying that somebody who writes his volleyball's club website at home as a hobby shouldn't be allowed to do so until he completes a 12 year study program? I guess there is some sarcasm in your post that was lost on me.


To the extent that people have to do a 12 year study program to do first aid or put on a band-aid, I'm suggesting that people should do a 12 year study program to put up their volleyball club's website or turn on their computers.


I honestly think that most people in the software field have no idea of the level of personal responsibility that junior doctors and lawyers are given and what that can mean in terms of stress levels.


To be fair, not every programmer faces "Oh noes I will lose a cat picture" as their maximum possible downside when coding.

I worked in a town where programming errors could easily causes crashes. There was talk of that actually happening once, although on investigation that probably wasn't actually true. When I say "crashes", the hardware at issue would routinely way several tons and be moving at 60+ miles an hour.

I do not mean to cast any aspersions on the huge levels of responsibility and mental stress involved in reviewing purchasing contracts.


Sure, there are programming errors that can have significant impacts, and cost lives when things go wrong. When that happens, it's so unusual that it's front page news, warrant man-years of investigations, and entire PhD theses are written on methodologies to avoid that error. For software engineering in mission-critical systems, there are methodologies to test and retest, to test the tests and evaluate the whole system from all angles, and the final product is the responsibility of a team who have months or years to take every possible precaution that the software performs as it was designed.

On the other hand, trauma room surgeons have minutes, sometimes seconds to decide whether to cut left or right of the trachea of this guy who was just rolled in and of whom they know nothing, sometimes not even the name, let alone medical history; and oh they need to hurry because there's another guy being rolled in who is also leaking blood out of every possible orifice, plus from the 3-inch hole in his chest.

Of course it's easy to make comparisons between people at two opposite ends of the spectrum - sure, that first year in the discovery room in a due diligence isn't going to make a world of difference if he misses one contract with a company 10 years ago that went out of business but for whom, technically, the acquiring company could still have a 10k USD liability if they miss one little stipulation in the contract. My point isn't that programmers never do important things, or that everything that doctors or lawyers do is mission-critical; but in the aggregate, and in the overall scheme of things, I think it's a clear and shut case that the potential influences of wrong decisions or errors by doctors or lawyers are more severe, in terms of potential human suffering, and harder to prevent, than those by the most programmers.

Take even a lowly divorce or pro bono criminal defense lawyer - forget to file that motion? Whoops, you just cost your client half of his life savings and he'll be flat-out broke for the next few years, or he'll be in jail for years. I mean, I like to thing that my work is pretty important too, but let's get some (objective) perspective here.


Any environment where you were developing software that had that impact on safety and where there wasn't appropriate testing and health and safety checks would probably result in someone from management going to jail if someone was hurt.

In a legal/medical environment it is usually much more personal and it is the individual professional who is held responsible - potentially criminally.

There is also the fact that doctors, and many lawyers (although obviously not all - I should have qualified that) do things that have an immediate impact on people (treating the guy having a heart attack, sending that murderer to jail, preventing someone accused of some horrible crime from being railroaded, telling someone that they will die of cancer etc.).

[Note: I am married to a litigation lawyer - so I am biased!]


> A CS degree, which many programmers don't even have, takes 4 years.

I don't know where you can get a good programming job if you don't even have a university degree. You can certainly freelance, but then there are no guarantees.

The more frequently picture is that, to get a really good job (at Google, for example) you frequently need a MSc, and not few software engineers have a PhD too.


It's harder to get entry-level work without a degree, but after you have about four years of work experience, plenty of people will hire you, especially startups. (I know because I'm working in SF as a college dropout)


I can only directly compare myself to the people I know. I know a couple lawyers, one judge, and several doctors, all who are alumni of the same school as I.

I'm more highly trained, and engage in more ongoing training than any of them. All of these professions involve ongoing training, though for lawyers and judges, once they get their degree the need drops dramatically. In fact, speaking of these people I know myself, they all have practices that are pretty routine with each case being very much like the others.

In my experience, as a software developer, I am constantly having to learn new areas of expertise. For instance, NoSQL has become relevant in recent years, and on previous jobs I had to learn the intricacies of fairly arcane businesses. My lawyer and doctor friends don't do this level of continuing education.

Also, you seem to be debating a point I'm not making. I never said it wasn't risky or expensive to go into those careers, in fact, that is part of the point I made: In both cases there are gateway organizations and laws that exclude people from the practice, preventing competition in salaries.


Well I obviously can't say much about your situation, since I don't know you. Maybe you do have several degrees and you are more trained than any of them. But let's do the math - your lawyer and judge friends have done a 4-year degree and a 3-year JD at the very least. Let's say you've got a regular 4-year CS degree. That means they trained for 3x1800 (let's be conservative) more hours than you did; that means that you would have to have spend 270 hours per year (almost 34 days, or more than 6 full time weeks) each year, for 10 years, before you'd even have had caught up with them. That's not counting any potential in-company skills training, and the mandatory MCLE training required just to maintain your bar license that laywers go through.

Of course, I too have read numerous books about various topics in programming, and I've played for 1000's of hours with languages, tools, etc. I could count that as 'training' and say that I'm more highly trained or do more ongoing training. But frankly, the time I spend on that is not 'training', because it's way too inefficient compared with 'real' training. Most programmers that I know who are programmers-by-passion and not programmers-by-occupation are like that. Again, maybe you're different, and I'm sure that there are many people out there much more disciplined and talented who have had more training than the average programmer. But saying, in the aggregate, that programmers have much more training and do more ongoing education than other professionals, doesn't pass the smell test. I'm not even saying that they have less (although I suspect they do...), but certainly not more.

Anyway, I do agree with your last point that the amount that people are paid is not directly related to the amount of work they put into getting to where they are; and that organizations like the AMA and the ABA are relics from the era of guilds and drive compensation for their members up; and need to be abolished. Unfortunately the trend seems to be the other way - more gateway organizations under the guise of 'ascertaining professional quality' and 'protecting consumers from incompetent practitioners' - but that's a different discussion.


Very true, in Austria many politicians are farmers or teachers because our party system encourages these professions into politics though unions, agricultural chambers and so on. They are represented out of proportion because they have a way to receive political training that is compatible with their original career.

The legal profession in America has a huge upstart politically as votes are required for many positions in the legal system, thus allowing the professionals to acquire experience with campaigns, raising money, taking over public office.


If you're willing to work doctor hours doing valuable things, you're going to make much more comparable salaries to doctors.

Doctors work absurd hours for years, then many go on to keep working absurd hours.

Doctors who don't run practices don't make the same paychecks, and again, same works for coders. If you don't run a consulting house, don't plan on making 200-500k a year.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: