Your education (whether it's formal by paying a college, informal by life learning) is an investment. Any investment should be evaluated by its expected return which is payoff/risk within a timeline limited by your cash on hand. A startup has a high payoff but high risk in 2- 5 years with low cash on hand. A career is medicine is medium payoff but lower risk in 10-20 years (education plus time to earn) with high cash on hand or ability to get loans. The payoff of owning a franchise business, or three, (like Subway) is high in 5 years with medium risk, but with high cash requirements.
Your maximum earning ability will be limited if you work for someone else, though still potentially high with your list of possible careers (a list that is pretty solid). Running your own business however, increases your maximum earning ability immensely. You mention a lot about what makes you attractive to employers though so you would need to work on your entrepreneur skills (taking risk, understanding financials, dealing with failure) if you go that route.
Other thoughts...
Networking as a factor in future earnings may not be under your control. I expect a lot of people that are accepted into Standford already have strong network connections because of their family. And, of course, because they go to Stanford. Extra work in that department may not help.
Standford's salary survey isn't that cut and dried because it is a snapshot. What are the CS majors earning in 10 years compared to the other majors?
I'd like to solicit advice since I'm starting at Stanford this Fall and I'm interested in optimal philanthropy.
First off, what should I major in? I have experience in programming and math, so I'm thinking of majoring in CS, possibly with a second major or a minor in applied math. But switching costs are still extremely low at the moment, so I should consider other fields.
Some majors that could have higher lifetime earnings than straight CS:
Thoughts?
Stanford actually has salary data for 2011-2012 graduates by major. CS has highest earnings, by quite far. The data is incomplete because few people responded and some groups were omitted for privacy, so we don't know what e.g. petroleum engineers or double majors earned.
Should I double-major? There are some earnings statistics here; to summarize, two majors in the same field doesn't help; a science major plus a humanities major has lower earnings than the science major alone; greatest returns are achieved by pairing a math/science major with an engineering major, which increases earnings "up to 30%" above the math/science major alone. I'd guess these effects are largely not causation, but correlation caused by conscientiousness/ambition causing both double majors and higher earnings.
I could also get minors. I'm planning to very carefully look over the requirements for each major and minor, since there do seem to be some cheap gains. A math minor can be done in one quarter, for instance; a math major takes only a bit more than two quarters.
I have a table with the unit requirements of each combination of majors and minors. Most students take 15 units a quarter. Here are some major/minor combinations I could do:
Cal Newport argues that this sort of thing a bad idea because hard schedules do not actually impress employers more.
Would employers care about double majors in undergrad if I also get a graduate degree? I will do a master's degree or a PhD, partly because those make it a lot easier to emigrate to the US. (I'm from South Africa, which doesn't have much of a software industry.)
What other things could increase earnings?
Many thanks for all advice given!
EDIT: I used a scoring rule to rank all combinations of majors and minors in CS, math, economics and MS&E (management science and engineering) according to practicality and estimated effect on earnings. Unit estimates include all breadth requirements etc., assuming I don't take stupid courses. Here's the top 20; the top 10 all look pretty good:
Another option is to major or minor in M&CS (mathematical and computational sciences) instead of math or CS separately.
EDIT 2: Here is a graph of graduates' salaries by major. Y-axis is salary of 2011-2012 Stanford graduates. X-axis is degree: 1 is BA/BS, 2 is MA/MS, 3 is PhD; intermediate values are for groups containing two degree-levels. The sample size is tiny because only 30% of students responded, and some groups were omitted for privacy.