<p>Math is very possible. If you've done well and like math, especially proofs and logic, you'll do fine.</p>
<p>I'd like to take this opportunity to rant about math majors, though. This applies to most science majors, too... you guys are just crappy with computers. I work as an undergraduate research assistant for a physics professor, and my partner is an applied math major... and we're doing numerical work, and it's just mind-boggling how bad both the professor and the math major are at CS fundamentals. The physics professor might have some excuse - although, not really, considering that if I were a CS professor doing the same research as he was, I would probably learn a little physics first - but it seems criminal to me that a math major doesn't know, or seem to care, about CS at all.</p>
<p>Example: My partner doesn't know how to do file output. This is part of her job, mind you. So I have to do it.</p>
<p>Example: The professor doesn't understand OO techniques. So I'm stuck using multiple corresponding-index arrays and hard coding the same behavior over and over again.</p>
<p>Example: When our results looked fishy, the first place they looked was at a few simple functions I had written to clean things up as well as to save time and make things more efficient. And, wonder of wonders, they had gotten a single sign wrong, and my code worked flawlessly.</p>
<p>Example: The code they write looks horrendous. It pains me to read it. In my spare time, I often clean it up: inserting line breaks where appropriate, tabbing, alligning comments, adjusting white space, zeroing out variables, putting modifiers in the proper order, etc. They think this is adorable, but when I tell them that other people will look at this one day and it's akin to writing a proof using shoddy notation, they wave it off.</p>
<p>Example: They cannot appreciate the concept of efficiency. In one method we're using, there are 6 assignments where we're doing the following:
E* = (...) / (r * r * r);
I suggest making a variable inv<em>r3 = 1.0 / (r * r * r) and changing the code to
E* = (...) * inv</em>r3;
And they think it's just the cutest thing.</p>
<p>So, in a nutshell... math/science majors: please, if you're going to use computers, know what you're doing, for christ's sake. If we showed the code we're using to any of my CS professors, they would fail me on the spot for my being associated with that filth. Thanks.</p>