Keep in mind, a lot of what we do in software is either dull or not highly inspiring.
If your work is dull, you are most likely doing lots of intricate bug fixing or feature addition in constantly evolving frameworks. For instance, I recently upgraded an application written in a rapidly evolving javascript framework to use a different object model for integration and acceptance testing. There are patterns, but you can't just automate it. Imagine if the rules for english grammar, spelling, and punctuation change every six months, and your job is to go through Ulysses and Finnegans wake, line by line, and update it (some grammar rules will depend on how you changed a different sentence 8 pages ago). But here's the thing, the once you start the upgrade, the entire book is unreadable until you get it all right, and everyone who wants to read it is getting irritated that you're taking so long. If you're good at that, yep, you can make 150k or more a year at it. In fact, there's a shortage in this field at some vaguely undefined salary that can't be revealed because it's secret.
If what you do is mathematically interesting, you may be collecting privacy shattering amounts of information about people and using it to figure out better ways to get them to click on advertisements, or how to get them to stay glued to their screens. Or, you may accept that this is their life, that you're not trying to get them addicted to their screens, and that you just want those who already live this way to look at your screen rather than someone else's, kind of similar to how tobacco advertising was really about getting people to switch brands, not to start smoking, certainly not before they're old enough and haven't yet chosen a brand and/or are wise enough not to start smoking, certainly not that!
That may be grim, and there are good things to do as well. This isn't the only path to make money as a programmer. But do be aware a lot of what we do is boring and/or useless, if not actively harmful.
I'm on the west coast, not San Francisco, but average rent for a 1BR here is $1700. I make less than half of 150k.
It's whatever, I'm working to move industries. I just look at these numbers for INTERNS and realize I've almost spent a decade treading water with nothing to show for it...all because I picked the wrong major in college.
Extremely disheartening and shame inducing to realize I can't even compete with a college kid on renting an apartment.
Nothing like a daily BART ride to scare you off of working in the Bay Area. Especially one deep enough into the East Bay (with a long enough bus ride to the station) to cut the rent in half.
An hour each way (20 minutes for first and last mile, 40 minute train ride) will save you maybe 30%.
Used to think that, but after you contribute to a pharma company that's out to "improve patient's lives" by waiting until they're on their death beds and using that leverage to extract as much capital as possible...you start to change your mind, especially when you're not even decently compensated for fucking sick people over.
Keep in mind, a lot of what we do in software is either dull or not highly inspiring.
If your work is dull, you are most likely doing lots of intricate bug fixing or feature addition in constantly evolving frameworks. For instance, I recently upgraded an application written in a rapidly evolving javascript framework to use a different object model for integration and acceptance testing. There are patterns, but you can't just automate it. Imagine if the rules for english grammar, spelling, and punctuation change every six months, and your job is to go through Ulysses and Finnegans wake, line by line, and update it (some grammar rules will depend on how you changed a different sentence 8 pages ago). But here's the thing, the once you start the upgrade, the entire book is unreadable until you get it all right, and everyone who wants to read it is getting irritated that you're taking so long. If you're good at that, yep, you can make 150k or more a year at it. In fact, there's a shortage in this field at some vaguely undefined salary that can't be revealed because it's secret.
If what you do is mathematically interesting, you may be collecting privacy shattering amounts of information about people and using it to figure out better ways to get them to click on advertisements, or how to get them to stay glued to their screens. Or, you may accept that this is their life, that you're not trying to get them addicted to their screens, and that you just want those who already live this way to look at your screen rather than someone else's, kind of similar to how tobacco advertising was really about getting people to switch brands, not to start smoking, certainly not before they're old enough and haven't yet chosen a brand and/or are wise enough not to start smoking, certainly not that!
That may be grim, and there are good things to do as well. This isn't the only path to make money as a programmer. But do be aware a lot of what we do is boring and/or useless, if not actively harmful.