288 comments

[ 4.9 ms ] story [ 330 ms ] thread
If what's described is true:

a) Tons of money to be made b) Tons of unmet demand

Why the outsourcing market isn't growing as much as it should? There are plenty of places with more than capable programmers which are usually paid in peanuts not only when compared with SV, but when compared to people in the same country.

That smells like a niche waiting to be disrupted. He who solves the trust and quality perception and control issues, will become very rich.

The problem with outsourcing is not 'quality perception,' it's the actual quality.

The good programmers around the world command good salaries, whether out-sourced or not.

In the end it doesn't matter whether you're in India or the the US; there are just not that many great programmers around.

That's why I said quality perception and control. This is, making sure you are producing what's needed.

As to the rest, I'm baffled. How can you even think it doesn't matter where you are?

Different cultures value differently different jobs. For example, I know of places where programmers are not valued much and it doesn't matter how good you are, you'll not earn more than a corporate salesman.

Maybe it doesn't matter for the top 0.5% who end up going to work for Google or Facebook anyway. But there are lots of jobs for merely above average programmers, which are very well compensated in the US, but not at all well elsewhere.

disrupting culture sounds hard. Software isn't a field students in china work towards because there just isn't as many jobs there as other fields. The pay is fairly mediocre so top students from universities aren't exactly dying to get into that field. It may take at least a generation or two to convince the masses that software engineering is just a good of a job as chemical engineering.
The point is you don't need to disrupt that culture. That culture is in fact what would permit the idea to work. There are badly paid good programmers already in China and elsewhere.

If you can manage to produce quality work and convince people to hire you consistently (big if, I know) in the high paying market, you can leverage the existing programming population oferring wages a lot higher.

There's a lot to be said for face time. Given an average contractor, if you bring him on site and meet with the team for 3 days a month, I bet the ROI easily doubles.

Getting value out of outsourced workers is a skill more rare than programming itself.

And that's why it's a perfect niche for disruption: High barrier to entry, lots of money in the market. Yummy.
But usually that high barrier is erected by incumbent companies in that field, whereas the "incumbent" in this case is mindshare and perception. I'm not so sure a sole individual or company could change that easily... it's like when slavery was abolished, it still took the USA quite some time to treat african americans as equals.
My personal observation has been that the difficulty and set backs in the corporate adoption of outsourcing have not been due to the lack of capable programmers.

It has been associated with the lack of regular collaboration between the outsourcing resources and the customer. As a whole, this industry has not perfected the art of specification. An analysts with the ability to comprehensively specify software requirements is a scarcer resource than a programmer who can properly print a binary tree.

The lack of adherence to proper standards surrounding specification is generally compensated by ongoing collaboration between development teams and stake holders (hence the wide adoption of SCRUM). Separating the two entities with geographical, cultural and language barriers causes a break down in collaboration and that allows the deficiencies in specification to cause the project to fail.

I would argue that a bad team of coders with a water-tight set of requirements will have a greater chance of success than a team of rock stars with vague and incomplete requirements.

"more than capable programmers which are usually paid in peanuts" Where does that happen? I have troubles imagining this.
One of the biggest reason there aren't that many 50-year-old programmers is that a lot of programmers move to other roles in the same company, like line manager, project manager, product manager or various sales roles.
Agreed - the emergence of career progression (ie monetary progression) based on technical qualities rather than managerial ones is only a fairly recent phenomenon... at least, in all the companies I have worked for (large enterprise).

It's not surprising many former programmers of that vintage are in the managerial ranks now. Whether that is a good or bad thing, I'm not sure.

I think it's mostly a good thing. Having worked yourself as a programmer makes you a better manager of programmers in my experience.
I've seen all kind of different programmers. The ones that are not in it for the money and the ones that hate their job but won't switch because it has a good pay. It reminded me of this animated movie about 'what motivates us' http://www.youtube.com/watch?v=u6XAPnuFjJc The essence: don't underpay and don't overpay.

More and more programmers are looking for good company cultures with a good (but not highest pay). Money will make your life easier but won't make you happy.

Hooray. That is exactly what drives me too. The culture, the people, the actual work is more important.

Working for a huge amount of money in a corporate machinery is a brain killer.

Yes! But make enough money so you don't have to worry leaving the lifestyle you'd want.
This is a nice response to the other blog post. It is amazing how privileged your life gets when you can do black magic with code that most people don't even dream of ever being able to understand.

However, I disagree with this statement: "So I'm not planning to quit programming, not because it's such a great source of joy by itself, but because it looks so good compared to just about anything else."

Well, I wouldn't want to miss the high I get from being in the zone for four hours straight either. I wonder if the author implies that programming is no longer fun to him or if its just not the deciding factor. To me, the fun in coding is really a big part of my overall happiness and so contributes a large part of the decision to stay in the field.

It's a lot of fun, but not the deciding factor. I have a great gig now, but it won't necessarily last, and I won't necessarily be able to get a similar job (it's in hardware architecture and software tools and there are likely to be less jobs in these things over time, though not necessarily). I'm not sure the typical programming job is that much fun for me, but it's decent enough and the question always is what you'd do if you decided to leave the field.
I've often times felt guilty that this is almost exactly the reason why I program. I like programming but I also like the salary and benefits. I can then use my 5-9 time to do all the other things I like: cooking, working-out, hiking.

That said, I recently founded a startup, where the work is more stressful and the pay is less and I'm hoping for it all to be worth it financially in a few years. This is often not the traditional "Why I founded a company" story you read about hear on HN, but I wonder how common (or misguided) it is.

If financial independence is your only goal, you've stared a startup for the wrong reason.
If you're into programmer and not in it for the passion there is a high chance that you're a mediocre programmer.

But indeed that doesnt matter. Because the demand is high.

But for me, this is what drives me: working with an excellent team on a product/service that is heavily used and comes with technical challenges.

If managers, business and bad programmers interfere with this, i'd rather stop and get a decent job.

The money is not the main driver.

The tricky part is defining passion. I think the key element is that insatiable curiosity that pulls you in when you're doing it. The desire and drive to understand every nuance of a system is what makes it possible to be a good programmer.

In other words, a clock-punching mentality is not enough, but neither is making it your life's mission necessary.

Hm, it's obviously true that the computer doesn't care what your life's mission is, but I don't know how someone would avoid having that insatiable curiosity dominate their life. I never could, and I only tried briefly because I felt like a freak (and to be fair, compared to the mainstream we are).
Judging by OP's blog, I'd say he's passionate. Look at his other articles.

He says he's "in it for the money" because he's honest. No one working to earn a living is not in it for the money, and if they tell you otherwise they're delusional. I think the measure should be "Would you still program if this wasn't your job?" and if the answer is yes, then the passion is there.

I really hate it when people decry the importance of money, because money is basically our unit of human sustenance. It is what we trade for food, shelter, and clothing.

I guess if you are into something with a passion (programming), more often than not you are going to be good at it and the money follows.
Off course everybody needs money to survive. But when choosing a profession, some people choose to be an attorney because they can get a big salery.

However I choose computer science because of the passion. I also had a passion for making music. But the passion and the money are the drivers. But the main driver is not the money.

I guess that could still depend -- suppose the individual in question made lots of money by selling a software product, and develops a passion for it due to the payout. Does it matter if he was initially passionate, or only after making the money?

A friend of mine hated piano as a child, only after many forced hours of practice (from his tiger mom) he became really good and started to win state championships for his ability. After a few more years, he developed a passion for it and played piano for fun. He never liked piano to begin with, but when he became good at it, he developed that passion.

So I'd argue that a bad programmer, after making some decent money, can become passionate at it when the initial driver started as money.

Do you by chance read Cal Newport's blog? or have read his recent book "So Good They Can't Ignore You: Why Skills Trump Passion in the Quest for Work You Love"
>"The fact is that your material well-being is rarely in jeopardy because of a missed deadline, so your reaction is fully up to you."

Much of what the author says is true, currently. This is a fantastic market for programmers, and anyone being born into this era is lucky.

But the forces of supply and demand will sort this market out in the future, to which the author seems ignorant. Name another profession that requires "Little or no education", and "no physical effort" (not to mention the ease of globalizing coding) that has sustained the kind of market pressure where agents are required to fend off recruiters, or kids right out of school can demand six figure salaries and four weeks of holidays right off the bat.

America (and the world) will churn out programmers until being a programmer is a marginal decision, equal among many occupations. It will lose its luster; it has already happened to lawyers. So planning on having a blase attitude towards deadlines and stress-free work in this field at 50 (assuming you're ~30 now) is a tad naive. I believe this will be an extremely competitive field in 20 years.

Why isn't the field extremely competitive now? The demand has been strong for a decade and a half; it seems like a lot of time.

(I'm not sure I have an explanation myself, really; perhaps it's something innate in people and perhaps it's something about education, but the fact remains that the world still hasn't churned out enough programmers even though the incentives have been there for a long time. One possible explanation is that much of the software implements bureaucratic processes and there's always more demand for this sort of processes - so demand will outstrip supply no matter what happens at the supply side.)

"Why isn't the field extremely competitive now? "

Visas.

Most programming work (of the type talked about in the OP) originates in the USA, and most companies, even startups, need employees to come in the door everyday. (not taking on the question of whether this is ideal or not, that is the just the way it is, right now) .

Imagine (as a thought experiment) a scenario where a smart kid who lives in India or Ukraine or Africa is just able to get on a plane and land in SF for an interview or a job irrespective of whether he has the right degree, paperwork etc and without jumping through hoops at the consulate and rolling the dice.

The (edit: thanks @daladd for correction) supply would go way up and hence average salary would go down (which is why large companies are trying for more H1 Bs - they like easier availability of devs and lower salaries)

Or imagine the border with Mexico being completely officially open. See what happens to the dishwasher/fruit picker payment structure.

  > The demand (and hence average salary) in SF for
  > programmers would go way down
Wouldn't this be detrimental to the SF area, considering as the high cost of living? I realize that cost of living will probably lower to meet what people can afford, but not without growing (or shrinking) pains, I imagine.
The effects on the cost of living would be harder to predict, I believe. Because even if you have less wealthy individuals, if they are more of them, they will still drive prices up.

Perhps, for say land or houses, people will still pay the same price or more per square meter. But they will get by with less area.

Detrimental for whom?

The changes to the cost of living are primarily a function of the now thousands of google and apple commuters. Not that that is stopping them from complaining when they wonder why moving up to a 2BR costs $4k/month now.

The growing pains associated with pay not meeting (or barely meeting) the cost of living.
That perspective is from someone who lives in the USA. If you live in China, programmers are as hot a commodity as they are in the USA, but it's hard to find good programmers. I know of several companies in China trying to hire developers in the USA because it's easier to source high quality talent than locally in Shanghai. Every time there is a tech meetup talk in shanghai, around 300 people show up, but only 20 of them know what they're talking about. Maybe computing isn't a field that chinese people study hard to become good at.

The companies in the USA are competing with companies in China for essentially the same talent pool. It's a good time to be in software.

I just have to ask, where do I contact these companies in China looking for US programmers, and is Mandarin a requirement? This sounds a bit like the offers to make a good living teaching English overseas, where the reality is a bit different.
Surprisingly, they source them here by visiting the States and finding people the same way Zynga & Google would. I was recently recruited for a project for a startup in Shanghai recently -- the most complicated part is the compensation part as most USA based services don't accept payments from China, including Google Wallet.

And no, mandarin isn't a requirement. I'm not really teaching english like those stories from japanese blogs -- I'll be coding in coffeescript for my wages.

> The demand (and hence average salary) in SF for programmers would go way down

I think you mean the supply would go way up, and thus the market-clearing salary for new hires would go way down.

Also (all other things being equal) the number of programmers employed would go up as the equilibrium shifts to a lower-wage, higher-number-employed point on the demand curve.

yes you are right. Thanks for the correction. fixed in the original.
All this would do is a short-term depression of SF programmer wages coupled to short-term surge in worldwide programmer wages. Because guess what, smart guy in Ukraine was already employed there and when he moves the next guy coming to fill the gap will either cost more or be less smart.

Programmer talent is sparse worldwide, not just in the Valley.

Programmer talent is sparse worldwide

And yet, when I look around at the job postings in Canada, a job with requirements that go on endlessly tops out at about $80,000/year. Expect less if you are an average programmer. Such a low income, relative to what US-based companies are offering, doesn't really speak to a shortage in my mind.

I admit, there could be some kind of survivorship bias here: I'm only seeing the lower-paying jobs because the good jobs are less likely to be hanging around on the job boards. But then if an $80,000/yr. job is failing to attract talent, should it even be considered a real position with respect to shortage counting? I could hire dozens of programmers if they would only do it for $10/hr., but I don't think it is fair to count those as unfilled positions or a shortage surrounding that. Nobody with talent is ever going to do it for that kind of pay.

I'm guessing the payment scales depend on the cost of living in your area. They pay more in Silicon Valley compared to Toronto because a 1500 sqft single family home in SV is around $1M.
And then there are Stockholm where I paid about $300k for roughly 365 square feet a month ago or so...
You'd be surprised at the house prices in Toronto or Vancouver (2 of the top tech cities in Canada). Yes, we're undergoing a housing bubble here, but $1M is the average price of a detached home in Vancouver...and that's for a 50+ year old hunk of junk (or 'crack shack' as we call it here).

One of the reasons that the housing bubble is starting to pop in Canada is that the incomes can no longer support the housing prices. We tend to have lower incomes than the US, but our houses are more expensive, cost of living is here, higher taxes, goods are more expensive, etc etc.

I wonder if SV incomes are higher simply because people expect them to be higher, or maybe there are more fundamentals to it.

What is the average job offering in Canada? How does it compare? What occupations pay significantly more? Do they pay that immediately after joining or the good compensation does not kick in until quite a few years has passed? How large are those professions by the headcount?

I think we can find the source of this distortion if it exists. All I can say right now is that areas where you have access to money not backed by productivity tend to trump programming or any other jobs where the employer has to make ends meet. Those areas are usually law, sometimes medicine (often not), and some public sector / government contractors.

They do not top out at 80k, but for positions that are truly senior companies don't even post those on job boards. You need to network and get noticed if you want to be earning 130 or 150 here.
But a shortage would see throwing those $150K+ jobs to just about anyone who can turn on a computer. The fact that you have to have existing networks and secret handshakes to even find such jobs is not what a shortage looks like, it is just a normally functioning market.
> a job with requirements that go on endlessly tops out at about $80,000/year

An endless list of job requirements is a sign the company doesn't know what it wants, so it's hardly surprising they don't know how much to pay their programmers, either.

Endless list was an exaggeration, but the requirements were very specific: A CS degree requirement, experience with specific technologies, etc. The kind of stuff you might add when people are fighting for the job in order to scare some away. You can't afford to scare anyone away if a shortage is real.

Though your point may still hold true, however I've seen it often enough that I find it surprising that so many companies (many of whom specialize in tech) are that out of touch.

in Toronto area you can get senior dev position fairly easy in range 95k - 110k and I can tell you from personal experience it is very hard to find decent developer (just decent would make us happy) , usually is 1 of 20 interviews if we are lucky
"Visas."

I live on a small island in a small city and I wont be short of work for the next 20 years.

Developers/programmers are hard to find. Finding good ones that pass the interview process are even harder.

There's definitely more you could do with education. A lot of professional programmers are people who started doing programming as a hobby as kids. Attempting to teach programming to 20-year-olds entering an university seems to not work terribly well, while the basics can be picked by a 10-year old.

If you waited until people are 20 to start teaching them to read and write, you would probably also get poor results, while the weird kids who learned to read for fun when they were 12 would end up outperforming the regular students when they grew up.

This is a very interesting idea. It certainly seems plausible, I wonder if anyone has studied it.
On the other side of the coin, people who picked up programming as a hobby while they were 10 might have picked up some rather nasty habits that need to be unlearned, where as someone who is learning in school at age 20 won't have those problems.
Depends on the schooling, too.
Programmer is like the modern villager. Villagers grew food and made stuff and that's what you ever needed. The programmer writes code and everything in our civilization is already code or it will be.

Therefore, programmer is a much broader occupation than almost any other. It's still a seller's marker because of that. Look at everything around you, and while there is at least one item that doesn't execute code inside, we haven't hit peak coder yet.

>Programmer is like the modern villager. Villagers grew food and made stuff and that's what you ever needed. The programmer writes code and everything in our civilization is already code or it will be.

That's an extremely short-sighted way to look at it.

In fact, take out the non-programmers, and all programming will collapse -- literally come to a halt.

You know, guys like those that grow and transport out food, clean up the streets and the garbage, cook our meals, mine our coal, produce our energy, drill our petrol, build our houses, etc etc.

People seem to think that because he have the "information superhighway" (sic) we're, say, above actual highways. Where the fact is that without truckers and highways and oil and the like, the "information superhighway" will collapse in a few days.

In fact, you can take programming out of the picture, and the whole world will keep on turning, at least as well as it did in the sixties or fifties.

The reverse, not so much. Programming is indeed a pervasive but insignificant in the grand scheme of things addition to the workings of our society.

There would be computerized food transport, real world garbage collectors, pizza machines, miner droids and 3D plotters handling bricks for building.

There is no reason you can't replace most of those human tasks with machines. And while we gradually do that, we'll need more and more programmers. Or maybe we will fail horribly, but not because it could not be done; and somebody will do this a few centuries later.

>There would be computerized food transport, real world garbage collectors, pizza machines, miner droids and 3D plotters handling bricks for building.

This is sci-fi as for now, and for the foreseeable future. It's like someone in 1800 saying that the mailman is not needed anymore, because we could use electronic mail. Possible, but far off in the future. See the factories that make iPhones for example: some prefer manual to robotic labor, because it is cheaper.

>There is no reason you can't replace most of those human tasks with machines.

There are several reasons. One of them is that such technology and in such scale has not been invented yet (or has not been "engineered for widespread actual use"). Another is the power needed for all this, especially in a global scale.

And there are lots of social reasons too: what will you do with the BILLIONS of people whose work is not needed anymore? Unless you come up with some equal pay for all scheme, there will be blood.

As for programmers, by the same logic you dismissed manual labour in favor of robotic labour, we could have program writing programs, or trivial "connect the dots" programming solutions for non programmers, that would make the demand for programmers even less, not more.

We live in sci-fi. The only things withholding this sci-fi from happening: lack of competent workforce (programmers and roboengineers) and lack of vision. It's going to arrive.

Currently I'm a programmer not a politician, therefore social reasons are not my problem. My problem is converting as many tasks in the world to code. And that will keep me busy and pay me a salary.

We could have a program writing programs, but I won't bet on that. Somebody will still have to give it orders; and the guy giving orders to a program is a programmer by definition.

You will have a lot of programmers overseeing computers and robots do various tasks, and that would be the largest and busiest part of the workplace.

>We live in sci-fi.

So were are our servant robots and flying cars?

>The only things withholding this sci-fi from happening: lack of competent workforce (programmers and roboengineers) and lack of vision.

That's too generic an accusation. One could say that about any problem.

>We could have a program writing programs, but I won't bet on that. Somebody will still have to give it orders; and the guy giving orders to a program is a programmer by definition. You will have a lot of programmers overseeing computers and robots do various tasks, and that would be the largest and busiest part of the workplace.

So, your vision of sci-fi future is conveniently constrained such that programmers are always needed and in large quantities.

Why seeing everything we currently do becoming automated as an easy task, and not also the overseeing of "computers and robots doing various tasks"? If you trust them to do the work, you can also trust them to do it correctly, and built the required self-correction routines.

No. We don't have means of teleporting matter; this is a problem; and we can't blame it on lack of vision yet. We don't know how to do it, don't know if it's physiclly possible.

Sure you can automate more and more things, in this case programmer will be the last [productive] job remaining. One that slowly wane when more and more things are fully automatic and all other jobs already gone.

We already have cars that drive themselves and are getting sci-fi glasses with really primitive Augmented Reality. We're getting there, I just don't think we'll ever consciously realize it as we experience it.
People smart enough to be programmers have more options than being a programmer. Most of the people in my CS class ended up as managers, 15 years after graduation.
But I envision in a few years we will talk more explicitly about 'coders' and 'programmers'. It's just a very different ballgame.
Yes and no.

Look at what happened to "making websites". It used to be a super lucrative field, now agencies who can afford to slash prices because they hire cheap developers can churn those out by the hundreds a month. It's become a very silly market to compete in because all the competition that still happens is based on price.

But while this was happening, the web evolved and opened up new jobs and opportunities. Now you can make a lot of money by making web apps, interactive things and so on and so on. That's still not a market where everyone can compete.

Even moreso, mobile has opened up.

So I think that programming has a very lucrative future for a while yet, because new fields where it is applicable open up faster than old ones become commoditized.

The programmers write programs that enable new activities that require more programs. Even if we consciously attempted to turn every person on the planet into a programmer I don't think supply overcomes the demand. Ever. Until the strong AI is developed.
I went to school with people who went into CS because they thought they were pretty good with computers and they saw money in programming. Some of them made it; others dropped out or changed majors.

"Despite the enormous changes which have taken place since electronic computing was invented in the 1950s, some things remain stubbornly the same. In particular, most people can’t learn to program: between 30% and 60% of every university computer science department’s intake fail the first programming course." (Source: http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf)

Many others learn how to string glue code together, but can't really solve problems that go deeper than finding the right library to import. I've heard working programmers worrying they'd fail a FizzBuzz test in an interview.

If anything, I suspect the bar for talent will go up—increasingly, programmers barely getting by now will become a commodity. But real aptitude is still rare, and I think the right combinations of talents will hold their value for a good while.

I don't understand how anyone can be a working programmer and fail the FizzBuzz test. What are these individuals working on that allows them to contribute enough to the company to not get fired?
It doesn't hurt that a lot of managers have no idea what to expect from programmers and no idea how to find and attract good programmers. They seem to learn to cope with whatever they can get and learn not to expect much.

And I have a theory: there's a group of people who have picked up patterns from a bunch of examples they've found on the Internet, or in code they've managed to be allowed to work on, and they've never grown past that. They're fine as long as you're asking them to do something they've seen or done before (for generous definitions of fine), but completely screwed the moment you venture out of that zone and consulting the Internet draws a blank. They can memorize patterns, but haven't learned to think through anything more complicated than that.

These people can appear productive to the right people, yet be completely stumped by FizzBuzz.

Basic Economics states that with a low barrier to entry and large salary means it won't be for very long. Wish we would professionalise. In the UK now there are software dev jobs being advertised for minimum wage.
I think the barrier to entry to be "good" is fairly high, it just isn't artificial, like most barriers. There is no certification, money, or time barrier artificially constraining supply.

You need persistence, logical (not magical) thinking, willingness to learn a tremendous amount of material, and the ability to envision abstraction in order to become a programmer. These skills co-occur in only a limited portion of the population and of that, only a subset would be willing to live the programmer lifestyle (indoor, bad for extroverts, sedentary, not so high-status as being a Dr.)

>"No health (...) risks"

I'd like to see some research to back up this claim, but I'm not aware of any studies into occupational health for programmers. Does anyone know of any?

Can't think of any offhand, but I anecdotally, tendonitis is a huge risk for programmers.

While you can't claim "no health risks", they are pretty low as far as jobs are concerned.

I'm sure sitting on your ass 8-10 hours a day is a health risk. Maybe not as bad as working in a factory breathing in nasty chemicals all day, or dodging falling trees as a lumberjack, but a health risk nonetheless.
I'm pretty sure there aren't any. And as any RSI sufferer will tell you, programming has health risks, which can even prevent you from continuing to program.
I had some pretty bad RSI where I had to take a couple of months off so I don't think the risk is nothing.
I'm one of those guys programming in my 50s. Technically my jobs involve project management and consulting as well but I still love programming the most.

Saying that programming "requires little or no education" is from the perspective of either a naturally smart person or the Dunning–Kruger effect. Like any profession, there are some self-motivated people who can do the job effectively without formal education. Yet it saves time to have everyone on the same page with knowledge of basic algorithms, terminology, and problem-solving methods.

If money is your motivator for programming in your 20s, the odds are that you will find some other way to make more money and not last until you're 50. At least I hope so.

Yup. While formal education is not necessary, one has to keep learning to stay in the forefront of this profession. If you stop, your 'shelf-life' is 10 yrs at most.
I disagree, if you did any application programming in the mid to late eighties in C/C++, TCP/Sockets, CORBA, Sybase, and X11, about 90% of your experience directly translates to today's Web based application development.

Hell, if you use a Linux development environment you will feel right at home.

I said "little or no education" compared to other fields. I'm a grad school dropout, so my bet is that my CS education is above average for a working programmer. A hiring process considered "demanding" (such as Google's) is basically testing if you know the stuff they learn in the first year and a half of an undergraduate program. Contrast that to the amount of training and test-taking that a doctor must go through and it'll put what I said in proper context.
In that case I think "little or no certification" would be more appropriate. It does seem kind of strange that doctors, lawyers, electricians, plumbers, and barbers all have to take tests to get into (and sometimes remain in) their professions, but a programmer can write the software for a missle system, voting machine, or power plant with no certification whatsoever.
I think "little required education" is true, for programming, in both senses: no certification, and not that much to learn to become productive compared to other professions. As I said in another thread, I think the reason is that the field is younger and that computers are designed to be comprehensible, unlike human bodies that doctors deal with or legal documents that lawyers deal with, etc.

There are programmers with almost zero CS education, formal or otherwise, who are rather productive. This may make the more educated among us cringe at some of their work, but the fact remains. If CS education was essential, it wouldn't happen, whatever we think about the merits of CS education (I rather value mine). A high school dropout could not successfully operate brain tumors; there are many countries where the fact that it's illegal wouldn't stop the practice if it were effective, but it can never be. Similarly for most high-paying professions other than programming and certain types of business.

The litmus test is not the complexity or impact of the product a professional is working on, but rather: how savvy are the customers and do they need the protection of regulation?

All of the professions you named are people who hang a shingle and sell services to low-information customers.

Missile systems, voting machines, and power plants are all "sold" to high-information customers that need less gov't protection.

Other engineers do need certification and do face legal culpability if they are negligent in their work, but it's inherently different I think. We can talk more about that if you're interested, would like to hear your take.

Possibly US-biased view? From my experience developer certificates are more common among developers than professional certificates among doctors.
Are there any countries where doctors don't need to be certified??
Where do you live?
One piece of the puzzle is that programming education is not very effective. Most computer science programs teach you almost nothing about software engineering, partially because many CS profs know almost nothing about it.
I think CS education is extremely effective, if one does the exercises himself, and as to software engineering, they don't teach about snake oil, either.

It's just that there's not that much to learn that is universally applicable, comparatively. The field is young, and then computers are easier to make sense of than most things, because we made them that way. Doctors need to deal with human bodies which aren't designed for human understanding and tinkering. Lawyers need to deal with documents which aren't designed for easy understanding, either - they're designed to prevent hostile, malicious parties from screwing each other. We simply have it easier than most skilled professionals.

I think one of the problems with software engineering is that [almost] no one knows anything about it.

I've been a working programmer [or software engineer if I've just met you at a party and I think you're cute] for long enough to work on >5 multi-billion dollar projects. Of these, one was delivered on time and according to spec. That company went down the toilet within four years.

I've read fairly widely in the software engineering literature starting with Weinberg and Brooks in university, and chasing my share of papers, 'blogs and web pages since then. One of the most positive things that has happened to the field is the recent discovery that the only thing at the end of the methodology rainbow would appear to be consultants [wearing suits with slits for the dorsal fins [h.t. Mr Stross]] and stacks of unread Learn Florble-Oriented Development in 21 days.

I know I can build complex systems. I know I can sometimes build simple systems [much much harder.] I don't know how to reliably schedule a project to build a new thing. I think anyone who thinks they do know this is delusional or lying.

And in the end, I think it probably doesn't matter. The truth of the software engineering crisis, is that it never existed. And it's possible that software engineering never existed either. We program. We do it because we like it and it pays. The folks who do it only because it pays usually end up in management fucking things up by assuming they can motivate people always and only with money.

[oh, on a tangent I've also been a manager. I wasn't all that good at it. The team I managed delivered good stuff, some of it on schedule, but the company still went belly-up. And I learned that I don't enjoy management, and would rather have less money and more fun - take from that what you will]

A multi-billion dollar project.

I can't really imagine that. Are those ever executed by a single company all on its own? Are they software-only? Do they exist outside NASA?

I think timescale may be applicable here. Some key programs for large companies will spend several million a year for several years - particularly if you are taking your Mainframe applications and trying to restructure them to have more easily changed business rules and a new infrastructure.

That said, I also suspect he may have been exaggerating for effect :-)

I have a friend who works for Northrop Grumman, and he just completed a $500 million project he described as "relatively small".
You are kind of right that this type of projects go for years, but other than that, billion+ projects are no exaggeration..
Microsoft and Apple both have multi-billion dollar projects.

Edit: Google and Amazon likely don't, actually.

Microsoft yes (example: Windows Vista). The others... no. And that is a good thing, for them.
You're right about Google and Amazon, early posting on my part.

But I'd say the iPhone was easily a multi-billion dollar project.

I seem to recall iPhone 1.0 being called a $100 million dollar project in some Wired article. They were several hundred people (not thousands), working together for about 2-3 years. That seems sensible, and the numbers seem to add up.
Apple's strategy is to assign fewer people than you would expect when building a new product to ensure focus / reduce feature creep. Staffing on stable products are in line with what you would expect.
For example, I heard (from an ex-Apple co-worker) that the entire iTunes.app team was about 25 engineers. In contrast, Adobe's Flash plugin team had about 50 engineers (not including QA).
Google sure has multi-billion dollar projects. Chrome is an example. They're spending that much just _marketing_ the thing every year.

Even if we stick to just the development side, I would be very surprised if Google has not spent > 250 million a year on Chrome development over the last 4 years.

You think Google have had 1000+ people on Chrome for the past four years?

The marketing bit is a bit special since they don't actually spend any money by showcasing Chrome on google.com.

Edit: They do spend lots of money to get it pre-installed on new PCs, though.

1000 engineers? Probably not, but likely many hundreds plus all the organizational support people like designers, product marketers, product managers, people managers, and admins.

Consider Google's opportunity cost for advertising on the "internet's home page". I've read estimates of $2B.

For a while, Google was also paying Adobe to bundle Chrome with Flash (in addition to bundling Flash with Chrome).

Even ignoring the google.com thing, estimates are they're spending at least $500 million a year on Chrome marketing for ads on other sites, various bundling deals (including pre-installs on new PCs and auto-installs with other software), etc.

As far as people on Chrome go, you're right that back in 2008 they likely did not have 1000+ people on it. The best data I can find for mid-2008 on the Internet says about 50 in mid-2008.

Looking for newer data, according to the last several updates on http://peter.sh/ at this point there are about 100 daily WebKit commits (not all by Google, obviously) and about 120 daily Chromium commits. That's not counting the parts of Chrome that aren't WebKit or Chromium. What fraction of the WebKit commits are from Google is an interesting question; as of early 2010 according to http://neugierig.org/software/chromium/notes/2010/02/webkit-... it was around 40-45% and growing rapidly.

Now going from "number of commits" to "number of engineers" is hard. For comparison, as of today according to http://oduinn.com/blog/2012/09/04/infrastructure-load-for-au... Mozilla has about 200 commits per day, but about half of those are to the automated testing repository, not to the main code. So that's about 100 commits per day. Mozilla right now has around 700 employees, I believe. So if you assume similar commit patterns (which is an assumption, granted), Google certainly has 1000+ people on Chrome now.

But I'm also not sure you need 1000+ people to hit $250 million/year in spending. In addition to Silicon Valley compensation packages, there's also a lot of test infrastructure and whatnot as part of every browser project which costs nontrivial amounts of money to create and maintain.

Again for comparison, since there's data available there, Mozilla spent about $63 million on "software development" in 2010 ($85 million if you include stuff like office space, HR, marketing, etc) according to http://www.mozilla.org/foundation/documents/mf-2010-audited-... and had about 200 engineers at the time, I believe... and Mozilla does not give out huge stock bonuses, like Google has done with Chrome.

Probably some medium-sized SAP implementation.
Or a Peoplesoft one Or Oracle or anything government or ..
The NHS (Britain's state healthcare provider) famously had a project with a budget of £12.7bn (about $20bn). It wasn't entirely software although that was the main part. It famously fell apart, but billion-sized parts were handed off to companies like Accenture, British Telecom and Fujitsu: http://www.guardian.co.uk/business/2010/mar/21/nhs-national-...
It's horrific. Some bits work and are implemented, other bits don't and wont ever work.

Connecting for Health (and all the rest) are the programmes that persuaded me that governments should just define a standard, and then let providers build software and clinicians buy software that conform to the standard.

There are lots of things wrong with email, but SMTP was pretty robust across a range of platforms for servers and clients for many years.

The first project; the one that finished nearly on time, ran for three or four years. I joined half way through as a crispy graduate. It came in within a couple of weeks of schedule. It seemed very well managed for the whole of time on it. The project manager left that company, and went to work for Apple. When I googled him just now, all the top hits where at Microsoft. Perhaps he knows how to do software engineering. Or perhaps he got lucky that time. I don't know which.

The project developed a new CPU architecture, several variant implementations and ported several operating systems to that architecture. Amongst the more impressive feats I saw during that project:

- a compiler from assembler of architecture A to assembler of architecture B. This was necessary because we had a lot of code [~10^6 lines] in architecture A assembler - several other compilers that handled code written for A, with no thought to portability, and produced asm for B. - a modular emulation environment. Initially it ran on a larger example of A that had a programmable microcode feature. Later it was ported to other examples of A. Some of my colleagues were in the room when the ported OS first booted on a machine of type A with the funky microcode. As I recall, it took most of a day to reach the banner. - my own part was very modest, but I had fun. Amongst other things, I ported a disk checking utility [think fsck] from A to B. That was easy. To test it I had to create bad blocks for it to find. So I got a SCSI 1.44 floppy drive [!], and a box of new disks. Then I formatted and scratched each disk with a paperclip, and did a disk copy.

So, that was lots of bucks, hundreds of software engineers, and some number of hardware people. I don't know how many of the latter were involved. But remember that nearly everything was custom; CPUs obviously, boards, buses [though that was fixed eventually], bent metal, power supplies. The lot.

That was one fairly large company.

I've done other large projects that had many cooperating companies, usually with one or two large partners and a number of small outfits. Those involved similar sums, but a large part of that was in the equipment deployment, land purchase and so on. Not so much fun. I did once crash the wireless data network of New Zealand because a radio [or possibly an antenna] came loose on a mast and flapped around in the wind. Every time it swept through 120 degrees, all the effected clients channel hopped, provoking an exciting synchronisation bug in my multithreaded code.

Oh, and I got paid for all of it. Not as much as I would if I'd become a banker [though it's presumptuous to assume I _could_ become a banker]. I'd quite like the money, but then again I have more fun that the bankers I know. I've built software that was used [and is used] by fairly large numbers of people [if you're reading this, then you're one of them]. This is satisfying. Even it I can't call it 'engineering' with a clear conscience. If computer programming hadn't been invented, I don't know what would have become of me. There aren't that many other occupations for people with my particular blend of what I'll call talents. If you fall into that category too, then get your laughs while you can. You're a lucky person right now.

[and since it behoves me to actually answer the question, I've never done any work for a government or defence contractor. I've no particular objection, it just hasn't come along]

Thanks for the write up! Makes me want to invite you for a beer, just to hear more about it.
Answers to your questions.

Execution: Generally no. There are sub-contractors, out-sourcing, COTS, etc. And there may be a program management team of companies.

Software only: The three I've worked on, no. Hardware, software, "mechanisms".

Outside of NASA: Yes, although the US government probably has the lock on the sheer number of such programs. Chip-makers, with fab plants, are one sector. Vehicle manufacturers (planes, trains and automobiles) are another. Construction--especially massive high-rises--is probably another.

I would argue that if your team delivered good stuff, mostly on schedule, and your team was happy, then you were good at being a manager. The company failing despite your team deliver quality product hints that there was probably a flaw in strategic vision or external market factors.

Enjoying the role is another thing though.

When companies that are large enough to spend "multi billion" dollars on a software project blow up "within 4 years" it makes the news. Like Enron. And Worldcom. And Lehman. Etc. And in those cases it's usually a very deep systemic rot. So I don't know how much all of that matters.

I also echo the concerns below about the "multi-billion" comment. Did somebody just mention sometime that it's that expensive? Because that's a remarkably large amount of money for business. Government? Not so much. But for a business, well, there are very few billion-dollar businesses and a scarce handfull that are spending a billion+ on any single project. My fiance is a PM on the largest electronic medical records rollout in the nation, which includes visits to over a thousand clinics around the country to install hardware, convert paper records and train people, as well as all the infrastructure, and it's reportedly going to bust through the original budget but still clock-in around $100 Million dollars.

WRT to those hugely expensive projects: for a while I've thought the real secret about offshoring is that it's simply a cheaper way to fail. Since most projects fail (outright canceled, declared a victory when they aren't, or over budget and time and generally far from feature complete), a cheap way to pretend you're doing software development has its attractions.

As for methodologies, perhaps getting everyone to actually use one is the biggest problem; that's been my experience. I have myself found about 4 things that seem to work:

The project should have a specifications document of one or two pages, no matter how complex. This is to try to get everyone on the same page, as it were, it has goals and requirements, must do N transactions/second, must run on X, etc. As much what and as little how as possible.

Further project documentation efforts must factor in the Don't Repeat Yourself (DRY) principle, i.e. the code is the only truth, and attempts to duplicate it are going to get out of sync unless you work really hard at avoiding that.

From OOSE/RUP: do short ("several week", 2-4) iterations and get your complete software and systems stack into a "Hello, world!" end-to-end state very early in them.

Otherwise, yeah, I've read a lot about software engineering beginning within the first month or two I started programming in the fall of '77 (sic) and while I think there is such a thing, it's indeed not really engineering as we otherwise know it. There's something there, but you learn it as much by doing as by more formal methods (classes, reading books) and there's no substitute for a serious amount of experience.

> One piece of the puzzle is that programming education is not very effective. Most computer science programs teach you almost nothing about software engineering, partially because many CS profs know almost nothing about it.

And mostly because computer science is not software engineering. If you want to learn software engineering, find a degree or diploma program in software engineering.

Being frustrated that your computer science degree did not teach you about software engineering is like being frustrated that your civil engineering degree did not instruct you how to physically build a bridge, or that your mathematics degree did not teach you how to corporate accounting.

If you want to learn software engineering, get a job as a software engineer after a degree in CS. You will learn far more from the job than from the degree.
Sure, that could work too, it's basically apprenticeship. But it's still not the CS degree's fault or problem that you're learning software engineering on the job.
I think he means little or no formal education required; i.e. something the self taught can get into based on merit alone. You can't do that with a lot of high paying professions as they absolutely require formal education.
I'm 35 and I just recently started trying to turn what had been a hobby into something that pays. I harbor no illusions about ever making decent money at it though.
Just concentrate on doing hard stuff.
I want to. I do have a ton of for-the-love projects which seemed impossible when I started, that i've learned a lot from, failure by failure. I've even got an app I'm building in Laravel (and this is the last you'll likely hear about it.) Unfortunately with where I'm at right now it's just been scutwork that puts gas in the car.

I might even take a cs course this year assuming it's possible to get the loans. I'm still paying off an art degree though.

By the way never get an art degree.

You can take lots of courses from top universities online for free. That won't give you the piece of paper, you'd get when you paid for them, but all the knowledge is still there.
"Little or no required education" really? Sitting at the cashier requires little or no education, but doing programming requires much more education (either on your own or someone has to teach you). From my perspective a lot people I know aren't capable of programming just as they are unable to solve mathematical problems (and a lot of people can't even do basic math when buying at grocery store).

Not to mention that here where I work you are tested for your knowledge and problem solving skills - so although there is a high demand there are still very few that are hired.

BTW. About 15 years ago I heard that it's not a good choice to go and study computer science because there are a lot of others that do it and the market will be saturated. And we know how it is saturated right now (it isn't). There are more and more "places" where software wasn't needed before (e.g. cars, TVs) and now it is required - demand for programmers increases.

I agree with many of the things written in the original post. But I definitely disagree with the notion that the barrier to entry in this profession is low and that any Joe Sixpack can start programming for a living because it's supposedly easy.

I can vividly remember my days in back in college where a lot of fellow students in my CS classes had substantial problems writing even the simplest of programs and understanding basic statements and data structures. A lot of them couldn't even write simple programs which would take user input, do something with it and give some output, let alone come up with more complicated solutions and architectures for real world problems.

This field is not for everyone and I believe that is often not obvious to many of us because we take our ability to turn mental constructs into code for granted. A lot of people just don't have the mental facilities to do it. I'm not saying this to sound elitist, but it's the way it is.

I think it's getting progressively easier. I think that back in the day before the Internet, perhaps in the mainframe days, you had to be a true wizard and know your domain extremely well to make anything happen. Think K&R kind of attitude and skill level.

Nowadays anybody with sufficiently good Googling skills can put something together by stitching pieces of Stack Overflow code. You don't need a specialist to make it happen, just about anybody will do. Perhaps you shouldn't leave mission-critical aspects of development to those people, but you can get away with most of the other work.

Was it Mark Suster who said that most companies out there do not fail because of bad technology?

If this fellow truly has no passion for his craft, I hope he can find the energy to constantly update his skills when he's 50.

I started in FORTRAN in 1968. Today I'm working in Java and MongoDB and studying Scala and Go.

If you have followed his blog posts for a long time. He is very crafty in all low level programming that most of us are incapable of. And he also wrote his reflection on C++ programming language in C++ Frequently Questioned Answers.

Also I like this post from him a lot. He just likes to say things more frankly.

http://www.yosefk.com/blog/work-on-unimportant-problems.html

I have a suspicion (albeit a light one), that programming in itself will become a commodity skill, like "good writing" (something you _have_ to know to score well on the SAT/GRE).

It would become a necessary skill that simply everyone in a wide variety of fields (doctors, accountants, etc) where programming is the slightest bit helpful would have.

In such an age and era, will programmers get paid anything close to what they get paid today?

Programming is about fast thinking, good organization, good prioritization, continuous learning, continuous automatization, sharing and yes, good writing. The actual coding is a side-show.
You seem to have "good writing". Could you write a novel, with a captivating, nonobvious plot, interesting characters and a twist ending?

You probably can score ok in a math SAT. Can you visualize the mathematics of a quaternion, or formulate the equation for an n-sided betzier patch?

The work a linguistic/novelist/journalist or a mathematican is not on the highscool level. Neither is the work of a programmer.

I do believe basic programming should be taught, just like basic math and writing skills. But that has absolutely nothing to do with proffessional programming.

Most people don't write well, even most educated people. It's not the commodity you seem to believe. The GRE/SAT test for the ability to write essays on a specified topic in the format that the GRE/SAT want. This doesn't really reflect useful writing in the real world.

Plus most people don't have great GRE/SAT scores anyway. You don't have to have outstanding scores to get into most programs. You just need decent scores.

It's posts like these that get me as a programmer worried. Arrogance tends to lead to bad things and the world can change at a pace greater than one can imagine (a good way for me to understand how swiftly things change is to ask myself: Could I have foreseen x years ago what I am be doing today? for me, using the relatively low value of x=5 the answer is a definitive no. And I think that's a good thing).

Be humble if people are willing to pay you more money than others for what you do - it might change incredibly fast. The more generic assumption of the post is that people are willing to pay good money for skills that are relatively rare... well, make sure to keep your skill set up to date.

Don't get me wrong - I'm rather paranoid, and I'm not sure at all that this will last. All I'm saying is, the alternatives I know about aren't necessarily better, and if one talks about quitting the field because it's not enjoyable (without mentioning money), then my question - from an angle not unlike yours, I think - my question is, so what's your alternative way to make money.
I think this line of questioning ultimately has more to do with how you feel about turning 50 than programming.
You dont necessarily need FORMAL education, but you have to learn alot to be a good programmer. Its alot about training, experience and talent...
Also, in what other job can you build your own little slaves to do some of your work for you? You don't even have to tell anyone.
I like to think of myself as master of the intelligent networked machines :)
Farming :-)
Farming is undergoing a similar talent crunch right now. If you are in the right parts of the world and have a little skill behind your name, you can easily make $50/hr as a farmhand.

Food and tech is where investors are piling all their money right now. As both a software developer and farmer, I do fear what will happen when investments start going elsewhere.

> If you are in the right parts of the world and have a little skill behind your name, you can easily make $50/hr as a farmhand.

I would be interested in more information about this. Which parts of the world, farming what, what skills make a good farmhand, and is there any public data that I could look at to look at trends?

I am a software developer and farmer too. I wish I could say I get most of my money from farming, but not yet. However, the fact I can do both is a testament to the flexibility of my career in software dev. And if investments start going elsewhere, I'll always at least have an excellent source of food.
I don't know what to make of this. In New Zealand, a farm hand will probably earn a bit more than someone working at McDonalds, and they'll work a lot more too.
I cannot speak to the economics of New Zealand specifically, but there is a huge difference between a skilled farmhand and a farmhand. I referred to the former in my earlier post.

A skilled farmhand is someone who has, well, skills. They probably have a commercial drivers licence, background in mechanical work or dealing with animals, and have spent a lot of time operating heavy equipment. Those kind of people are rare, but can be paid well when you find them.

Someone without skills on the farm will probably be paid as you describe no matter where the location.

Well, a programmer can - in a matter of hours, or at most days/weeks - assemble a factory performing the work of 10,000 full-time highly trained workers (actually more, we're talking billions of operations per second), at a total direct cost of a couple of coffees and use of a device costing few hundred dollars new, and then fully own all rights to the factory, and operate it full-time for about the cost of a normal person's phone bill per month (server instances). So the question isn't why there are millions of high-paying jobs to do so for someone else with the resulting rights and ownership by someone else:

the question is why anyone takes any of these jobs. why not build your own damn factory. It's usually only because you lack some of the skills (design, business development, marketing, choosing what to produce, etc).

so, team up with a cofounder. hence: hacker news. well, there is one downside here. the programmers who work here would never team up with a designer who knows just what to build. instead they both get hired by someone who does. the designer gets hired at a low rate, then the programmer gets hired at a high rate, just because the person hiring the two knows what is needed to get the factory producing something people will pay for: but the programmer (readers on this very article right here at hacker news), doesn't.

so yeah there are millions of jobs for you to build value for others, but it's just because you're not quite wise enough enough not to need these jobs.

(among other things, i'm such a designer. split a company 60/40 with me? No, you would not. But work for 1.5 my wage at the same company, so that neither of us gets to reap the benefits. yes you would.)

-

this post is tagged #creative and written from that perspective.

"Programmers who can program at all - as in, print out a binary tree correctly"

Strikingly succinct and useful benchmark, just sort of thrown in there like it was jam on toast.

There are some tidbits of wisdom in this article, but overall it boils down to a life that has lost all meaning and passion and has succumbed to the lowest common denominator: money. True, maybe, but sad, really.

I found much "meaning and passion" in programming after getting into it for the money. Conversely, I know a few people who started programming as kids, and who spent some time fighting depression, unable to feel the same passion as in their early years while doing real-world, bill-paying stuff. Typically, they try a few other things, and then get over it, realizing how lucky they are, sitting on the gold mine that is programming ability.

A life full of "meaning and passion" is typically sustained through money. It's much easier to find meaning and passion given money than it is to find money given meaning and passion. If nobody is willing to pay for your program, maybe it's not worth the passion; if they pay, maybe it is.

Many people spend years or decades moving from job to job and from career to career looking for happiness. Most of them don't find it until they learn that your job just isn't what makes you happy. "Do something you love" is a myth.

Jobs are jobs because they involve a lot of crap people don't want to do. No one's going to find personal meaning by writing specs, or by cutting a beautiful design down to an ugly minimum to fit into time constraints, or by maintaining some poorly-written internal tool. But these are all things programmers will do, at some of the best jobs in the industry. Every job has a large chunk of "this sucks" work. If it's kept to a minimum, you're doing far better than most people.

>"Do something you love" is a myth.

As someone who is currently working his dream job, this statement couldn't be further from the truth.

A dream job is still a job. There are still parts that are tedious, and frustrating (if you're not encountering anything frustrating, you're not doing anything important), and annoying. That's why they pay you. And that's why "do what you love" is a myth. You can't always do what you love. Sometimes you have to do things you do not love, and just be happy that part of the time you get to do what you enjoy.

Far too many people chase a "dream job" not understanding that every job will have parts they simply will not love. And instead of accepting that this is reality, they fixate on the problems and fall prey to "the grass is greener" thinking. I'm sure Elon Musk loves his job (indeed he has many people's "dream job"), but I bet 90% of it is tedious bullshit.

Life. There are still parts that are tedious, and frustrating (if you're not encountering anything frustrating, you're not doing anything important), and annoying.
Your argument is so weird to me. Not because I think you're wrong about every job having a bunch of tasks that are tedious and annoying, but because the same thing is true of every single thing we do in life. Jobs aren't unique in this manner, the same thing is true of any creative hobby, relationships, etc.

"Far too many people chase a "dream job" not understanding that every job will have parts they simply will not love."

I don't think that is true, I think most people realize any jobs just like anything at all in life, won't be 100% fun stuff. It is just such an obvious common sense thing that they don't bother talking about it.

> I don't think that is true, I think most people realize any jobs just like anything at all in life, won't be 100% fun stuff. It is just such an obvious common sense thing that they don't bother talking about it.

I disagree. People who are happy with their jobs realize this. People who switch aimlessly between jobs and careers definitely do not seem to realize it. They get fed up with dealing with people, or a crappy co-worker, or whatever else they don't like about their current job and leave, assuming that somewhere is a job that doesn't have to deal shitty thing "X", not admitting that most jobs will have shitty thing "X", and the ones that don't will have shitty thing "Y" instead.

On top of this, we get sentiments like the one from calinet6, telling people that if they simply accept that they need to work for a living, then their lives must sad. "Oh, you work as a programmer for money; how sad for you." Yes, how sad that someone can make a good living in a good industry.

How sad instead that so many people look for their life's meaning at work and never find it.

TIL your life is wasted if your treat your job as a job.
If you spend 40 of your 112 waking hours per week doing something other than what you're passionate about, you're wasting at least a third of your life. Unfortunately we've created an economy that compels most people to do this.
To the pedant brigade: ease up. It's "little to now education" compared to medicine or law, where you have to toil in years in a very rigid pipeline of exams, internships and certifications. There's plenty of learning in programming, but you can do with little education.
Good post. I've been doing this for many years now though and I've been burnt out after maybe the first 4-5 on coding, but that is still what I do. It really is about the money though. Early on I had the idea that I would become an architect get all of the certifications (back when that meant something), work my way up management and have a house at the beach, at the lake, and in the mountains. Ha. Yeah, I should have known. Right now I'm hoping that telecommuting becomes the norm. I love working from home, but I don't think I could make what I'm making now as a contractor doing Rails development, which is now primarily what I do. As long as I continue to be employed, I guess that is the main thing. And I guess that is the point of the post.
> I haven't met programmers who became lawyers.

For what it's worth, I'm a programmer in the middle of law school.

Many do, such as Google's Dan Berlin and huge chunks of the IP law field.
passion burns out, whereas greed is sustainable

This blog entry seems to have been written so that it can end up with this sentence and not read cynical.

Best quote I've read/heard all month "...but passion burns out, whereas greed is sustainable." I identified with the author and it's one of the major reasons I didn't pursue other career paths even though I could have (Lawyer, Doctor etc.) Thanks for this article.
I came here to say that this is the most misleading quote I've read recently. If you're avaricious, of course you think that passion burns out, because your passion is for money. All of your other interests have been fleeting fancies, but you mistook them for "passions."

At the risk of introducing a Scotsman to the discussion, I suggest that passion is the only sustainable thing. If you sustain an interest in money for your whole life but not an interest in programming, or art, or writing, or Ultimate Frisbee, those other things aren't passions, they're interests or hobbies.

Greed is pretty much the definition of a passion for money. If you identify with this quote, I suggest that you modify it slightly to read, "For the greedy, a passion for making money is the only sustainable thing, all other interests burn out."