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 we...
Why should somebody whom society left behind be expected to pay in their pursuit to have a normal life like everybody else? These people are just getting their lives started, I don't want them to have a looming payment hanging over their heads.
Do as you wish, of course; it's your (potential) money and your time. My perspective was that maybe having some of the money back would allow you to teach more people. Like, that you can afford to donate money to ten people, but you could loan money to hundred people; and although getting a gift is better than getting a loan, hundred is also more than ten. On the other hand, if money is not the bottleneck but your time is, then this doesn't make sense. No "should's" were involved in the calculation.
Also, payments in style of Lambda School are not that bad. They are limited in time (unlike school loans), and you only pay if you get a well-paying job. That means that having the new job and the debt is already an improvement over having the old job (and then the debt expires so it becomes even better), and if you fail to get the promised new job, then there is no payment.
Things are pretty good now, and seem to have gotten even better since Dan's 2015 post, but something could change. Given how poorly we understand this, and the wide range of ways the future might be different, I think we should treat collapse as a real possibility:
Poor understanding is in the map, not the territory. I started to write a comment arguing that this is incorrect, that the factors which cause programmers to be well paid are straightforward and aren't going to go away. But instead of that, how about a bet.
Here's the US Bureau of Labor Statistics series for 2nd quartile nominal weekly earnings of software developers (applications and systems software): https://fred.stlouisfed.org/series/LEU0254530600A. They didn't seem to have mean, median, or other quartiles. There are other series for different subsets of programmers, like web developers; I chose this one arbitrarily. The series is not inflation adjusted.
I will bet up to $1k at 4:1 odds that the 2030 value in this series will be greater than or equal to the 2018 value, which was 1864. So $1k of my dollars against $250 of other peoples' dollars.
(I'll accept bets in order of their comment timestamps, up to a maximum of $1
...We don't understand why programmers are paid so well
It might be pretty straightforward.
GDP is 2x higher than in 2000Real GDP per capita is up 25% since 2000, so some category of workers must have gotten at least 2x more productive in that timeframe, so their real income should be 2x higher. That seems like a plausible story for the software engineering career.
This simplified model is consistent with my inside view. I can help sufficiently big companies save $millions/yr, or earn $millions/yr more, by writing software that streamlines some detail of their internal processes or external interactions. And my ability to do this is obviously much higher thanks to all the tools that exist today that didn’t exist in 2000: cloud computing, tons of third-party APIs, ubiquitous mobile phones with fast chips and internet connections, huge high-resolution monitors, Stack Overflow, etc.
The tech entrepreneur and investor Naval Ravikant talks a lot about how “leveraging yourself up” is the key to getting rich. E.g. these days Joe Rogan makes $1M for recording a 90-min podcast because he built a following. He has distribution as leverage.
Programming in the internet age is an unprecedentedly hug
...I used to work as a software engineer. As the company I work for has grown a lot, I now no longer write code, but do software design, and hire new team members in different positions, inluding PMs, visual design, usability design, backend programming, and frontend programming.
It is extremely difficult to find good programmers, especially frontend programmers.
I'm pretty sure that the reason here is not that it is difficult to become a good programmer, but that a lot of people choose not do, for a number of reasons.
Two reasons that I have personally encountered:
An interesting analysis would be to find the relevant reference class. What other group is/was similarly overpaid, for how long and for what reason?
Being a good software developer is very very difficult. Only a few percent of the population have the wiring, the wattage and the inclination to do it for long enough to be very productive.
Compare coding with portrait painting or composition for orchestra or pro golf - anyone can learn the basics of them, but very few can become good enough to be paid for them.
The thing is, you don't have to actually be particularly good at software development in order to get a high-paying programming job. Even mediocre or very junior programmers can easily break six figures, something that's much harder even in other intellectual labor positions in the Bay Area (e.g. technical writing, which is what I do). So, while I don't disagree that being a good software developer is very difficult, I definitely don't think that explains away the issue discussed in the OP, and I definitely disagree that "very few can become good enough to be paid for" software development.
(Source: I work for a software recruiting company where I have access to information on both the skill level and the salary of thousands of software developers.)
I don't think your experiment gives much evidence that "anybody" can learn coding, just that it isn't very strongly correlated with social status.
randomsong describes at least 15 successes and zero failures, which is certainly not what I would have predicted in advance. If we take this at face value, either they have a pretty strong filter for who they teach[1] or it's pretty decent evidence that "anybody" can learn programming, at least for colloquial definitions of "anyone".
[1] Which is the opposite of what they're trying to have, though of course that doesn't rule out that they have one anyway.
Last year, my dad (60 years old with 0 coding experience) picked up coding and I think he's gonna do great
That's not the question being posed. The question being posed is whether your dad is now in a similar enough reference class to you to be considered a substitute for you, and thereby lower your salary.
I'm inclined to agree with Mark Roberts here. Not everyone has the mental horsepower and right ticket in the lottery of fascinations to be a programmer. It's like with any other trade skill. Can I do woodworking? Absolutely. I can knock together small projects fairly easily. But do I have the aptitude and interest in woodworking to become a professional carpenter? Absolutely not. Can I do plumbing? Sure. I've replaced my own sinks and faucets. But do I have the aptitude and interest to become a professional plumber? No way. Why is programming any different?
You touched on something important here. The most important hurdle I have to overcome with students is making them feel empowered and needed so they care about coding. Afterwards, the problem solving skills become easier to teach.
If you are the only carpenter in town and your family needs a home, you can absolutely care enough to become a professional carpenter.
You can also develop the aptitude and interest to become a professional plumber if you feel valued and people around you needed a great plumber.
Alternative hypothesis: for most of human history returns to analytic abilities were anomalously low due to the bottleneck of geography limiting returns to scale.
By "we don't understand", you mean "I don't understand". There is no great mystery; programmers are paid as well as they are because of the amazing efficiency improvements their employers get by automating work. If you think about how much money you make your employer (or even better, talk to your company CEO or someone close enough), you'll see that in fact, programmers could be paid a lot more if they were aware of their impact.
Whether it's "fair" or not is irrelevant - you can accomplish a lot with littl...
What we don't understand is why this has persisted: the barriers to entry are low, the pay is high, why don't people shift into the field and bring up labor supply?
The barrier to entry is higher than you think, it just takes the form of a talent requirement rather than a training requirement.
Also, smart people often live in a bubble of other smart people. Get out of the bubble and then try again teaching programming.
Recently I got a temporary side job teaching "computer skills" to random people. Most of them had serious problems understanding the "IF" statement in Excel.
Timescales matter. The modern internet's only a bit over 25 years old, and common developer compensation has been truly crazy only for maybe 15 years of it. Easy to predict a bubble, difficult to predict the size or when it ends. People were starting to notice in the 70s, and take it seriously in the 80s, that the idea of a career was changing. Nobody could expect to work for one company for many years anymore. In the 90s, that expanded to industries - most people don't (or shouldn't) expect to work in one TYPE of job for an entire car...
I think coding just generates a ridiculous and growing amount of value. Look at this list of companies with large earnings per employee. Note that they all specialize in some form of tech or finance. With a regular job, you're bottlenecked by how much work you can accomplish as an individual. With programming, the value you generate is proportional to how much value your code generates. A Lawyer might generate 100,000$ in value per year. The company that makes lawyers 5% more efficient generates 5,000$ / lawyer*year. The lawyer has to dedicate his life to
...I think that automation can save a lot of money, for a company. As an individual, if you automate something for yourself, you probably spent more time analyzing the problem and writing the code, than the task took originally. But in a company, you can automate a repetitive task of hundreds of people. And those people made errors when they did it manually, so you also improved the quality. If you save 40 people 1 hour a week, you have already paid your salary. Actually, the company now got 1 extra hour from those 40 people forever, but they only paid you fo...
A question I have is, what do you mean by "less"? Dan Luu is citing programmers making on the order of $250,000 to $300,000 total compensation, but as a programmers who has made his entire career outside of the Bay Area, I have never seen anywhere near compensation that high. What if the phenomenon is that salaries in the Bay Area are skewed upwards, perhaps due to the cost of housing? In that case, perhaps only programmers in the Bay Area need to worry, as tech firm expansion outside the Bay reduces salary growth, but programmers outside of the Bay will be relatively unaffected (and might even benefit, as demand in other markets increases).
One of my internship mentors at Google told me their average software engineer generates $1 million dollars of value for the company every year. So I don't think it's any mystery why they're paid so well.
From my other comment:
What kind of workers are producing more value? What are the characteristics of a job that enables more value creation? One where there's more leverage, i.e. an hour of work produces more economic value, without a corresponding increase in supply.
Another example of a sector that's seeing much higher economic leverage is white-collar work serving high-cost-of-living countries/cities from within lower-cost-of-living countries/cities. E.g. English-speaking workers from our neighbor Mexico where real income per capita is only 28%...
Zapier is "250+" employees. Automattic is 1153 employees. Gitlab, another fully remote company, is 1117 employees. All of these companies are rather small. I would be interested to see whether they can continue to be fully remote as they scale past 10,000 employees. My suspicion is that large organizations cannot be fully remote, as remote working tools do not (currently) provide the necessary communications bandwidth and latency to allow large organizations to function.
I also bet more than 50% chance that within 3 years at least one of {Google, Microsoft, Facebook, Amazon} will give more than 50% of their software engineers the ability to work from home for at least 80% of their workdays.
If that's not just a figure of speech, I'll take this bet. $100 each?
(This is not intended as commentary on the question at hand.)
You think I would use the language of belief probabilities as a figure of speech???
I’m up for $100 vs $100. Just send me a message at https://m.me/sendmessage to confirm with your real identity.
Update: I lost this bet and have paid out. https://edition.cnn.com/2020/03/10/tech/google-work-from-home-coronavirus/index.html
Summary: we don't understand why programmers are paid so well.
Something I didn’t see addressed here or on Dan Luu’s blog post are productivity (as the main economic reason for wages) and scale ( as an amplifier for SWE productivity )
A SWE is made more productive by the tools available: fast cpus, internet, cloud, OSS, mobile
Cloud and mobile then amplify the value that the modern SWE brings to a business - but not to all of them
Businesses are not charity, they will pay less if they can
Can you talk more about retirement and earning to give? I see you max out your 401k, but am curious how much you have saved for retirement and how much you think you'll need. Retirement fears have been the only cause of trepidation when I think about earning to give.
I handle this uncertainty via diversification.
I've dumped portions of my income into purchasing and building rental properties.
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:
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