>>12165284The ideal option is math/CS double major, doing honors and grad classes in both (no skipping the hard classes for either). However, not everyone has the resources, background, or money to support that. For employability, I highly suggest making CS your primary major because:
>preference for a lot of jobs>hits resume keywords>launching point into other projects>high starting salaries for software positionsand I highly suggest you major in math. Go hard on CS systems electives - take architecture, systems, OS, distributed, parallelization, advanced algorithms, graphics processing and theory, etc.. From math, be sure to get proof based linear algebra, at least one semester of abstract algebra, combinatorics, graph theory, and analysis. Cryptography is a good elective too.
The above is only a skeleton of a suggestion, but always go hard. It should give you a mix of application and theory, and the focus on systems means you have experience that could transition you to embedded, even lower level, etc etc. The most important part of this is to realize that a degree is a starting point to a career, so focus on fundamentals and constantly learn stuff outside your field. I know CS students who got into avionics a few years later because they realized they liked control and hardware systems.
Oh, also almost always go for math programs instead of applied math - you will have more exposure to problem solving, and the immediately important math in CS is almost all related to proof. As a math major - CS minor, you won't hit as many keyword searches and generally have a disconnect between undergrad and recruiter goals, while CS major - math minor generally gets the same *marketable* skills (PROVIDED YOU TAKE THE RIGHT KEY CLASSES AND ONLY WANT TO DO UNDERGRAD) and resume preference.
>t. math and CS double major in undergrad, went for theory research in grad