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.
(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.)
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 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.
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.
Programmer talent is sparse worldwide, not just in the Valley.
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.
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.
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.
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.
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.
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.
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.
> 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 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.
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.
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.
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.
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 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.
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.
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.
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.
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.
"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.
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.
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.