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 have a mathematics background but also consider career in some form of software development. In particular I'm interested in finding out what sort of industries are most likely to have more algorithm development/mathematical and logical problem solving slant rather than pure application development etc.

Obviously, I'm assuming that some subset of the canonical data structures and associated algorithms (trees, lists, hash tables, sets, maps with search, insert, traversals etc.) are mostly going to be present in software development. However, where am I more likely to encounter problems of more discrete maths nature (combinatorial, graph theory, sets, strings, ...) explicitly or more likely in disguise.

Any pointers much appreciated (including possible open source projects that I could use for my further search for applications and also possibly contribute to).

share|improve this question

9 Answers 9

  • Search (google)
  • spam detection
  • deep packet inspection (automating finding new signatures)
  • image/audio/video processing (text to speech, image search, speech recognition, video optimization, video conversion based on user's screen size etc)
  • compression, security and cryptography
  • any kind of simulation (building resistance to earthquakes, F1 car's behavior towards wind etc).
share|improve this answer

The finance sector is pretty keen on mathematicians who can write a bit of code. I've just gone through a series of interviews with banks and hedge funds and can tell you first hand that they want people who know about linear algebra, data structure and algorithm design, and optimisation.

Not so much graph theory, but combinatorial questions seem to be common in interviews. Who knows how much of that is actually used in practice (maybe someone else can speak to this) but at the interview stage they're pretty important.

I am more of a software engineer than a mathematician so I'm coming from the opposite direction. With our powers combined we could probably take over the world.

share|improve this answer
    
No, no, you'd still need a physicist to design your la-ser, and perhaps an engineer to build it. –  Mark C Nov 1 '10 at 5:16
1  
Sounds like we have a volunteer for first henchman! –  Cameron Skinner Nov 1 '10 at 10:13

Manufacturing industry (cnc machining software) for example; has a lot of optimization problems related to geometry (not to put a too fine a point to it).

share|improve this answer
    
HI-YO! What a pun. –  Mark C Nov 1 '10 at 5:17

Two open source mathematical projects that leap to mind are

  • R, a language for statistical computing, and
  • Maxima, a Common Lisp Computer Algebra System.
share|improve this answer

3D gaming or anything relating to real-time 3D graphics. Tons of math & algorithm development. And most of it needs to be optimized and very fast.

share|improve this answer

Software systems for logistics and transportation are also using advanced algorithms heavily, especially for optimizations.

share|improve this answer

I work in the IAAS industry (Infrastructure As A Service) and find my job to be extremely challenging and rewarding. I'm constantly refining how virtual machines are migrated to achieve the best utilization and density, how to determine when something needs to scale and by what magnitude, when something should relinquish resources and writing more 'intelligent' load balancing algorithms. Studying various hypervisor implementations and working with them is also very interesting.

I also work on fraud detection, intrusion detection, algorithms to help differentiate between benign and malicious activity when given nearly identical patterns and many other interesting things. Some have already mentioned SPAM detection, which becomes our responsibility.

There is also ample opportunity in storage systems research.

I have never liked 'straight' application development. I've always been a systems programmer. It is 'researchy' enough for me while providing rapid gratification when something I've worked on is deployed and becomes useful.

share|improve this answer

In places that make high tech things (physical things, not bits), there are often systems analyst positions whose job is to write programs with mathematical models of the new tech, or create sophisticated analysis algorithms for the data gathered in testing.

This may require more of an engineering than a pure math background, but it is certainly a position that uses advanced math every day.

share|improve this answer

Matlab and Maple would be a couple of software products that could be worth digging into somewhat if you want to mix Math and Computer Science.

PS - Yes I did use both of these products in university in a course each, one for Numerical Analysis and the other Symbolic Computation.

share|improve this answer

Your Answer

 
discard

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

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