Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Math has always been my thing in that I've always found the subject easy. Computer Science is my second love, though. Given the choice, I would prefer to major in Math. Since the only careers one would usually go into with an undergraduate degree in math are not appealing at all, I would be very content spending my days as a software developer.

My question is this: Which math discipline would a future programmer reap more benefits from? Applied math or pure math?

I enjoy teaching myself and I am confident that I can teach myself how to be a great programmer, but I still plan on getting a minor in CS!

share|improve this question

migrated from stackoverflow.com Apr 20 '11 at 15:52

This question came from our site for professional and enthusiast programmers.

closed as not constructive by Yannis Rizos Mar 8 '12 at 15:19

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

15  
If you have always found math "easy", I suppose you have not gotten far enough yet. –  Mark C Apr 20 '11 at 16:19
    
Easy relative to how other people find it, I should say. –  Joose Apr 20 '11 at 20:23

9 Answers 9

up vote 11 down vote accepted

It all depends on what you want to do as a software developer.

If you want to go into graphics, you need a strong background in geometry, linear algerbra, matrix tranformations, (physics wouldn't been terrible either) etc.

If you want to go into SQL or other types of database programming, logic (proofs, inferance laws, etc) and Discrete Mathematics (maybe even lambda calculus) are all necessary.

But in general, the more applied math you know the better.

Pure math would be better in things like Algorithum development and theoretical programming. Maybe even map redux programming or the like.

Basically, you can't go wrong either way.

share|improve this answer
    
Game development wouldn't hurt my feelings but I hear that its a rough field to get into. And I can't imagine that not having a CS degree would help my chances. –  Joose Apr 20 '11 at 16:01
    
Game development is very competitive. You'd be surprised. Especially with all the iOS, Android, WP7 apps gaining popularity. It was a lot harder to get into (just like professional 3D Animators. That was my dream before CS) but the mobile arena has opened new doors. Either way, with software development if you have the skills finding a job isn't an issue. I am graduating in 2 months and my counselor was telling me that our CS dept. has 100% job placement for its graduates. That number is typical for major Universities and CS –  joe_coolish Apr 20 '11 at 16:17

I'm finishing a degree in pure math currently, but I also spent a lot of time working in applied math research projects. Though every discipline draws its own cultural boundaries, the distinction between pure and applied math is often more elusive than we would like to admit. Until relatively recently in the history of mathematics, almost all of math was what we would now call "applied math." (Grant an exception for number theory if you like.) Sometimes the boundaries shift, as well. One of my research interests was motivated by an extremely "applied" problem corresponding to an actual physical system, but grew to encompass central techniques from semigroup and formal language theory, relatively "pure" topics. Remember that even Gauss, the prince of pure, spent hours calculating the orbit of Ceres by hand. (This is supposed to have motivated the discovery of least squares, so it wasn't a total wash.)

It's very difficult to say much more about your situation without specific details about coursework and research opportunities, but it would be fair to say that applied math will give you much more experience in programming. This is not to say that there are not computational problems in "pure math", (there are!), but that these will not be emphasized, and you will have to dig for them on your own. On the other hand, it seems that most folks have an easier time going from pure to applied to vice-versa. There's lots of opportunity for confounding variables here, but that may give you pause.

Ultimately, one of the most useful skills you can cultivate as an undergraduate is the ability to determine answers to the following: "what do I need a gun to my head in order to learn?" If you have interests that span multiple fields and prevent you from exhausting the course offerings in each, that question should motivate a great deal of coursework. For instance, I love automata theory dearly but I never took a course in the theory of computation because I could just read the textbook for pleasure. (Nota bene: this only works if you actually read the textbook). In differential geometry, however, I knew that I would never actually be arsed to deal with Christoffel symbols and the like unless I had a gun to my head in the form of a weekly quiz.

You should learn to recognize your own inclinations and disinclinations, and reroute around them.

share|improve this answer

I guess I would recommend some kind of balance.

It's certainly useful to know basic automata theory, formal languages, information theory, and basic discrete math.

It's also very useful for the many math-heavy application areas to know calculus, linear algebra, probability & statistics.

It's also very important to get no-nonsense software engineering, so you know how to analyze a problem area and propose a range of approaches to it, with pros and cons. Then be able to carry them through with a team. Understand the importance of source code control, maintainability, proper testing and quality control, and software lifecycle management.

I've seen very smart people who were shy in one or more of these areas, and it definitely holds them back. And if they are teachers, it holds their students back.

share|improve this answer

I think it depends on what you want to do. I've always been involved with computation, as applied to science and engineering, so applied math is the bigger part of the skill set. A lot of comp sci, strikes me as more pure math, worry about whether an algorithm exists that is NP complete and all that stuff, has never struck me as very interesting or practical. But functional approximation, PDEs, linear algebra etc. has always been pretty foundational. But if you are planning a career in general programing, I suspect this stuff won't do much for you other then development thinking skills.

share|improve this answer

If you think about a finance career: statistics, analysis, PDEs, Monte Carlo simulations (and assorted "maths of (pseudo)randomness"), algebra.

share|improve this answer
    
I have no intentions on working in the finance industry. :) –  Joose Apr 20 '11 at 20:24
    
Good for you :) –  quant_dev Apr 20 '11 at 20:27
    
++ Those are valuable for a lot more than finance. –  Mike Dunlavey Apr 20 '11 at 21:23

I managed to have a perfectly nice software engineering degree with a degree in Computational Math. I was lucky, my school had a program specifically for this, and it was a blend of CS and math with a focus on math that supported CS (Discrete, Abstract Algebra, Graph Theory & Networks) and math that requires some computer help (numerical analysis, linear algebra).

I guess that's "pure" math, but I never really thought of it that way - it was so focused on computers, that computational math was a really good description.

share|improve this answer

Programming is applied math. That said, I don't believe it makes much difference. The applied math that I took for my degree (in math) was primarily oriented towards physics which wouldn't do much for the logic that is required for programming but it works great for determining the algorithms.

share|improve this answer

I can count on one finger the number of times I've had to use any math more complicated than basic algebra in any project I've worked on.

It really depends on the field you go into.

share|improve this answer
    
Very true. But advanced math did come in handy that one time, and it probably will come in handy atleast one more time before you retire. Where as my underwater basketweaving class has yet to prove useful in my experience. Basically, the more math, the more tools you have to solve problems. It's never a bad idea to take more math –  joe_coolish Apr 20 '11 at 16:21
    
And there's an extent to which you can learn the stuff you need when you need it - particularly if you have a strong mathematical background already. I studied CompSci, but when in my first job I needed to know spherical geometry I went and spent a bit of time in my old college's library to read up on it. –  Peter Taylor Apr 20 '11 at 22:44
    
@joe_coolish Didn't you know? They're looking for experts in the field to help with Underwater Basketweaving Simulator 2011. –  Maxpm Apr 21 '11 at 5:20

Pure math, definitely. In particular, discrete math and mathematical logic.

The University of Illinois Math Department has an interesting M.S. program called Applied Math (Theory of Computation). It's a joint program between the Math Department and the C.S. Department. That might be the sort of thing you want, but it's a graduate program.

share|improve this answer
    
As an Applied Math major (at least at the university I'll be going to) I will have to take Discrete Math. I've noticed that there are a lot of courses listed as both Pure and Applied. –  Joose Apr 20 '11 at 16:00
    
Discrete math is essential! –  Morgan Herlocker Apr 20 '11 at 17:31

Not the answer you're looking for? Browse other questions tagged or ask your own question.