I am a math major, what would be the best field of computer science/computer engineering for me to go into, where I could apply my skills that I used as a math major(i.e. Linear Algebra, Real Analysis, Number theory, Numerical analysis, etc...) Thanks
closed as off-topic by MichaelT, gnat, Bart van Ingen Schenau, Kilian Foth, GlenH7 Feb 6 '14 at 17:01
This question appears to be off-topic. The users who voted to close gave this specific reason:
I too was a Math major and am now a software engineer. If you want to go into the field, most universities have certain prereqs that they want Mathematicians to take in addition to their required CS courses. They usually want an Algorithms course (why Discrete doesn't count I do not know), a data structures course, and an operating systems theory course. Anyhow, a very high percentage of jobs available will not require skills directly related to higher Mathematics. However, the applications I have seen that are heavy on the Mathematics are usually related in some way to graphics.
Check this book out. I worked through it for fun and it is pretty good for understanding the way DirectX, Cairo, and Open GL work.
Also, audio/video encoding algorithms are heavy on Mathematics. Usually, everything has been abstracted for you, and you don't get to do the fun stuff. It is still fun to try though.
Lastly, embedded systems and db engines typically are good for Math guys because the efficiency of your algorithm actually begins to matter. In most everything else, brute force wins the day.
Where your Math degree will help you most is in your approach to problems and critical thinking skills.
Sometimes I wish I could just be a fly on the wall at At&T Bell labs, MIT, and Berkeley back when they were creating all of the current abstraction layers, i.e. TCP/IP, Programming Languages, Standard Libraries, but alas, I came too late to the game to have the real fun with it.
P.S. The other cool thing about being a Mathematician in the CS field is that you always have those aha! moments where you realize things like modeling a network is simply a graph theory problem. Its like the bridges of Konigsberg in binary! You then write some really cool NAT traversal system that was already written by the team at GNU linux, but who cares you enjoyed it right?
Ooh modeling ring theory problems is fun too. Anyhow, you get the picture. The most math I have used has been for a hobby. You might use a little lambda calculus and big-O from time to time, that's about it.
Welcome to the party.
Programing is just applied math on steriods ... Pretty much every programming langauge has mathematics at its core. They try then abstract the programmer away from this starting point towards a specific / targeted implementation for suitable needs.
Etc. At their core they all end up funneling factors of 8 bits through a CPU that applies one of a handful of mathematical functions to produce a result. When it works well the entire computer can be seen as an ever changing dance of mathematics.
Projects we have worked on include:
So ... getting back to your question ...
There is a near infinite scope for you to apply your mathematics skills ...
Once you start thinking about any type of optimisation or prediction using (Linear Algebra, Real Analysis, Number theory, Numerical analysis) and then run that across industry sectors like Insurance, Medical, Imaging, Search, Mapping, Newspapers, Manufacturing, Marketing etc and the key bit that makes the money, and thus gets you paid ... how can I apply An Algorithm to An Industry in order to remove the pain/effort from a group of people ... you end up with a LOT of stuff you could do.
There are many areas where advanced math is applied in computer science, of course Google was founded on using math in novel ways for search relevance algorithms. It's quite an open-ended question but in my experience I've seen the use of advanced math in 3-D seismic/production modeling and interpretation in the oil and gas business.
Seems like cloud computing/hosting could also be a new and interesting area to apply advanced math to optimize the use of virtual resources using math to predict resource needs based on stochastic models.
The explosion of networking and ability to process large and diverse data makes the medical research area fertile ground as Sergey Brin (see above) is now engaged for Parkinson's Research: Sergey's Search.
Most likely for the use of math that's not on well-trodden ground you will need to look at entities that are involved in research and scientific engineering.
I wouldn't say its the direct math skills that will make you successful in the CS field, but more so the analytical, problem-solving passion with a technical, CS twist on it.
Then the sky is the limit.
If you love it, you'll be successful with it.
I don't think anyone here can tell you what you are interested in. Not doing something that interests you won't end well for you or potential employers. I'm not sure how far along you are in your studies, but I would recommend looking at minoring in something like computer science or software engineering - this would give you a foundation to start with. A graduate program in either field is also not out of the question.
If you are interested in the breath and depth of computer science and software engineering, Wikipedia provides a good list of software engineering topics and computer science topics. A more formalized list of topics can be found within the ACM Computing Classification System.