Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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...)

share|improve this question

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:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Community, gnat, Bart van Ingen Schenau, Kilian Foth, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

Note: 80% of graduate CS is mathy. Potential areas for you are too wide: Finance, NLP, bioinformatics, statistical translation, machine vision, machine learning in general, signal processing, writing numerical libraries, game/3d programming. Yes, math bg helps you to be a better programmer, but you will get bored working with hackers who failed calculus. – Job Aug 2 '11 at 1:51
1 - my situation was different, but some useful answers. Learn as much math as you can, but you will have to decide whether you want to be a math-minded programmer or a coding mathematician. – Eric Wilson Aug 2 '11 at 3:01

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.

share|improve this answer
IMO, TCP/IP is too messy, and frankly, boring. If only Rich Hickey reinvented the web ... – Job Aug 2 '11 at 2:23
If your algorithms course is anything like the one I took it is fairly different from a discrete math course. It uses discrete math, but the actual material covered tends to be very computer-specific. We did things like optimizing an algorithm to use fewer memory lookups. – Tikhon Jelvis Jan 8 '12 at 21:07

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.

  • C#/Java/VB optimise for the general human/network interaction in the business case
  • Database querys are a practical implementation of a Venn diagram. So you can do a lot of analysis for all sorts of stuff.
  • Lisp style languages are focused on set theroy and list based processing

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:

  • Customer research companies. We developed an application in conjuction with guys to take customer lists, match them up with Census data and work out who their customers are ... then where their customers exist in other cities.
  • Medical instrumetnation analysis. Another customer of ours tracks monitoring data from devices 24/7 the software runs a predictive algorithm to determine when they should get a nurse to the bedside BEFORE an issue occurs.
  • Newspaper space optimisation. We have written a live, 24/7 engine which optimises newspaper pages for advertising space VS revenue taking data feeds from 3 or 4 source systems and constantly adapting the layout to best optimise "the state of the world now" as updates are made to the advertising, book makeup, colour pages (highest cost is a full colour page) etc.
  • Call centre predictive dialling for debt recovery. Gien the people available, the time of day, the volume of calls to make it through, the current average hit rate for successful calls, the average time on call ... when should the dialler start calling in order to make best use of the Operators time.
  • Call centre inbound call routing and operator optimisation. Call volume, amount of operators available to take calls, average call volume for the same point yesterday, last week ... mash it all together, do we need more people?
  • Open street map. We compile the Australian component of the Open street map on our severs every night. There are a huge amount of algorithms and products that can be built off of this data if you know the best way to do route optimisation, identification of image data etc.

So ... getting back to your question ...

There is a near infinite scope for you to apply your mathematics skills ...

  • One friend of mine has started a company writing algorithms that search deep see scanning data for oil deposits
  • Others have been programmers, gone back, got their PHD in statistics and worked for Tatts (gambling) venues where they report directly to management on how to make and save millions of dollars a day
  • Another writes predicitive algorithms for betting on stockmarket fluctuations, sometimes they are even successful.

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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