How Long Will Programmers Be So Well-Paid?
techcrunch.com
techcrunch.com
C'mon lets be frank not all programmers are well paid, You really have to be working at Google or other big place or make it big in the start up area. None, of that is any different than any other profession I know of. In fact even the author seems to be talking of 'Google and Facebook' employees, the number of people working at Google and Facebook are small enough to consider them a clear exception.
What you really must be talking about is of a time around a decade and a half back when programmers seem to be paid well. And even they were paid well not because they were programming, its just that the IT sector grew so rapidly there was a immense demand in the middle level management areas that caused a impression of rapid career progress in the software industry. That is what made people to 'come in the game for the money'.
The only distinction that I see programming has compared to other professions is programmers tend to think of themselves as people 'who solve problems' and not just people who write code. No other profession, I know of carries that tag line.
Startups could be called "things that didn't exist before that are creating more problems to solve than existed before."
The article quotes the average starting salary at google to be $125,000. After converting that into GBP (for the UK where I live) you get to 77,613.
Whenever I look around at local programming jobs, a salary of 77K would be attainable mainly only by people who were project leaders/architects for large corporate systems.
Most entry level jobs are .Net, PHP or Java programming and will net you a salary of 18-25K. A programmer with 4-10 years experience can maybe expect to get paid 30-35K.
Basically a similar payscale to a plant fitter , electrician or teacher and quite a way off what you would expect for a doctor or lawyer.
I assume that those 125k/year jobs are for either large companies or profitable/highly financed startups?
I'm guessing that there are lots of startup programmers out there on very low salaries who are working mainly for equity which is a much harder thing to value.
All have plenty of jobs going up to £45k-£50k, and that's what they're offering before you even walk in the room and they find out they like you.
£35k seemed to be the ceiling about 2 years ago, I think demand is really starting to push it up.
It's true that you don't get paid time off, but I can tell you from experience that a decent and determined freelance programmer can easily make $10k / month and leave plenty of time for relaxation.
The biggest thing most self-employed folks have to deal with that they wouldn't normally is health insurance, but if you're young and healthy, decent insurance is a few hundred bucks a month, at most. And you can deduct the premiums. If you're not young and/or not healthy...that's another story.
Bottom line, if you want to match a $120k / yr job as a freelancer, you need to make something like $12k - $14k / month.
Source: personal experience and a fascination with legal tax avoidance strategies.
Edit: Apparently living in the UK aint too cheap either. Did not know that!
We also have council tax which in some places will make your eyes pop out. Not to mention VAT which is going to be 20% of pretty much everything you buy. On top of that house prices can be very high here for a family sized home even in a modest area so you're going to be paying a lot for your mortgage.
Plus we have a huge amount of tax on stuff like fuel and anything to do with cars, not to mention that food prices are generally higher here than in the USA.
OTOH medical insurance isn't really an issue as well as other things like more help available from govt to cover higher education.
I'm thinking the 125k in California may be a better deal, except the cost of living may be higher there (not much public transport, housing is expensive as well, etc)
But the UK income taxes are huge. Ireland taxes are similar. Continental Europe has smaller taxes (but then salaries may be smaller, so 'take home money' can be similar)
Average annual salary of software developer in US: $93,000
Average annual salary of software developer in UK: £35,000 = $56,000 approx
Average house price in the US: $181,500
Average house price in the UK: £234,000 = $376,014
Ever feel like you're in the wrong country?(the 93k figure from this recently front-paged article: <http://news.ycombinator.com/item?id=4696113>; all other figures from a randomly-selected page from the first few Google results, but the UK figures seem reasonable to me - I'm in the south of England but outside London, and houses here are all above 250k but most programming jobs I see offer 30-35k. Of course using nationwide averages isn't necessarily an accurate picture as the places with most tech jobs available are probably not the ones with most houses on the market)
The house-price plague is a worldwide problem and it's still in force. The "crash" was not as much of one as the world needed; brownstones in Manhattan are still over a million.
I interviewed with a major UK software consulting business that was trying to open their first US office, and it was immediately apparent that their expectations were way off from the local conditions.
The interview included a programming test, which I was "not expected to finish, we just want to see how far you can get". I finished in half the allotted time, and they didn't seem to know what to do with me. Then they offered half the salary that I was concurrently being offered by another company in the same location, and they weren't willing to negotiate upward when I pointed out that fact.
They clearly weren't interested in hiring someone who could be trusted with serious responsibility. They wanted that mythical creature: the programmer who can operate like an assembly line worker, cranking specs into code in a repeatable and easily replaceable way.
I've seen the insides of many US software companies, and I've never seen one that seemed to take such a dim view of their programmers. You might see that attitude in non-software companies that begrudgingly spend some money on internal programmers, but not in the companies that make their money directly with software.
Salaries paid aren't that much better in these companies though. Expectations of programmer aptitude are all over the map also, companies do like administering those "programming tests" which can vary from very tricky math problems to stuff like "What is the keyword for inheritance in Java?". Thing is that salaries in both types of jobs tend to be similar.
Another problem with these tests is that they are often administered by recruiters who don't even bother to bring them upto date, a friend had a test for a C# programming position which asked him mostly questions about VB6.
It's quite a shame because the government likes to talk about how they want tech innovation to happen in the UK as it does with the US. However most of the top programmers seem to either end up going abroad or getting assimilated into finance or into various gigantic consulting corps.
What makes it weirder is I didn't change company only location
Europeans quote salaries (usually monthly) after taxes, and Americans use pre-tax numbers. They also pay a higher tax rate (and get more, like real health coverage). So when you hear a European say that he makes 4000 Euros per month, that's an after-tax number and it's actually comparable to about $80,000 pre-tax salary in the US.
BTW while I am correcting people, I will also point out that the UK is very rarely described as "European", though nobody would (or can) deny that it's part of Europe, geographically speaking.
Easy experiment I went to jobserve.com a well known UK programmer job site and did a search for the word "programmer"
its breakdown of offered gross salaries is this
Not stated on job 39
Below £15K 1
£15K-£20K 28
£20K-£25K 79
£25K-£30K 173
£30K-£40K 286
£40K-£50K 247
£50K-£75K 166
£75K-£100K 27
Above £100K 11
Suggests a bell curve to me with the median being £35000I don't think this is true. I live in Los Angeles and every place I've worked has paid something close to google/facebook dollars, and all the programmers I know have had a similar experience.
I refuted that, then you are now making a different point than the OP. My advice, don't live in those places. I say this as someone who was born and raised in Virginia.
http://www.payscale.com/college-salary-report-2013/majors-th...
Developers/programmers are vastly overpaid. Including myself.
Look at house prices in the Bay Area or New York: $500,000 for starter houses, and $1 million is not uncommon. Read: someone is making a shit-ton of money, and it's not us.
Executives are overpaid. Our numbers are merely creeping up to our real value, and still 25 to 50 cents on the dollar. We're just less underpaid than most of the poor saps out there.
I think the more interesting question is: how much higher can programmer salaries go if they play their cards right? Programmers seem to have positioned themselves as a step above IT. But there is money in perception and the perception you want is to be just a notch below the "real men" (execs). This is particularly true in places that aren't software houses, but have programmers internally. What's important is not just supply and demand, but the perception that quality matters, as well as having easily digestible signals of quality.
Compare programming to accounting. I don't think the intellectual horsepower necessary for the two jobs is that different. But accountants at big companies make more money, and external accountants at accounting firms make even more. Why? The demand is obviously there--everyone needs accountants. Supply is limited--accounting takes some mental horsepower. The same things are true for programming. Do what's different? The difference is that there is a perception that quality matters, and there are proxies for quality (association with a big firm, education, CPA) that are easily digestible by C-suite execs. Companies don't cheap out on their accountants or their lawyers because there is a perception that executives will be held accountable if the company suffers problems related to that choice. But companies aren't afraid to cheap out on programmers. If a project fails or is late, there is a perception that that's just how software goes, no decision they could have made could have changed the outcome.
I think programmer salaries are going to continue to go up. First, Google and Amazon, etc, are creating a perception that quality matters. They aren't hiring the cheapest people they can get. Second, the next generation of F500 execs will have grown up with their friends taking a gig at Facebook instead of going to Barclays or McKinsey. That's extremely important for the profession. Programmers want the industry to be seen as being in competition with banks, consultancies, etc, for "talent." Third, I don't think supply is going to expand, and I feel like industry groups may move to create certifications (rigorous ones like CPA or Series 7) to create indicia of quality.
I'm in no position to judge this, but I wonder: With increasing visibility for the cost of digital security/privacy to a corporation, isn't there hope for better valuation of programming by the "C-suite execs"?
I think smart phones are also a good example. I think people are willing to put up with crappier software on their desktop than on the thing that they rely on to make calls, send important e-mails, etc. If the iPhone was as glitchy as say Win95 Apple wouldn't make any money.
The market is more competitive and there is progress in the crap people accept, not only in phones, but everywhere (still too little, though. Recently, someone asked me to figure out how to set their new €100 or so radio alarm clock. I read the manual. The thing looked nice, but was a nightmare to operate. Things like "wake me an hour earlier tomorrow" were impossible to set, even with the manual in hand. So, I advised to return it. The guy listened, but I would hope that, sometime in e future, people would not need my advice to vote with their wallet)
More generally, I don't think online education is the big game changer people on HN seem to think it is. Modern online education really doesn't buy you anything that hasn't been available for decades through correspondance courses. It's all just reading and writing and that can be easily done over e-mail, fax, or even physical mail. People who think online education is a game changer don't understand the point of education. It's not really about learning. It's about signaling. The most important part is the degree that some people get and other people don't get, with the name on the degree from a school that some people got into and other people did not. That's what the industry cares about.
I love the quote from "Good Will Hunting" where Will points out that there isn't anything in a Harvard education you can't get for $10 in late fees at the public library. That's true and always has been. But the education isn't the point. It never has been.
Accounting and consultants are good examples. They aren't higher quality, esp compared to cost. They just have better PR, marketing, and thus provide an out when the shit hits the fan. "Hey, I picked the topped ranked firm, can't blame me for them fucking up."
I think using proxies for quality are better than what we have in software right now, which is no focus on quality and working with the assumption that software will be late, buggy, etc.
Also, I don't see the point in being ideological about it. Google and Facebook exist by selling peoples' privacy in ways that people don't really understand. Does that keep people from working in Silicon Valley?
Disagree with the second statement - I may be wrong, but I think at least a lot of Google's revenue comes from placing ads in search. No selling of privacy, or at least done in a way that people completely understand.
And of course, advertising is dependant on companies wanting to create proxies for prestige and quality. It's called branding.
That does not describe me, software engineers I know, most places I've worked (any in last 12years), nor the industry I work in.
People claiming that is how the software industry is are usually trying to sell you a service, tool, or ideology.
I'm speaking from personal experience here: I was homeschooled for K-12, and I went to an average college and a prestigious law school. So I've had basically the full range of educational experiences across the continuum you're talking about, and I can tell you with certainty that there are significant differences completely unrelated to signaling.
Much of a quality education takes place outside the classroom, and may not be strictly required by the curriculum itself. Whether online education, via greater interactivity relative to previous forms of delivery, can approximate this benefit is an open question -- but "live" education (in person or otherwise) provides benefits that are simply not available to an isolated reader of a static text.
The Good Will Hunting quote about Harvard is cute, but it's false.
The value of simply being in an environment for 4+ years, mashed together in tight confines, with 10,000 other people WHO ARE ALL AS SMART OR SMARTER THAN YOU, is incalculable.
Honestly, 10 years later, I would drop another $150k just to repeat the experience.
Will is specifically insulting the guy for memorizes passages from books and not thinking independently, and the student is bragging that his degree will make him rich anyway. No one is downplaying the unique opportunity to learn from peers at college.
CPA certification is required by law in most (and probably all) US states for accountants that prepare certain kinds of financial statements, e.g., the statements that publicly-traded companies have to file with the SEC. A merger or an acquisition (of a company public or private) is probably another situation you cannot successfully navigate with accountants that are not CPAs. (Possibly the same thing applies to any sufficiently large bank loan to any company, public or private.)
ADDED. In contrast, a lot of accountants provide data intended for their employer's internal consumption, and the law does not require degrees or certifications for that type of accountant.
Teach Yourself Programming in Ten Years - http://norvig.com/21-days.html
Additionally, programmers would do well for to adopt an accountants mindset toward explaining and justifying the reasoning for everything. My father's a tax acct/atty Who worked for the IRS for ~10y and now runs his own practice. I'm a "highly paid" programmer in Mountain View. I see a lot of parallels, but the difference in the business model is most glaring.
EDIT:
Perhaps a better word would have been "potential," as in potential revenue. The conclusion that spending $Xk on engineering will generate $Yk revenue is never guaranteed. This is what a typically tax accounting conversation sounds like: "I will save you $Xk in taxes for $Y." Conversely, engineers at best can predict that they will generate $Xk revenue while necessarily costing $Y. This is the distinction I was making.
Sometimes everything you sell is made of software or information services. The value of programmers is not indirect in those cases.
I've boiled down my programming-skills to people sometimes by saying "I can use computers/web/IT to do one of two things: bring in more revenue, or reduce your operating expenses". That's pretty much what everything boils down to.
Accountants, almost by their definition, aren't going to be able to increase revenues. They might increase profit by reducing outlays, or shifting money around to different tax years and such, but fundamentally accountancy activities aren't going to increase revenue.
Most IT projects don't increase revenues on their own either - it's generally in conjunction with initiatives from some other department. But sometimes the increase in revenues that can be generated with strong IT/web initiatives is enormous.
However... most of us are focused on the 'saving money' aspect, similar to accountants. We can optimize processes in an organization, increase auditability, generate more reports faster, etc.
EDIT: "The same direct profitability cannot be said about programmers. At best it is indirect" Ummm... just to be clear, yes it can. If I do a project for someone that costs, say, $100k, but allows them to bring in, say, $3 million in extra revenue, it's a no-brainer. The project increased revenue (and, well, it's a no-brainer to do if it increases profits). But I may do the same project for $100k which allows a company to reduce its internal helpdesk needs from, say, 25 people down to 5 people, saving $400k per year. That should generally be a no-brainer too.
It's pretty easy - I'd say often easier, to justify developer or software project cost/benefits/ROI vs an accountant's abilities, simply because the laws surrounding taxes are impossible for anyone to fully understand. That huge tax deduction you got might come at the expense of an audit 3 years from now. Even if you 'win', the cost of the audit needs to be factored in later.
Here's the problem I have as a manger. Answer me these questions:
1. How do I know your software will actually allow me to replace 20 people?
2. How do I know the project will succeed, i.e. actually finish in a usable state?
3. How do I know the project will be on-time or on-budget?
Historically, software projects fail all three of these questions rather regularly. And most people who have any kind of dealing with software know this, so they know that it may end up costing them $200,000 to replace old software with buggy new software which doesn't do everything the old software did, requires training new people, and maybe doesn't even reduce costs.
That's what the parent meant - software projects are not as predictable as accounting. They also tend to take much, much longer and cost much more before you see whether they worked or not.
But it's very hard for a potential client to gauge how good someone is. As opposed to accountants, who you can tell are good by school, company they work/worked for, etc. With programmers, at least today, you really don't have anything near that level of credibility - at most, you can work with firms that have a proven track record, but like you said, they cost a lot more in the long run.
When talking about hiring an accountant or firm, it's still a crap shoot until you have a relationship and track record with them.
There's also a lot of government intervention to make sure they act legally - I'm pretty sure that most countries force CPAs and lawyers to have a minimum level of credibility (studying, passing tests, etc.) This makes it easier to make sure the majority of the population makes at least decent decisions.
"Additionally, programmers would do well for to adopt an accountants mindset toward explaining and justifying the reasoning for everything."
It'd be great to be able to do that all the time. OFTEN, however, the 'programmers' aren't treated with the same deference accounting is given, and aren't told about strategic plans and directions. They're effectively kept in the dark and treated as assembly-line workers. Any justification that a developer might give for implementing a change can be dismissed because "you don't have the full picture", followed by "and we're not giving you the full picture".
What was odd about that situation (one in particular, been in 2 I can recall) is that the development/IT people are often positioned in such a way as to have to be aware of everything, and sometimes know more about what various departments are doing, where efficiencies can be implemented, and possibly what changes could benefit the org as a whole, and yet still get treated as line workers.
I realize not every developer has to go through this, but if you recognize yourself in that situation, realize it gets better, and you can do more with your talents/skills if you want to.
Of course, it's much easier to navigate yourself into that sort of position if you're an external consultant than if you're a salaried engineer whose manager hands you specs. Figuring out how to make that shift within the confines of a larger company's bureaucracy is phenomenally difficult.
Whether the contribution to net income is direct or indirect is irrelevant in determining that person's contributon to the bottom line. 1 accountant who bills $500,000 isn't really different than 10 engineers who build a product that brings in $5m of revenue, in terms of the bottom line.
Direct versus indirect is, however, relevant to compensation. It's much easier to negotiate a higher salary when your contribution to the bottom line is direct and easily measurable. But that goes to my point of there being more things that go into salaries than supply/demand. Whether your contribution to the bottom line is direct or indirect shouldn't affect salaries, theoretically. In theory, people don't get paid what they're worth, their salary is set by market forces and supply/demand. But in practice that's not the case.
That said, if you're a CPA and you're good with VBA, you're in a good spot.
Your points about the perception of quality and digestible signals of quality are spot on, but what you're describing still boils down to supply and demand.
Supply and demand is a dynamic, complex system of the ever changing wants and needs of the producers (i.e. programmers producing code) and consumers (i.e. companies purchasing code) in a marketplace that determine prices (i.e. programmer salaries).
All considerations of programmer quality, signals of quality, type of programmer required for a specific job and so on are encapsulated within "supply and demand." It's an elegant system!
Programming isn't a "learn it once and you're good for life" sort of career. Programmers have to keep learning every day to stay relevant.
While more exposure to technology and better education will create more programmers, I think the demand for programmers will always outstrip the supply.
As software becomes more complex and critical, more companies need not just people who can code, but mature engineers (http://www.kitchensoap.com/2012/10/25/on-being-a-senior-engi...). Meanwhile the path for more of those to appear in the global economy involves waiting for the standard of living to rise across the world, more people to grow up in such an environment, get their education and at least 10,000 hours of experience.
>when one black guy does something and then other black guys go "OH DAMMMMNNNNN"
>blowing my load in someone's mouth
>jiggly breasts
The box is for happy thoughts. Most people find sex a pretty pleasant topic, even if occasionally juvenile.
We filter out hateful or racist things. (I.e. those aren't happy things.) We also filter out the random letters, though I like to leave in the JavaScript injection attempts.
Jon writes on behalf of himself for techcrunch. As I'm sure you realize, we aren't interested in "locking things down".
We are always looking for good people, as is everyone else. The level of skills and capabilities out there is much lower than the demand, and given how much money is involved it is pretty surprising that we aren't, as a society, as the globalized interconnected species we are, training more people to develop the skills. Especially when the tools are so in reach and you don't need formalized training or get licensed or whatever.
We hire between 2-4 people a month, whenever we find a good fit. We are especially looking for team leads and technical project managers, but if you are good then we find a way to make it work. Engineers who can communicate and lead are the limiting resource.
And if you don't think that "jiggly breasts" qualifies as a "happy thought" on a corporate homepage then it's probably not a good match...
It’s not until you reach a near First-World level of development that pursuing your passions rather than escaping poverty seems like a reasonable and/or admirable thing to do.
and i don't think the problems of telecommuting are going to change for a while - reproducing physical presence is hard.
what will change sooner is the rise of internal markets (and development) in these countries. the people there want software too, and local companies may be able to win out in some way (eg more sensitive to market requirements, lower prices). once that happens, then the same software may start to be sold in the usa.
so demand will be lowered, eventually, but the process is indirect. cheaper programmers will write code for local companies; competition from the code they write will drive down the demand for code produced in the usa, and so lower programmer demand and salaries there.
the "passion argument" is bullshit. i know plenty of passionate chilean programmers. they're not just in it for the money.
"So why aren’t there more people drawn into the[any] field out of sheer interest? Because when you’re poor, which most of the world is, money is more important than passion. It’s not until you reach a near First-World level of development that pursuing your passions rather than escaping poverty seems like a reasonable and/or admirable thing to do."
A new tendency here -- to hire remote "code generators" in India or East Europe and to manage them having only managers or architects on site. So, this transition of development jobs to East the author doesn't see, has already started here in Germany. And as a programmer you never get rich in Germany, you have to move to management.
Despite the latter and probably due to the former, it's extremely hard to find the right people.
That's basically what we look for, and trust me, it's very difficult to find someone who comes close. Code monkeys, OTOH, are easy to find.
My current job is with a distributed team. I'm in St. Louis. Others are in Toronto, New Jersey (previously was in Spain), and South Carolina. It works well for us since we don't have "must-be-locked-down-on-site" sorts of projects (e.g. government contracts)
You are asking for someone that can complete an entire product cycle by themselves. The power of a company is in bringing together complementary people that complete a whole, not in finding a single person that does everything you need. Why would a person with the skill set of an entire team want to work for a company, rather than starting their own?
I have been in this full lifecycle role almost my entire career, often as a consultant, and it has benefits and downsides. You are always learning something new and have a wide view of the software world, as well as the ability to really dig into new toes of problems. But sometimes you feel a mile wide and an inch deep.
This is only a few steps beyond what anyone who completes a CS degree does at least two or three times during their coursework. If you take one of your end-of-year projects, do the work to make it actually robust enough for other people to use, and share it with the world (then do a few iterations of "wow, people aren't using this how I thought" and "wow, apparently that wasn't robust at all" and "damn I need real revision control", or even "huh; no one seems to want this at all") -- and fix the things that were wrong with your first attempts -- you're now far more valuable working any part of the process in large project dev than any of your classmates.
Your project doesn't need to be big -- it probably shouldn't be, or you'll never get it out the door -- but scoping it is a lesson in itself that's really valuable to future employers.
This is how I got my first software engineer job, fresh out of undergrad with a major in music; I had developed a set of music theory training drills, put them online (for free) and had already fought my way through a lot of lessons about browser incompatibilities, usability for non-technical users, how to support non-technical users effectively, etc. etc..
There was no way in hell I was ready to start a business of my own, at that point, and I was eager to work with more experienced developers -- I wanted to learn better ways to solve the problems I was struggling with -- so in seeking a job I wasn't just someone saying "I learned some stuff in school; can you pay me money for it?". I was saying "I already know somewhat what you do here; I want to learn how to do it really well, with you -- will you pay me to do that?"
I've completed an entire product cycle by myself, more than once, but still work for a company.
Working for a company means I don't have to go out and find the customers, I don't have to do sales and marketing, and I don't have to do the hiring, firing, and day-to-day management of employees. Basically, there's more to running a company than the parts of a product cycle, and insofar as I might be capable of doing all of those other things, I don't enjoy it as much as focusing on solving problems.
No, all you need is access to a computer and someone to start you going in the right direction. And the latter is really just a nicety. You can get there without it.
I'm largely self-taught, with a little push back in Elementary School. They introduced the ideas and taught us to write Apple II BASIC programs. I took it from there.
I eventually got a 2-year degree, but I practically slept through the classes. I learned a bit about database normalization, and nothing else. 4.0 GPA.
My first job didn't care about the degree at all. They only cared about my actual skill. I stayed there long enough that any other job would know I had skills. And my career was on its way.
There's no need for an expensive education.
However, you do need to have a head for logic. Passion for logic helps tremendously. And a computer.
But who doesn't have a computer these days? I don't know anyone who doesn't have one. And there are charities that help people get computers if they can't afford them.
So no, I don't think rich-poor artificial scarcity is what drives the price at all.
Part of my family is from a small fishing town in Croatia, I go the their every year on holiday. And every year I see so many intelligent and hard working people there who walk around with that lost expression on their face, longing for a way to make a good living. But there's no role models, no people to set an example. The wealthiest guy in town owns a cafe. To them, what is programming? How do you convince someone like that to spend a month's salary and many more months of hard work learning something when they have no sense of the implications or the benefits of it. A lot of this world doesn't even know what programming is or why we need it, no wonder programmers are in short supply.
An American businessman was at the pier of a small coastal Mexican village when a small boat with just one fisherman docked. Inside the small boat were several large yellow fin tuna. The American complimented the Mexican on the quality of his fish and asked how long it took to catch them. The Mexican replied only a little while. The American then asked why didn't he stay out longer and catch more fish? The Mexican said he had enough to support his family's immediate needs.
The American then asked, but what do you do with the rest of your time?
The Mexican fisherman said, "I sleep late, fish a little, play with my children, take siesta with my wife, Maria, stroll into the village each evening where I sip wine and play guitar with my amigos, I have a full and busy life, senor."
The American scoffed, "I am a Harvard MBA and could help you. You should spend more time fishing and with the proceeds buy a bigger boat, with the proceeds from the bigger boat you could buy several boats, eventually you would have a fleet of fishing boats. Instead of selling your catch to a middleman you would sell directly to the processor, eventually opening your own cannery. You would control the product, processing and distribution.
You would need to leave this small coastal fishing village and move to Mexico City, then LA and eventually NYC where you will run your expanding enterprise."
The Mexican fisherman asked, "But senor, how long will this all take?"
To which the American replied, "15-20 years."
"But what then, senor?"
The American laughed and said "That's the best part. When the time is right you would announce an IPO and sell your company stock to the public and become very rich, you would make millions."
"Millions, senor? Then what?"
The American said, "Then you would retire. Move to a small coastal fishing village where you would sleep late, fish a little, play with your kids, take siesta with your wife, stroll to the village in the evenings where you could sip wine and play your guitar with your amigos."
Get younger, move, and/or compromise your beliefs to work on moronic projects throwing money to the wind.
God with such a framework, we might even accidentally elevate the discourse beyond that of a comic-laden TC "article".
The problem isn't the supply of people who believe they are programmers. The problem is the supply of amazing people who do things we don't even have words for, but we end up calling "programming" anyway.
I actually think we're underpaid, and that's a problem, because if an engineer only costs $100-200k, then executives can cost-justify using programmer time on a lot of stupid shit that doesn't add any value (the hits, the projects that deliver $1 million per person per year in value, make up for it). The fact that software adds so much value (on average) should give us a huge risk allowance (that startups have visibly capitalized on) but it's only people with VC connections and executive douches, for the most part, who can actually take that risk.
It's not even about money, from my perspective. Engineer salaries are low compared to the value we add, but reasonable for the most part (we don't starve). What bothers me is that 90% of software engineers have to do stupid stuff with minimal autonomy or career growth, and I think that engineers (as a class) would be better treated if they were more expensive. Of course, the AbstractVisitorSingletonFactory crowd (who bring down the reputation of the field) would all be fired, but that's a good thing, too.
But sure, the work market did come back. Just pity the people coming out of university at the wrong time.
Even companies doing relatively well were so worried about the future that hiring freezes were the norm across the board.
If you were really exceptional and really well connected or had very attractive experience, you could still find something, but it was certainly a very difficult time for a lot of people I know working in the industry in CA around that time.
I chuckled at this, because I went into a CS program after the bubble burst and when jobs looked pretty scarce. By the time I came out things were rolling along nicely. I went in because I genuinely like this stuff, but the job on the other end is a nice perk.
Why would I pay a software engineer lots of money to write an entire system when I can get the engineered parts for free and hire a software mechanic (IE: less skill and less pay) to make the changes?
I've already worked at a few companies where we should have had 3 or 4 developers and only had me because of open source software.
This is why I plan on running a business that utilizes it rather than a career that depends on it.
However, solving unique problems (which may have value in solving them) do not have off the shelf solutions.
Valve just launched a beta of their Steam client for Linux. There was nowhere for them to just download and use it from- since it was a unique problem.
For every company that's not hiring 3-4 engineers in favor of just one guy, there may be another 3-4 companies hiring one person instead of not doing a project entirely. This is similar to what happened to the demand for computer skills when computing itself got drastically cheaper: the increase in usage more than made up for the fact that an individual task was cheaper.
Now maybe the act of tying disparate open source products together isn't the same sort of programming we did in the past (though it is software engineering). And maybe some day we'll actually finish writing all this software we're working on and it'll be good enough.
Not to mention Linux, Apache, Ruby on Rails, Java, Git, Vim etc. ;-)
I don't think you can really say there is a correct number of developers that you "should" have. For example most of the software projects I have worked on "should" have had hundreds of developers, because we would have had to build not just the app but the surrounding infrastructure such as HTTP server , DBMS etc.
When productivity is increased by easy access to open source, the scope of projects tends to go up too. Back in 1999 a website that had some HTML text and a few images was generally good enough.
Now people want sites with social integration , full text search , streaming video etc so even though the parts are easier to fit together there are more of them.
You were perhaps able to do the work of 4 developers, but if 10 new positioned opened across multiple companies like yours due to the same effects it is still a significant net gain that has only helped contribute to shortages and rising incomes.
I think the answer is that it tends to be a complementary good, driving demand for developer labor. Apache, mysql, ror, etc, let more of a company's software budget be paid to labor than would have happened with Netscape server, oracle or some costly 4gl language.
There are times when it is a plain substitute, especially when combined with that mechanic you speak of. See http://mikecr.it/ramblings/drupals-golden-handcuffs for more on that.
More on complementary and substitute goods: http://www.joelonsoftware.com/articles/StrategyLetterV.html
Most companies if they didn't have access to open-source software wouldn't pay for the 3-4 developers "it replaced". Just like people wouldn't buy 99.9% of the stuff if they couldn't download it.
open-source lets companies do more, not less.
My argument isn't about what a company can do with open source (it's clearly more, for less). My argument is that as a result, they will need less developers and the developers they do need can be paid less.
"This sounds like the "pirating software costs us TRILLIONS" false argument."
Piracy nearly put my last company out of business. Say what you want about it, but I saw the direct effects. When I stopped the cracks on the torrent sites (which was a cat/mouse game), my sales jumped up as much as 30%.
The direct result of piracy is Software-as-a-service. Now you get to pay a monthly fee for software you normally would have only paid once.
To learn Oracle, you needed a job where you had access to Oracle. This gave employers a lot of leverage. They could hire young people eager to learn the ropes (and willing to accept a salary that was small compared to their ability to add value). This reduced the leverage of older people, who were in competition with young people willing to work for peanuts to get into the game at all.
Now, with options like Postgres, people can learn and use a production-quality database without having to pick up a phone and pull out a credit card. The effect of this is that engineers have more options, and are more aware of how much value they actually add.
In the very-long term, this is a wealth transfer from relationship-peddlers with fat stacks (money, capital) to technologists who can actually think and solve problems. It might take a decade, but possibly a century, but it is happening. It's just very slow, and progress is not monotonic.
yeah, you can double or triple your productivity by using code written by those before you, but, so what? it's always been that way. and if you're in a corporation, does it really matter if its OSS or proprietary but just slightly cheaper than writing it yourself?
i'm not knocking OSS here. i grew up with it and I think it's amazing. a godsend. but it's existed for 40 years now---don't you think if it was that amazing it would have already won the "war"?
All this is a good thing though, programming is slow and data is agile, as talked about by Peter Norvig in his startup school 2008 speech http://www.youtube.com/watch?v=LNjJTgXujno
Startups should aim at doing as little programming as possible and leaving it to data crunching.
You can get pretty far extracting the math behind the meaning, but lack of meaning is still deathly apparent.
We should fix that sometime.
You think MMOs kill brains in south east asia now? Wait until software acts like a boyfriend. Every site (read: website/app/software) could be unique, well designed, and work cross platform by telling the system what you want (remember: in this delusional scenario the system understands meaning to avoid the unintentional vengeful djinn problem).
You think multivariate testing is omgballz amazing? Imagine if ad networks share a sophisticated personality model (instead of: likes cats, doesn't like monster trucks) of you. Every site you visit could be rearranged to appeal to your individual design sense, buying patterns, and social expectations. A/B testing basically tries to suss out your average user so you can appeal to them. You leave your non-average users in the dirt by optimizing for the common moron.
It's possible and I think the incumbent giants will miss it whenever it happens (5-10-50 years out).
I love machine learning don't get me wrong, and I'd like to see Skynet (hopefully friendly) in my lifetime, but the current state of the field does not reassure me on this matter.
Beliefs based on other beliefs generate even further out beliefs unhinged from reality. It's not that they aren't true -- they just aren't true yet, and imagination doesn't count as ground truth (because magic doesn't exist).
And your attacks on the singularity are misguided. You think singularity people are retarded and your anti-singularity possie are holier, yet you don't have a coherent anti-singularity argument.
Any fool can tear down a barn, but it takes a carpenter to build one.
People have just been saying "real soon now" for 60 years. Obviously we are more "real soon now" than back then, but it's still unclear how soon we can be.
My favorite knock down is the "when computers get fast enough, we'll magically have AGI/hard AI." If that were the case, we could have really really slow versions now.
Theoretical vs. practical architectures matter. Nobody can imagine an iPad's software ecosystem if your model is vacuum tubes and single tape turing machines. But when you hit CPUs, shrinking processes, and GPUs with 6 teraflops on a card, you see how impossible your goals were with a 0.2 MHz room-sized computer with 500k of memory.
If you immediately know the candle light is fire, then the meal was cooked a long time ago.
Email's in my profile.
As long as programming jobs are worse than regular jobs, people will require higher compensation to take those jobs. More stress, more requirements = higher compensation.
And what do you mean, "worse than regular jobs?" Have you looked around much lately? Sitting in front of a computer all day doing what you love pales in comparison to about 95% of all jobs on the earth. And do you really think "HR" people just go home and chill? Everyone has responsibilities that exceed their billed hours. That is part of life.
Saying everything can be outsourced would lead to all American actors being replaced by Bollywood or Korean or Chinese actors. There are forces other than price of labor acting in the market.