"Yet there are people making the same salary as me that literally started programing 4 months ago."
That certainly sounds like a low barrier to entry to me. Compare with the barrier to entry to becoming a doctor, for instance. There, in many locations, you'll be looking at a decade of proving yourself to the club, with hundreds of thousands of dollars in costs to do that, before you are even allowed to start working. Four weeks, and maybe a computer that costs hundreds of dollars, is absolutely nothing in comparison.
> this is why some developers think (and probably should) get paid more. Relative to their co-workers if they can make half as many mistakes they save time both upfront, and bug catching.
But it still boils down to supply an demand, and if employers do not demand those with better bug fixing ability, there is going to be no corresponding premium for finding such people. What your post does indicate to me is that programmers have done a poor job of marketing the importance of bug fixing ability (or whatever features of an experienced developer you think is important) so that employers start demanding the subset of developers who have those skills.
> Programmers in 2016 are generally very well compensated for a low risk, indoor job with a very low barrier to entry.
Most employers don't get it, but Google, Facebook, and others do; programming well has a much higher barrier to entry than people realize.
When I was 10 I could make an HTML page, when I was 14 I started incorporating JavaScript and building websites... A decade later (24), I am still improving and building bigger/better programs (full stack, but mostly data science). I went to school, worked all the way through tutoring for C, C++, and Go, and built websites as well.
Yet there are people making the same salary as me that literally started programing 4 months ago. Those people who just started cannot build a website in a week (or even a few), it takes them months. Even then, thats with help, and it will have loads of bugs.
I know because part of my job is training them. I have to explain how they just tried to access an array outside the bounds. Seriously, the other week I was interviewing a "master software engineer" for an internal role on my team and they failed a basic string flipping question... He's making at least double what I am.
To put this into greater perspective, let's walk through a mental exercise. Say programmer one introduces 1 bug every 10 lines. The second programmer introduces 1 bug every 25 lines. After 10000 lines what do we have?
Programmer #1: 1000
Programmer #2: 400
At an average of 30 minutes a lot of hours of bug fixes:
Programmer #1: 500 hours
Programmer #2: 200 hours
My point, 200 hours is 5 weeks, 500 hours is 12.5 weeks of bug fixes. I'll grant you, this is napkin math, but trust me - this is why some developers think (and probably should) get paid more. Relative to their co-workers if they can make half as many mistakes they save time both upfront, and bug catching. Now compare that to the master software engineer I mentioned, whos already making double what I am... Based on that assessment, I'd likely be underpaid.
All that being said, I generally agree, but coming from a pretty standard office, I can see why people feel underpaid. It's probably because people around them are being over paid.