First off, you’re going to be offended by this, partially because it’s true and partially because I’m right. The reason you don’t make $80-100k (or whatever the magic number of deservingness [my word, you can’t have it] is as per Hacker News) is because you don’t deserve it, for one or all of the following reasons, or because of some other reason that has escaped me as of this writing.
You have a shiny new CS degree
Great, you did mommy and daddy proud and became the first person in your family to go to college and get a degree. That’s step one, now you need to work your ass off and get good at it. If you think that job will be there on day one you need to wake up and realize that high paying careers are rewarded to people with experience that you may not want to admit that you don’t have. If you’re fresh out of school you’re probably in your early 20s and the perception of you by a potential employer is that you’re young and inexperienced (and probably a fucking know-it-all). They are probably right.
Your work experience is at some small shop and/or you freelance
Great, you’ve been working at some small shop and/or freelancing for the last 5+ years making one off websites for even smaller clients. Your experience is more in customer service than it is in developing and designing. You have no experience scaling because all the sites you build run on some low end shared hosting (or you’re charging them triple to host on your shitty shared hosting account) and the sites you work on get maybe 100 visitors a month, 98 of which are from the client themselves.
You’ve never had to scale/optimize to keep your job
Great, you’re either the best programmer in the history or the world or you’ve never worked on any high traffic / high demand websites. I’m going to assume the latter and keep driving that whole “experience” thing home. If you’ve never had to support the growing demand of a site or service then you probably lack a lot of the real world experience that will take you to the next pay level. Many problems don’t come up until there’s a million database rows and 100k users, that’s when shit gets real and your skill set has to adapt.
You’re a “coder” and nothing more
Great, you’ve pigeon holed yourself into this comfy cozy gig where all you do it code. Guess what, you’re probably making peanuts building Wordpress plug-ins or “web presences” for realtors or some shit like that. Guess what else, no one wants a “coder” and no one wants a “jack of all trades, master of none”. The folks paying good money are the folks looking for full stack developers, maybe not bare metal x86 programming experience, but folks that can hop in and do a lot (if not all) and do it well.
This just isn’t the career for you
Great, you’ve spent the better part of your adult life getting a computer science degree and now you’re pissy because you can’t make 6 figures to type all day long. Turns out, there are many other wonderful careers out there and you’re more than welcome to pursue them. For me, computers are a fucking passion and I get sick and tired of dealing with money grubbing hacks that are only in the game for the pay day. If all you want is the check, you may as well go learn COBOL and be a corporate worker bee.
Okay, so how do I fix how much I suck?
Justin Davis said I should try to give you some encouraging tips on how not to suck, so here they are (I’ll keep it brief, I’m sure you need to call your mommy and cry to her about all of this)
If you’re just starting out, you should be taking jobs based on the experience they can give you, not the lining they can give your wallet. Ramen noodles are cheap and you’re not better than them. No amount of education can prepare you for a total system meltdown at 3am on the weekend (while you’re drunk), that’s called real world experience. Learning the stack is not only the best thing you can do for you, but one of the best ways to make yourself very valuable to an employer. If you’re in computers for the money, I wish you all the luck in the world in your next career. Contribute to open source projects, don’t think of it as working for free, think of it as free experience. Once you actually have experience, don’t be hesitant to demand your value, negotiation skills are just as valuable as your technology skills ;)
Bonus Tip: Required Reading - Coders at Work: Reflections on the Craft of Programming (Kindle version)