Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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: