Computer Science or Mathematics?

<p>I've been thinking about majoring in Computer Science. I'm in to programming software/games and all that (not so much how a computer is built etc so I don't think Computer Engineering would be for me), but would it be better to major in math? Does getting a degree in math give you more flexibility/options in your career (but if I wanted, I could still get a computer science job), or would it be better to stay specific?</p>

<p>Plus I've read that Computer Science degrees aren't always good for job security, Is this true?</p>

<p>I guess I'm asking what would be better in the long run, a CS degree or a Math degree?
I'd imagine a math degree would be more difficult and require more years... I don't know though... which is why I'm asking you guys.</p>

<p>In case anyone wants to know, I'm a junior in high school. I haven't decided on a college yet, but I figured now would be a good time to start thinking about stuff like this.</p>

<p>Sorry if I posted this in the wrong area, I'm new here and at a glance I didn't see a CS forum.</p>

<p>Computer Science would be a better major if you want to program.</p>

<p>And if you're worried about getting a job and having job security... I would say CS beats Math.</p>

<p>There are a lot of sob stories on these boards about how math majors have had a hard time finding jobs. A search would probably reveal several such cases. Not so many stories of CS or engineering majors having too hard a time.</p>

<p>If you want to write software, I'd go with CS. It would make sense to double major or minor in something like Math or Physics, though... maybe graphic design or art... as this could make you a more well-rounded gaming professional.</p>

<p>P.S. I've always wondered why the idea that a Math degree can compete against a CS degree for software jobs is propagated so much. The math majors who are competitive end up taking almost all the CS classes CS majors take anyway.</p>

<p>Thanks for the input, I probably will stick with CS.</p>

<p>If you want math and programming, consider applied mathematics.</p>

<p>Computer Science would be your best bet. You would have to get internships to really find a job in industry with math. Every math major I ever knew stayed teaching at a university. You could possibly become an engineer with computer science or math. It is all about job experience.</p>

<p>Yeah, I would be wary of applied math => software job. Applied math is really still just math... I know the "best" applied math major at my school, and she can only do very basic things as far as programming goes. Plus, she knows nothing of software development, and her best language is Matlab... not really a "programming language" at all.</p>

<p>I would say major in CS, and minor / double major in some science. I think I said that before, but I'll say it again. Focus on knowing how to do software right; then worry about the math / science you'll need for games, etc.</p>

<p>Some computer science areas are very (discrete) math intensive, like cryptography, algorithms... At my school CS requires the study of logic, proofs, combinatorics, sets and linear algebra, and many ppl double in CS + math.</p>

<p>Some CS majors love to code and dislike math; a few others like theory more than systems.</p>

<p>Again CS is SO MUCH MORE THAN programming, as discussed in another thread.</p>

<p>I've been wondering; how much of a difference does it make if you major in applied math and not math in general, when it comes to marketability and skill set?</p>

<p>What matters MORE (to employers) in general is what you are able to do for them. So if you major in applied math, or general math, but spend some time learning about the things the CS or CE majors know, and do a senior project that employers can use, you'll be in reasonably good standing as far as being employable. This isn't a guarantee that you'll get every job you apply for, but you'll be as prepared as any CS or CE candidate.</p>

<p>Well, I'm not sure that's a fair statement. If you get a double major in CS, then I would agree that software jobs are as open to you as to anyone.</p>

<p>Taking a few classes in the department, however, does not leave one as prepared as people who majored in it. So I guess it depends on how many classes you take.</p>

<p>Either way, an applied math / CS double major or dual-degree should be too easy to do at most universities. If you want to do software, people will ask whether or not you know software (not programming) and, if you were interested in it, why you didn't major in an ABET-accredited CS program.</p>

<p>Employers expect CS grads to be good at programming, to know a few languages well, know a little about hardware and to know CS theory. You start with a base of three or four semesters of intensive programming while some hardware. This programming base can be used in upper-level courses later on. You can take a course or two in programming to look attractive to CS employers but you probably wouldn't be as comfortable as other CS grads that did it for four semesters and whatever junior and senior course required a lot of additional programming.</p>

<p>Typical CS programs also include courses on Algorithms and Foundations. Nice to haves would be database, artificial intelligence, graphics, security and compilers. That's a lot to fit in unless you came in with advanced standing.</p>

<p>Yes, I agree with BCEagle91. For instance, in a sophomore level course I had last semester (I took it out of its usual order, but still...), we did the following (basic, mind you... very basic, really) programming exercises to learn C++ (after a 2-semester sequence learning to program via Java):</p>

<ul>
<li><p>Write a text-based adventure video game in the D&D tradition. The purpose of this was to just learn the compiler and basic input/output.</p></li>
<li><p>Write a program which predicts the value of a complicated function using the KNN technique. Again, this was simply to learn some language features... knowing how to solve the problem in Java was assumed.</p></li>
<li><p>Write a program which optimizes certain non-analytic functions using evolutionary techniques (hill climber, genetic algorithm, etc.) This was just for learning about inheritance hierarchies and such.</p></li>
<li><p>Write an API which calculates the return on various kinds of investments. This was just for polymorphic functions.</p></li>
</ul>

<p>Furthermore, each of these projects required detailed documentation of at least 10 pages, and sometimes as much as 50. The system had to be designed completely before implementation was allowed.</p>

<p>In prior courses, we learned all about some basic data structures and algorithms. If you can't code a linked list, N-ary tree, binary search, or merge-sort (for instance) by hand in an hour without looking stuff up, the odds are that you're not as prepared for software as even the average CS student applying for the same job. I understand these things are fundamental and basic, but that's the knowledge you use over and over again in real jobs.</p>

<p>Not to mention the advanced (junior/senior) courses required of CS majors. Any non-CS major should ask themselves if they could write an assembly program to add integers of arbitrary size, or write a multi-threaded application using C with unix, or write a BNF for an arithmetic expression involving decimal numbers, or use a logic/constraint language such as PROLOG to compute the union of sets... the list goes on. These are things a capable CS graduate will know how to do, and the sort of things which others may have to learn on the job.</p>

<p>Not to mention the fact that people who hire CS majors expect them to be more than programmers AND more than scientists. They expect engineers. Can you read, interpret, and write UML diagrams? Do you know what software process is, and why you should use it? Can you write a use case, or a system sequence diagram, or design a suite of test cases?</p>

<p>My point is that it seems unlikely that a few courses in CS will adequately prepare someone in another major to enter the field without considerable on-the-job training.</p>

<p>I'm not experienced in this but I'll offer my two cents:</p>

<p>A math major opens up so many more fields than CS does. Having a math degree makes it that much easier to go into any of the science/technology areas. In the long run, I think a math degree would be better. You probably couldn't get a job in the computers industry without a CS degree though. Also, I imagine the number of CS majors dwarfs the number of math majors. Math majors are probably in much greater demand. Just something to consider.</p>

<p>
[quote]
Math majors are probably in much greater demand. Just something to consider.

[/quote]
</p>

<p>I respectfully disagree.</p>

<p>Uh... alright. I sort of believe the opposite is true, and the BLS backs me up on the last point (Occupational outlook handbook, 2008/2009). A quick check of mathematician and computer scientists seem to flesh this out.</p>

<p>Sadly, I can't seem to find any data on employment by college major. I would imagine that people who majored in engineering at an ABET accredited school have a leg up on math majors for those jobs.</p>

<p>Why would you think math majors are better off? What's your reasoning? Computers are used in all scientific and engineering disciplines, just as math is. I would say CS majors are better off, since all scientists and engineers take a lot of math, but only CS majors take a lot of computer and software courses.</p>

<p>So... yeah, I'm a little skeptical.</p>

<p>
[quote]
I would imagine that people who majored in engineering at an ABET accredited school have a leg up on math majors for those jobs.

[/quote]
</p>

<p>Maybe, but we're not comparing engineering to math.</p>

<p>
[quote]

Why would you think math majors are better off? What's your reasoning? Computers are used in all scientific and engineering disciplines, just as math is. I would say CS majors are better off, since all scientists and engineers take a lot of math, but only CS majors take a lot of computer and software courses.

[/quote]
</p>

<p>Math is literally the underpinning of all science and engineering (not to mention economics and business), and the math major is obviously going to have a leg up on the CS major in that regard. Math just opens up so many more fields than CS does. Computers are used in the sciences, but you don't need an advanced understanding of CS for the majority of your computer-based work. Look, I'm not going to claim to be informed about this. Honestly the OP would be best off if he doubled majored. Math + CS are easily compatible.</p>

<p>The level of mathematical rigor in a computer science program is comparable to that of a math major and doing a double-major in math and CS frequently possible because there is a fair amount of course overlap.</p>

<p>"Math majors are probably in much greater demand."</p>

<p>The jobs that I see out there are moderately specialized. The CS and various engineering degree give you some theory and a lot of practical technical skills that can be immediately used in the marketplace. My perception is that more generalized understanding of theory isn't as directly applicable in making, researching, designing something. The generalized understanding is useful but it may take a while for an employer to get a return.</p>

<p>Do you have any evidence of the high demand for math majors? I think that this was true in the 1970s and 1980s but I don't see evidence that it is true today due to more tailoring of engineering programs to what the marketplace is looking for.</p>

<p>"Math is literally the underpinning of all science and engineering (not to mention economics and business), and the math major is obviously going to have a leg up on the CS major in that regard. Math just opens up so many more fields than CS does."</p>

<p>What can you do with someone that has that underpinning though?</p>

<p>Today, every category of organization uses IT and IS and someone has to provide those services or write those systems.</p>

<p>
[quote]
Math is literally the underpinning of all science and engineering (not to mention economics and business), and the math major is obviously going to have a leg up on the CS major in that regard. Math just opens up so many more fields than CS does. Computers are used in the sciences, but you don't need an advanced understanding of CS for the majority of your computer-based work. Look, I'm not going to claim to be informed about this. Honestly the OP would be best off if he doubled majored. Math + CS are easily compatible

[/quote]
</p>

<p>Clearly.</p>

<p>How do you feel math opens up more fields than CS does? A CS major can get a job in every industry. The OP is interested in software and to do the majority of your programming jobs you need more than a math degree. Sure a math major can go into the field but it usually requires self studying, and why should he do that when he could just pick a major that caters his interests.</p>