Good question, and I'm happy to see you are taking it seriously. There are roughly two ways in which you can become an effective altruist: #1 donate a lot, #2 influence other people to donate. These paths are not exclusive, and you probably need to do at least some of #1, so you can lead by example.
So, with #2 you would focus on things like writing, psychology, marketing, sales, etc... However, some might say that the only true way to have influence over other people is to be famous and/or to have power. Thus, you can look at people that have power and/or are famous and see how they got there. Elon Musk is a good example. However, you should also keep in mind what group of people you will influence. Britney Spears is influential, may be even more so than Elon Musk, if you just look at the quantity of people, but clearly their fan demographic is very different. Of course, the type of influence matters too. I bet Britney Spears can easily raise $1M for a stray cats foundation, but she probably won't get anywhere if she tried to convince her fans about importance of x-risk reduction.
When it comes to power, you can get it through political means, other avenues that put you in charge of some highly valuable resource / policy, or you can just go for money. Being a popular startup CEO is an interesting intersection of being both famous (within specific circles), potentially rich, and potentially influential. Best example: Larry Page.
Which brings us to #1. Having more money is simply better. 80k hours has covered how to get the most money out of your career pretty extensively. I'd avoid risky narrow career paths like actuarial math and petroleum engineering. If you miss that narrow high point, you end up in a valley. (Better illustrated by Kaj_Sotala's Paul Graham's quote.) On the other hand being a solid Software Engineer (SWE) will open most SWE doors for you. It's much harder to decide if you should combine that with engineering, math, or if you should double down on CS and have lots of projects and internships to show when you graduate. In my mind, there are three broad CS roads one can take: standard SWE job at a public company (e.g. Google), standard SWE job at a startup (e.g. Ripple or Square), or a job as a quantitive analysts. There are others, of course, but if your goal is $$, then these are probably the best. In terms of EV, I think startups offer the best bet, though it does depend on your risk aversion and yearly discount rate. If it's high then the value you get from a startup is worth a lot less.
I'll mention one more important point to keep in mind. For example, as a doctor, you can help dozens of patients a day, roughly. As a researcher, you can be searching for a cure that'll help a million people. (May be all the people if you join SENS.) As a SWE, you can be working on a narrow AI that can be scaled to work on multiple research projects at the same time. Do you see what side of the fence you want to be on? Simply put, SWEs are taking/automating everyone's jobs, including their own to some extent. Once you fully automate SWEs you basically get Singularity, so you don't have to worry about that outcome when it comes to job security, but with every other job you do. WIth every other job, there is some chance that in the next few decades we'll have an AI doing that job better and cheaper than humans.
I'll also briefly mention another option you haven't considered: no college. I have a friend who just graduated from highschool, and I'm helping him find a SWE job in the bay area. He is definitely smart enough and talented enough to likely get a job at Google or other high quality SWE-heavy company/startup. The upside is that he'll start making money today, and he won't have to pay for college. He'll start learning practical skills, and he won't have to waste time on general education classes. Downside is that he'll have to take responsibility for continuing his education himself: read books, watch lectures, etc... The biggest problem, though, is that he'll miss out on all the social aspects of a university. He won't form the super valuable connections. At the end of the day, people pay extra to attend Stanford and MIT not because the education there is that much better, but because you'll get connected to people that will be world leaders in the next decade.
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.