Double major in Computer Science and ...?

<p>I already asked this question and got quite a bit of varied responses. I am going to be going to school in the fall for computer science. I am going to a school where CS is in a department with math under the liberal arts school. My university does not have a tech/science/engineering college. It is a school with a good reputation across the country for law/grad. school, as well as the business school. Basically what this amounts to, is that the CS program is not a "heavy" major like it would be at MIT/any other big CS/Engineering school.</p>

<p>While this may make me want to transfer out down the road if I find this to be a big problem, it allows me to take a second major quite easily. Since Mathematics+CS are in the same department, many of the classes overlap. I could walk out with a Math+CS double major by taking the same amount of "real" classes as a business student would take at my university. On the other hand, since it falls in the math department, much of the CS is theoretical. I could also pair it with Info. Systems. IS falls in the business school, which means I would have a much heavier course load. However, many of those classes focus on application which I would assume to be less time consuming than high level math. </p>

<p>My real question is, which should I take if I want to work for a start up in Silicon Valley right out of college? Which would I take if I wanted to work for a large tech company (Facebook/Google/IBM etc.). I would assume that the large company would prefer the extra math background, and the start up would prefer the more rounded student. However, what if I wanted to start at a secure big company job right after college (just for financial reasons), but eventually work for start ups? </p>

<p>Am I looking at this the wrong way? Will a Math+CS double major even be beneficial if I was a developer for a start up? Or would I not even need all of the advanced math? I know some of this might be personal preference of the person hiring, but my choice will change my schedule big time! The last thing to add is something someone once brought up, an MBA. It is easier to learn business with a science/engineering background than it is to teach a businessman engineering. Is this alone a good enough reason to get a "foundation" with Math/CS and go from there?</p>

<p>For industry software jobs, try to include at least the following advanced CS courses in your selection:</p>

<p>algorithms and complexity
operating systems
networks
software engineering
databases
security and cryptography
(and get experience working in various programming languages)</p>

<p>IS under business will typically have less technically oriented technical courses (more from a system administration and management standpoint rather than a design and development standpoint), but more business type courses. Some may be useful if you go into a software job developing software used in company IS departments. General system administration knowledge is useful in many situations. But doing a full second major may not add much compared to taking selected courses of interest.</p>

<p>Math is certainly helpful if you develop applications for mathematical applications. Abstract algebra and number theory can be useful in security and cryptography applications, for example.</p>

<p>MBA schools do not have any specific undergraduate major prerequisites.</p>

<p>Depending on your CS department, take more electives. I was thinking of double majoring, but once I realized that our department here at SBU offers concentrations like information assurance, Game programming, human-computer interactions – where you take courses like Game programming 1,2, Network security, Computer Security, mobile app development, Compilers, Robotics, Internet programming, Advanced Computer Graphics, AI, Machine learning,etc,etc.</p>

<p>It doesn’t take long to realize these courses will complement my studies far more than a double major in say economics.</p>

<p>^Agreed.</p>

<p>You can’t make any generalizations about a well-rounded vs technical person when it comes to startups vs large companies.</p>

<p>For a large tech company, math might help. You need to do research on how their interviewing process works. There are a ton of articles on the interview process for Facebook/Google (and the type of questions you get).</p>

<p>[How</a> I (almost) got an internship at Google - ecarmi.org](<a href=“http://ecarmi.org/writing/google-internship/]How”>How I (almost) got an internship at Google)
[15</a> Google Interview Questions That Will Make You Feel Stupid - Business Insider](<a href=“15 Google Interview Questions That Will Make You Feel Stupid”>15 Google Interview Questions That Will Make You Feel Stupid)</p>

<p>This is written by an employee at Google, so it’s the most helpful:
[Stevey’s</a> Blog Rants: Get that job at Google](<a href=“http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html]Stevey’s”>Stevey's Blog Rants: Get that job at Google)</p>

<p>To summarize the process: 80% of the interview questions for Facebook/Google are:

  1. Algorithms questions
  2. Data structures questions
  3. Discrete math questions
  4. Logic puzzles</p>

<p>In essence, 80% of your questions are going to be based off 3-4 classes you take (Algorithms, Data Structures, and Discrete Math). A math major will not help you with logic puzzles (But working through some on your own time might).</p>

<p>They will also ask you to code during the interview, without an IDE/compiler. The only type of math they will ask you is discrete math (the type of math that math majors are typically not necessarily concerned with).</p>

<p>As for startups, what kind of startup do you see yourself in? Heavy math is not really used that much in startups, unless it is a data mining / AI / algorithmic oriented startups (most startups revolve around consumer products, not algorithms).</p>

<p>Meh, this is a pretty good example of what I think of logic puzzles: [PHD</a> Comics: Ph.D. Training](<a href=“PHD Comics: So productive”>PHD Comics: Ph.D. Training)
The simple answer to what you have to do is to be able to do what you’re hired to do well with as little training on their part as possible. MBAs are useless until you start to see that you would be well-served to have one. Often your employer will pay for one, but if not, you’ll still be able to see when it’s worth it.</p>