Summary: we don't understand why programmers are paid so well. If you're a programmer, there's enough of a chance that this is temporary that it's worth explicitly planning for a future in which you're laid off and unable to find similarly high-paying work.
Programmers are paid surprisingly well given how much work it is to become one. Here's Dan Luu comparing it to other high-paid careers:
If you look at law, you have to win the prestige lottery and get into a top school, which will cost hundreds of thousands of dollars. Then you have to win the grades lottery and get good enough grades to get into a top firm. And then you have to continue winning tournaments to avoid getting kicked out, which requires sacrificing any semblance of a personal life. Consulting, investment banking, etc., are similar. Compensation appears to be proportional to the level of sacrifice (e.g., investment bankers are paid better, but work even longer hours than lawyers).Medicine seems to be a bit better from the sacrifice standpoint because there's a cartel which limits entry into the field, but the combination of medical school and residency is still incredibly brutal compared to most jobs at places like Facebook and Google.
My sister is currently a second-year medical resident, and "incredibly brutal compared..." feels like a understatement to me. She works 80hr weeks, often nights, helping people with deeply personal and painful issues that are hard to leave behind when you go home. This is after four years in medical school, with still at least a year to go before starting to earn doctor-level money. When I compare it to how I started programming right out of college, making more money for 40hr weeks and no on-call, I feel embarrassed.
What makes me nervous, though, is that we don't really understand why programmers are paid this well, and especially why this has persisted. People have a bunch of guesses:
Demand: as software eats the world there are far more profitable things for programmers to do than people to do them.
Supply: it's hard to train people to be programmers, fewer people are suited for it than expected, and bootcamps haven't worked out as well as we'd hoped.
Startups: big companies need to compete with programmers choosing to go off and start companies, which is harder to do in many fields.
Novelty: the field is relatively new, and something about new fields leads to higher profits and higher pay, maybe via competition not being mature yet?
Something else: I'd be curious if people have other thoughts—leave comments!
Specifically, I'd recommend living on a small portion of your income and saving a multiple of your living expenses. It's far more painful to cut expenses back than it is to keep them from growing, and the more years of expenses you have saved the better a position you'll be in. If you take this approach and there's no bust, you're still in a good place: you can retire early or support things you believe in.
If being laid off and unable to find similarly high-paying work would be a disaster, figure out what you need to change so that it wouldn't be.
(This isn't really specific to programming, but I think the chances of a bust are higher in programming than in more mature fields.)
Comment via: facebook
I had a similar realization many years ago but I have a very different (and lonely) perspective. Nobody seems to get it, maybe someone here will.
I realized this (unfair income) in 2011 as a junior in university, right after I got an internship at Facebook. They paid me $6000 / month and I had only been coding for one year (literally). Previously I dabbled in multiple other majors and my internship offer was higher than the full time salary of my peers in other majors (whom I respected deeply).
I saw this as an opportunity. During my internship and my senior year, I taught my highschool friend how to code while he completed his major in econ. I figured if it only took me one year to get into facebook, he could do it in two. A year after I got a job at a startup, he got a job (105k base).
My girlfriend at the time graduated with a stats degree and was doing customer support. I thought maybe I could get her into coding too, and I did. A year later she got a job (115k base).
Then I had an idea.... could I teach anybody coding? I reached out to a kid I knew back in high school who had a 2.0 GPA. I figured his life sucked and it did (he was a uber driver). Things didn't turn out so well, I got impatient and I used my power as a senior engineer to get him onto my team at (105k base). Today, he is a much better software engineer making 190k base with alot of RSUs.
During my time at Google I decided to revisit my original question, could I teach anybody coding, no matter their background? So while I was working I reached out to my local community to see if people wanted to learn coding. 12 students showed up and I could no longer focus on my work so I left Google to teach full time.
Then things got interesting. Students wanted to quit because they needed to support their families. So I started paying them, 2000 / month. 7 students were paid, the remaining I made sure to tell them that I can help if they needed money. Thankfully, they did not need my money.
Within a year (2017-2018) I went bankrupt. I needed to answer the question, "could anybody learn coding, no matter their background?", so I painfully cleared out my 401k. Thankfully, my wife got a job as a software engineer (135k base) so I was able to find a job myself.
Eventually, all the students got a job. Every single one, from one who is 40 years old without coding background to another without a college degree. The lowest offer was around 115k.
My RSUs are coming up in 4 months (90k). In addition to my salary, I'm going to use it to accomplish my goal in 2020: to create a coding bootcamp at public libraries so that anybody regardless of race and background could have a safe place to learn how to code and build cool things together as a community.
After I finish I will write about the experience, but not now. I just wanted to share my journey so far because I think it is important to know that you don't have to spend what you earn. You can help the people you care about, only if its one person at a time.
I understand where you are coming from. From my perspective, I don't see the point of helping "more" people. Doing so lowers the quality for the existing students and creates more burden on myself. If you were in my shoes, what would be the inspiration for helping more? For me, I'm just looking for a balance. One person at a time, when a student leaves I'll get one or two more to fill the spot depending on budget.
... (read more)