If you have independent software development experience, and curiosity/discipline to acquire more software development skills, you might consider trying to become an "X who programs". This thread has some info. Basically, get official credentials in some fairly lucrative & difficult field that has a need for software developers, and do independent study in software development (and maybe statistics/data science type stuff). More links: 1, 2. This could also be a good way to come up with an idea for a software company in some fairly technical industry (meaning relatively high barriers to entry, and possibly corporate customers that will be willing to pay good money for the product you offer). Going in to traditional software development will be a solid fallback plan, since software company employers care more about your skills than your degree, and computer science knowledge isn't actually all that useful for practical software development.
This data suggests that combining software development with stats/machine learning/big data skills can be relatively lucrative, at least in the current job market. My understanding is that data scientist employers are also fairly lax about official credentials.
I highly recommend the "X who programs" path-it helped me increase my earnings by about 150% over the course of 2 years. It was substantially more useful than concentrating solely on my programming skills or marketing/risk/statistics skills.
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.