Hacker News new | ask | show | jobs
by zanny 4772 days ago
What is / will drive wages down is making the process of becoming an (experienced) programmer easier, by lowering the per case work needing done and lowering the barrier to entry (compare writing C++ in 2002 to 2012), and the resources available) and that most use cases are best suited by high level dynamic languages like Python or Ruby, which have significantly less work investment to get results compared to old favorites like Java or C.

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.

5 comments

I'd also point out that the expansion of SaaS, open source, and mobile app marketplaces impacts this.

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.

This is somewhat offset by higher expectations. Every app better have 9 trillion features and social network integration etc.

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.

What's up with C++ in 2002 and today? If you knew C with classes in 2002 (MFC style) you were good, if you knew GoF patterns you were elite.

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.

> But at least nobody cares about MFC and ATL anyway

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.

Your example is flawed.

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.

This, my point was that you can use C++ make_shared (and eventually C++14 make_unique) instead of manual management, you can get away with a lot more reference passing instead of of raw pointer manipulation, the std now has an actual hashmap implementation now, auto and lambdas make things faster, etc.

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.

Very true. What % of developers are writing C++ however? I'd think it's a reasonable assumption that they're going down (and a cursory glance at Indeed shows this).

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)

If we take ruby, you still have to know ruby, rails, js, jquery, sql, quite a few libs, html, css, be familiar with ie/webkit/firefox, be aware of sql injection, xss, csrf and stuff. Do not forget http, rest, be able to understand caching, dns, proxying, load balancing. It's a lot of knowledge. In 2002 you could get away with a perl script!

use CGI;

Yeah it is very difficult to find Rails developers who are on the market. Wages for Rails developers have certainly been going up in the Bay Area, even including the tons of junior hires, because no one can find senior talent.

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.

Even 1x programmer still has to know a lot of topics or his products will be lacking.
Wasn't the same thing said when we went from hard-wiring programs to writing machine code, then from machine code to assembly, then to 3rd generation programming languages, and so on?
Possibly, however the better you are the faster you work the higher your value per hour. If I can be 3x as efficient as a junior dev I'm still worth more.
If you are introducing bugs that will at some point need to be addressed while "working fast", that'll cut away at a lot of the added value.
This is where experience helps. You know how to be efficient without sacrificing code quality and you also get a better intuition for tracking bugs that you do have.
Yep, and you know what to write tests for