There are many differences between the professions of programming, medicine and law. So it's hard to make sweeping generalizations and use that to draw definitive conclusions.
Programming is very different.
Agree programming has less barriers to entry. But the barriers to entry for doctors and lawyers are not imaginary. They're real. Are they arbitrary and "made up" via government rules? Of course, and perhaps that's what you meant. But they are real. If you willfully ignore or bypass them you will suffer real consequences to your person including fines and imprisonment.
And if you fail to meet the high barriers to entry for doctors and lawyers, the likelihood that you'll make disastrous errors is pretty high.
I think the vast majority of times one needs to use the services of a doctor could be handled by someone with far less training and certification.
So in practice , non-doctors might be able to offer better medical treatment , than you average doc.
The vast majority of medicine could easily be done by the intelligent layman. Like programming.
The proliferation of nurse practitioners and physician assistance may provide something of a release valve to counteract the elitism, scarcity, and costs associated with doctors at least until there is reform within the medical profession itself.
eg. A trading platform, an advertising platform, etc.
This is not that rare.
Almost every doctor or pharmacist you deal with on a daily basis can say something or do something that, if mistaken, can end up getting you dead or seriously sick -- or at least fail to prevent you from becoming so. A dead website can be fixed and brought back to life. Dead humans cannot. Well, for now anyway! :)
I guess you will now ask me "why the hell did you choose programming then"? Yeah, I could earn more money with less work, with less thinking. But it would be much less enjoyable. And I guess this is the reason why programmers get paid less. We love our job. And we are willing to do it just for the sake of doing (and a little money for living).
So i finished the course and am looking forward to going into practice. As far as having a closed and (seemingly) elite community goes thats actually not such a big problem. Textbooks are available to anyone. The closed society should just be considered as a quality control. It is possible to get hold of any of the equipment required for medical practice but when you go to a doctor (a member of a profession) you are seeing an individual who has their competence vouched for and is subjective to professional discipline should their service be found to be lacking. I think it is difficult to justify the rates doctors get paid but self regulating professions do at least have quality assurance.
I also agree that there is a lot of university education in terms of what is learnt didactically is unnecessary for most of the day to day job but this totally misses the paint. Even though pharmaceutical tools may be fairly limited our understanding of pathology and epidemiology is continuously expanding fairly rapidly and what it teaches you is to educate yourself rapidly as this information emerges (and particularly in veterinary medicine collate this information sensibly when the information you want is not directly addressed in the literature - something that can only be done with a thorough understanding of physiology, immunology etc). Secondly since this discussion seems to be focusing on edge cases a lot we should not forget emerging diseases since these cannot be properly addressed by someone that is limited to the day to day 'do the job skills'. An excellent example of this is the diagnosis of blue-tongue virus when it first arrived in England.
As for wanting to be in a profession where you have to think all the time, I think it is possible but I think you need some kind of developer spirit. To do this you need to try and get yourself to some kind of cutting edge. This is easier to find with programming because it is a much newer skill set (and with veterinary medicine as compared to human medicine). To this end if you consider specialising and doing clinical research or doing something that involves policy making, or practicing somewhere where resources are fairly limited then I think you can have an intellectually rewarding career. Any career can be as interesting as you make it. If you find yourself bored because you are having to treat the same thing over and over again either change your specialty in medicine (pick a different "style" or "philosophy" [you may see the problems the patient has differently and take a different approach in addressing them]) or go and try address the root cause of the problem. You miss also that what is interesting in programming is that problems that you are faced with also seem to be changing rapidly as do areas of new development. I'm sure new tools would eventually get boring if the problems became static.
I think you're spot on about picking a career that you enjoy. I you've shown as well how important it is to consider where your at regularly and make an effort to keep what yo do interesting. The implication that all programmers love their job is as easy to disprove as other professionals not loving theirs. Providing you have some control on the development of your own skills I think any job can be satisfying. Don't use this love as an excuse for poor pay. Price yourself to show how much your are worth.
I wanted to debunk the myth saying that medicine is the holy grail of professions. It is not. It's overrated, over-regulated and over-idolized. It's quite like the music industry. And it has to change, but changing it will be much more difficult than changing music industry.
The author defined a professional as someone whose work you have to take on faith. Not being doctors or lawyers ourselves, we're usually unable to evaluate the quality of legal advice or medical care we're receiving. The best we can do is seek another opinion.
The author drew this line because he feels it necessitates the things we expect from a profession: shared ethics and a rigorous certification process. Professions require would-be professionals to jump through a number of hoops to make sure that all who deal with these professionals receive some minimum level of service from someone with a minimum level of competence.
Have software developers arrived at this point? Can someone check the quality of what they receive from a developer without being a developer? If they can't, will this always be true?
http://news.ycombinator.com/item?id=1477763
Apologies in advance for engaging in the clichéd 'submit a Wikipedia page' pattern!
I work on a free browser extension called After the Deadline. It picks a lot of this stuff up. It didn't pick up this particular example, next time I deploy an update to our service it will.
You may want to check it out, it works here on HN too: http://www.afterthedeadline.com
(as a note, I tend to make the same types of errors)
I think the thing that separates licensed professions from unlicensed ones , is usually issues of safety,i.e. when the price of an error is just too expensive.
So truck drivers(which is a pretty easy to verify job - are goods delivered ? ) are licensed, and have a conduct code("sleep every X hours" , speed limits ) , and computer maintenance technicians aren't, even thought it's more complex to verify their job(are updates installed ? is the computer secure ? ).
That's the QA team right there. And the ones I work with are very good at it!
Oh I don't know, the idea of programmers being better paid has a certain attraction to me :-)
On a more serious note, the way that lawyers and doctors (and some other tradesmen in some jurisdictions) have managed to illegalise competition is wrong and needs to be stopped. Vets can perform operations for a tenth the cost doctors can -- is this because vets are less competent? On the whole, no.
I'm pretty sure that salary dose play an important part of people wanting to get into these professions so while you have bright people doing them it is not always what they would be best at. So there is a bottle neck when applying for higher education and I think the problem is when you are 18 you have no idea what will make you happy when you actually graduate. By that point your pretty well financially committed to the profession and thereafter you'll be saying t least the money is good.
Also while I don't like monopolies how you break them is important and hard to do.
Yes it is. The whole point is that certain professions have got politicians to pass laws making it illegal for people without the right piece of paper to compete with them.
As Adam Smith said: "People of the same trade seldom meet together, even for merriment and diversion, but the conversation ends in a conspiracy against the public..."
Since medicine historically was distributed and built by community doctors , the classic competition limiting strategy of using big monopolies didn't fit here.
So the medical profession uses many different strategies for limiting "distributed" competition.
In fairness to lawyers and doctors, they serve needs that have a larger societal impact thus the need to to have more stringent process of instilling the right training and enforcing ethics.
Programmers are perceived to be be neutral in this regard.
People understand this concept as it applied to lawyers and doctors. Most folks frown on ambulance-chasers and boob-jobs plastic surgeons.
I mean, PE (or CEng in the UK) is an "elitist, protectionist mechanism" but it hasn't hurt innovation in aviation or civil engineering, has it?
Programming isn't a profession, it's a craft. The trouble is that traditional crafts are not really valued any more, as their purpose has largely been supplanted by mass production. So, we have no current role models for how to organise ourselves.
We already have mass software production.
Firstly, obviously, some aspects of programming are crafts-like. When we write conditionals as if(4 == x) instead of if(x==4) (for languages where variable assignment in a conditional is legal but not what you want), that's craftsmanship. Analogously, part of the process of designing a building is drafting, and that is a craft. A common error is to think that drafting is the primary task of architecture (at least, that's a common error about programming).
Less confidently, I would argue that the closer you get to the metal, the more craft aspects appear (without claiming that these aspects dominate), and that when we use a compiler, part of what we're getting is automated crafting. So we see three cases where we take back that crafting aspect into human hands...
First, for a new platform, sometimes some of the work is done by hand.
Second, many programmers _enjoy_ the craft of programming, and so practice it for fun. For example, code golf is craft.
Third, sometimes crafted is more appropriate. We usually prefer a cheap mass-manufactured physical object (high-quality, but not customized), but sometimes we want something handmade for the situation. I think that writing assembly by hand has some parallels with this (not to argue that writing assembler is more craft than design).
Outsorucing, Java schools churning out schlubs, seem like mass production analogs to me.
- You won't drive your car cross country to a cheaper mechanic. - You won't get a lawyer from India to represent you in America. - You don't go to a doctor... well thats changing isn't it? Too bad doc education still costs so damn much in America.
Its about group supply and demand. Don't forget that homes cost and arm and a leg and that a programmer in a particular neighborhood should be able to afford a home in that neighborhood and should charge accordingly.
I think most programmers, and even non-programmers, don't really understand how much domain specialization affects their value. To me, this is "localized knowledge" just as much as any mechanic, accountant, or lawyer has.
We all know programmers who would be sunk without it.
(We do hardware/embedded software)