I think the real issue with doing music, or writing, or basketball (any sport) for a living is that there is a very small job market when you think about it. Sure everybody listens to music, but everyone tends to listen to the same 20 musicians. Same with basketball, there's only 30 teams, and 15 players per team, that's about 450 players. There's an extremely small number of people who make money in any of these professions, and the rest of the people make little to no money A "programmer" who can't even program fizz-buzz can easily make a decent salary but the equivalent of a musician or athlete with that level of talent is basically worthless. So sure, there's a lot of programmers (millions) who are making a lot of money, but that's because there's an actual demand for that many programmers. There isn't a demand for a million musicians, a million basketball players, or a million writers. There's a demand for millions of shelf stockers, but there's 10's of millions of people who are capable of doing the job. With programming, the demand for people outnumbers the number of people qualified to do the job. So of course they're going to get paid a lot.