U.S. Software developer wages fall 2% as workforce expands
computerworld.com
computerworld.com
Most people don't need a tech savant. As that becomes more apparent as it becomes a game of legos putting blocks together rather than having to plastic cast mold every block yourself, I expect mean salary to drop.
The complexities of twiddling with memory have been replaced with the complexities of making a ton of different systems work together in a sane way.
Today you have to know STL, auto/smart/shared pointers, all kinds of right casts, you have to know boost (a huge code base) and on top of that you are expected to know C++0x (or how is it called?) with its lambdas, autos and stuff, while still understanding the whole "classic" C++.
(But at least nobody cares about MFC and ATL anyway)
And don't forget templates of templates of templates which crept into many code bases. And 64-bit (or ARM) is now reality which you should account for.
If anything, you have to know ten times more in C++ in 2012 compared to 2002.
So some jobs will always pay well; the average salary should go down if the average skill need goes down however. (Ignoring for the moment that some lesser skilled development jobs actually pay better as a result of demand)
use CGI;
Maybe this isn't the case in the middle of the country where businesses don't realize that a 10x programmer is easily worth 2x the salary of a brand new programmer.
Ruby may be easier to pick up than C++ but the entire web stack still requires quite a lot of knowledge. Especially when you start talking about scaling databases, distributed systems, fault tolerant cloud architectures, etc.
C++0x is easy to learn. For example, autos is just the ability to say "auto myFloat = 5.0;" and it will default to float.
Lambdas in C++ is fairly easy. right casts? trivial [especially with auto].
Templates of templates of templates are easy as well.
64-bit? ARM? The whole point of C\C++ is to make yourself not assembly. You shouldn't worry about 64-bit vs 32-bit as long as you use proper things.
Modern C++ vs second iteration standard C++ in the wild west days when I was first learning about it is an entirely different affair.
I also contest having to know boost - I work in some KDE projects and boost is only a dependency on around 1 in 4 that I have found. Though qt in many ways becomes the surrogate stack to learn.
About a decade ago I did a lot of MFC/C++.
Form what I see here in Australia one of the reason nobody cares about MFC and ATL is for the last 5 years C++ has been pretty much dead on the Windows platform.
Over here in Oz C# and .Net are the kings of the Windows platform.
Look at services like FreshBooks and Basecamp. The engineering effort to implement comparable solutions used to be immense; now you can buy into online services for less than the price of lunch, with no long-term contracts.
Similarly, look at open source solutions like WordPress. An afternoon with a $5 hosting account and a few plugins will get a site that would have cost you $100K+ in 1998 feature-wise.
I'm also amazed at how often a few minutes searching for an app will get me something that fits the need perfectly - and costs less than $4.
"There are multiple theories for the decline in pay, but a common one cited by analysts is simply that the new people being hired are paid less than those already on the job."
Another possibility is that there are companies hiring "software developers" for jobs that most HNers wouldn't find interesting because the level of software development is low and hence has a lower waged associated with the value generated.
No, that's exactly my point. Hiring would be occurring now because the economy is recovering from the recession, but at corrected wages that do not reflect an artificially bloated cost of living in particular localities.
Is this surprising at all?
Of course, my numbers above are from my own poor sampling.
My personal experience, and from what I have seen around for experienced devs, expect a 5%-6% increases annually (few percentage points above inflation). It is never linear though. You usually you might see this increase as a modest early 3%-4% on your current job, and then if you switch jobs every 3 years or so, get another 10% or sometimes more from your new employer. This is for experienced engineers (5+ years). If you are very early in your career you probably will see higher jumps on your early years.
I kind of doubt it's Code Academy.
This article as of Jan 2013 said Udacity (which IMO is more rigorous than Code Academy) has only placed 20 people and Coursera only a 'handful'.
http://online.wsj.com/article/SB1000142412788732433920457817...
About 350 companies have signed up to access Udacity's job portal in recent months, though it has placed just about 20 students so far.
But the company (Coursera) matched only a handful of students in its months-long pilot
I've heard from industry sources that the same engineer is worth as much as 7% more than he was last year (not including the experience he gained since last year). I'd believe it. I think the qualification bar is just lowered because the demand is so high and supply so low.
A good indicator of use usefulness of this info is that nobody can explain why these wages have dropped. Sounds like they need more info.
* Many (I wouldn't say most but at least a sizeable minority) American programmers and IT workers display reservations regarding the policy of issuing visas such as H1Bs for a large number of foreign workers, because it's perceived as unnecessary or perceived as catering purely to the interests of megacorps. I wonder, do those software developers elsewhere) have a problem with buying products manufactured in China or other countries with low wages? Buying stuff made in China, including from American companies that outsourcing to China, effectively lowers American blue collar wages below the mandated minimum.
* It seems a lot of people on HN are favourable to policies allowing working from home. Most companies still don't have such policies, but I suspect that if telecommuting ever becomes commonplace (e.g. due to software development process or technological changes), it will depress salaries far more than the measly 60~80k H1Bs per year have ever done. For every H1B holder there are certainly many others who are skillful enough programmers and speak English, but cannot work in the US due to the limited number of visas, or don't have a degree, or don't want to take the risk of working under the constraints of H1B, or simply don't want to move to the US for any old reason.
Or live in states with poor economies and no tech jobs of their own and are willing to work for less than what a Bay Area programmer is.
We'll certainly tend towards more telecommuting and less emphasis on physical location though.
H1B abuse presents local economic problems. Wages for programmers working in San Francisco are higher than wages for the same programmers in, say, Lexington, both are higher than China, and all are related to local cost of living.
If a company abuses H1Bs to import cheap programmers from China to San Francisco and keep paying them Chinese rates, San Francisco programmer wages are depressed and SF programmers are disadvantaged relative to the entire local San Francisco economy.
Note I keep saying "abuse". The problem people fear with H1Bs is that their nature opens them to abuse. Not abuse by the immigrant programmers, but abuse by the corporations employing them, which can use the conditions of the H1B program to essentially hold immigrant workers hostage in below-market-rate jobs.
I think you'll find that if you talk to programmers reasonably informed about the nature of H1B visas, most will have no general objection at all to programmers immigrating to the US from China, India, or anywhere else. Only to the particular circumstances of the H1B program, which break local market forces.
I think as a business it makes sense to take advantage of this loophole, but obviously as a developer my wages are being suppressed.
I say either get rid of the H1B program (it's obviously a price issue and not a talent issue) or modify it to give them a fast track to citizenship or some other status that allows them to change jobs.
I totally understand that some programmers feel more competition is not in their best interest. If they would just say they are protecting their turf, then I'd understand. Doctors and lawyers limit the number of licenses, certain trades restrict their jobs to unionized workers, etc.
I'm just wondering if their objections have other grounds, e.g. moral or public policy principles, and in that case whether those principles would apply to e.g. blue collar workers (or phone technical support, or farm workers etc), and whether they would be willing to pay more for US-made products in order to support American-based manufacturing.
> If a company abuses H1Bs to import cheap programmers from China to San Francisco and keep paying them Chinese rates,
I think you're resorting to unnecessary hyperbole here. There's public data on H1B salaries and they're far above median Chinese salaries.
In any case, my question above concedes the assumption that programmer salaries are depressed to some extent.
No, it moves jobs, generally entire categories of jobs, to lower-cost areas. If someone wishes to continue working in that type of job, they must do it in a place with lower cost of living.
> I totally understand that some programmers feel more competition is not in their best interest.
That has nothing to do with anything I said, and in fact I pretty clearly articulated that such a view has nothing to do with the fear some people have of the H1B program.
> I think you're resorting to unnecessary hyperbole here.
I think you're reading things into my comment that are not there, because you wrongly assume I oppose H1B visas.