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.

I'm two months away from getting my degree in systems engineering, which is to say, I learned how to code and code well using managed languages.

The only reason I got into this career was because I wanted to create video games. I know now that with my current skillset, I won't be able to create some of the things I have in my head.

Would getting a second degree in pure mathematics would help me with this goal?

share|improve this question
    
Will it help eventually? Yes. Is it absolutely necessary? No. Is it the most helpful element to get there? No. Development will get you into development. Math will make it easier for you to understand what's required for game development and the concepts behind many aspects of game development. You can very well implement a pretty decent game w/o understanding the math behind it. However you can't develop a game without understanding how to progam. I wouldn't say you need to start another degree course to jump into the career pool now. –  haylem Jun 7 '13 at 10:27

9 Answers 9

up vote 12 down vote accepted

No type of degree will help you as a programmer more than programming.

Experience trumps studying. If you want to be a good programmer then start programming. I don't have a degree but I've been programming on various projects for fun since I was around 15-16; needless to say I'm light years ahead of my friends who studied computer science at a university and ask me questions like "is it better to check admin privileges for my website through PHP or the SQL GRANT option?".

share|improve this answer
2  
On the other hand, someone who knows their math could build much more efficient code. Simple example: adding together the numbers from 1 to x. Some programmers aren't aware of the O(1) way of doing that, but any math major should be. –  cHao Sep 28 '10 at 12:35
9  
@cHao - You don't need a degree to figure that out. –  ChaosPandion Sep 28 '10 at 12:42
3  
Agreed. That's just a simple example, though. There are much more involved ones, like...say...revolving points around a center point, or figuring out the center of gravity. Each of which could find use in a game, with the points thing quite prevalent. Yeah, you could find some formula on the internet to do some of that stuff. But unless you understand why the formula works, you'll find yourself stuck the first time you have a problem cut-n-paste can't solve. –  cHao Sep 28 '10 at 12:50
3  
@cHao: google won't only provide the formula, it will also provide an in-depth description on how it works and the principles it's based on, which you can study the first time you need it. This is much more effective than to study everything pre-emptively "just in case" you need it. –  Andreas Bonini Sep 28 '10 at 13:00
2  
Ever try to understand those in-depth descriptions? So many of them read like line noise, and would require some preexisting math knowledge in order to even decipher them. –  cHao Sep 28 '10 at 13:07

I have a math background, (B.Sc. with double major in pure and applied math, followed by Ph.D. in applied maths). However I've worked as a developer for the last 6 or so years. My maths degree got me my first development job (In the film vfx industry - so graphics heavy stuff). But the actual maths I used from my degrees in my work was minimal.

There's two ways to think about a math degree. The first is that you're learning about complex math in essoteric subjects. That's (mostly) useless. The second is that you're training your brain to understand complex systems, find complex patterns and find solutions to complex problems. That is pretty core to serious software development.

IMHO some people have a knack for that kind of problem solving (I certainly did), but they'll still improve with some formal learning (I certainly did again). That kind of training can be sorely lacking from some CS Engineering degrees.

I'd say pick up as much math as you can, you'll not regret it. It doesn't age like a programming language does. (FORTRAN is out of date just 30 years on. C# will probably go the same way. But calculus, geometry, group-theory will all be here in a few hundreds of years time).

share|improve this answer

In general, a double major in math and computer science can pay off. Speaking from experience, it has helped me immensely. I worked in aerospace/defense and finance; both can be pretty heavy with math. I don't do math on a daily basis. However, the math degree gave me the skills to understand the domain knowledge much better than some of my peers. Google can give you formulas, but it won't help you understand them.

In your case, I would take one or two more math classes. Some suggestions are linear algebra, diff equations, modeling, or geometry. A math degree would take another 1-2 years; it isn't any easier than the computer science degree. With another kid on the way, the money from from a job would be useful.

share|improve this answer
    
I took differential equations and some of the concepts would definitely be useful. –  ChaosPandion Sep 28 '10 at 14:33

If your passion was simply to be a programmer then I would say math is not necessary. However, since you've specified the vertical in which you want to apply your skills, I would say knowing about that vertical can only help.

Therefore, math is absolutely essential for good game programming. Now, it's debatable whether you need to pursue a full second degree in the subject. You could probably get by with a minor or even motivated self study. For game programming I would highly recommend anything linear algebra based as it's the nuts and bolts of 3D.

share|improve this answer

Math is great as a way of learning to think about formal systems, and there's a lot of useful things to learn from it.

If you're thinking of going on to grad school sometime, you might want to go math-heavy. That's likely to make you stand out, partly because it's generally easier to be a computer science major than a math major, and partly because it's a good foundation for learning more theoretical stuff.

There are parts of math you definitely want to know, but much of that will likely be taught in a Computer Science curriculum. I would hope yours had some more or less disguised math classes in it, teaching things like complexity theory and graph theory.

For videogames, you definitely want more math. You need to be very good at linear algebra, and need to know calculus. You need to know geometry, trigonometry, and algebra, but these (at least in these forms) aren't typically college classes. Differential equations may or may not be useful. You don't need a degree to show for it (although a math minor would be useful if you're looking to work with somebody else), but you need to know it, and I don't know a better way of learning it than college courses.

share|improve this answer

A whole degree's worth of math would probably be overkill. While knowing some math will help you a lot (especially in any serious attempt at 3D programming), i have a feeling that you won't be able to apply a lot of what you'd learn with a pure math degree. However, i'd still recommend you take at least a few classes.

As for the "experience trumps studying" argument, some amount of studying can keep you from having to learn as much through trial and error. I know i'd much rather be able to say beforehand whether that thing i'm trying to do is the best way to do it (or will even work). The trial-and-error crowd usually won't know the answer to that til they've wasted a good chunk of time.

share|improve this answer
    
I agree that a whole degree in math would be overkill. A minor in Math would probably be useful though. I have a minor in Math and do not regret taking the extra courses. –  sange Sep 28 '10 at 12:50
    
Yeah, if i ever get around to going to school, i'd probably minor in math no matter what other degree i go for. Just seems so useful in a number of fields, not least of which is programming. –  cHao Sep 28 '10 at 12:55

I think that math is important, always. But learn more about programming stuff will help you more in this case. Most of complex algoritms is encapsuled and if you know basics concepts, like geometry, trigonometry and linear algebra, you can get this thing easily.

By the way, learning math is cool and help you more than you think if you have a motivation other than pass on a degree test. :O)

share|improve this answer

having a background in math is great ... i think it'll definitely open some doors to scientific programming and even graphics programming - those two area specifically are more math intensive ... hopes this helps .

share|improve this answer

It does help for graphics programming. But that has more to do with game engine programming rather than game programming (think more of the house for the game programming). Engine programming can be just as interesting as game programming if you really like it. It is up to the individual though.

But if your goal is game programming / development, get a game design degree instead. You'll end up learning things that might not help with game design if you get a degree in maths (maths is a really big subject). Some maths does help with board game design though (like discrete maths and combinatorial maths).

You will however need to know some algebra and trigonometry for calculations. But, with the internet now, it is not hard to learn basic maths online if you really need it for game programming.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.