What is the necessary Math skills needed for a particular field? [closed]
Do you have an overview of what kind of Math is most useful for which field? For example, if a linux kernel developer, what type of math knowledge does one programmer need? For a driver developer, what type of Math is needed? It seems to me that except for computer science related fields and game programming, do other IT fields need hardcore Math?
Discrete math and binary and logic math of course needed in all fields.
<metaphor>
Having a degree in math, a math hammer makes a lot of problems look like programming nails.<metaphor/>
Here are some math hammers:
- linear algebra to solve near-singular matrices in NMR Spectroscopy (medicine)
- statistics to test the quality of a data feed (see Experiment design)
- combinatorics to figure out how to break down power sets (Engineering)
- more combinatorics to count drug combinations (see N-sided dice) (Medicine again)
- complex arithmetic to look at Mandelbrot sets (school)
- Monte Carlo method (physics, financial simulations, and a bar bet)
- calculus to solve equations (finance)
- Boolean logic (crosses all programming disciplines)
You might think that a given math course is a waste of time. However, if you learn from the course, you'll know which tool to dust off and when you need and use it!
Unless you're doing a specific type of development that involves mathematical calculations, most programming areas do not really require a lot of math knowledge (exceptions below). However, it's very common in hiring to look for a strong math background because there tends to be a high correlation between strong math skills and strong programming skills--good organization to solve complex mathematical problems indicates good organization to solve complex programming problems.
There have been some studies that actually look at alternative ways to teach programming with very different results. For example, looking at correlations between creative writing and programming, look at people with very good creative writing skills, and teach them to program as if the program is telling a story, not solving a problem. This has shown to also produce very good programmers, often with a different take on problems.
Exceptions to when math is really required is for things like video codec implementations, statistics required for advanced reporting, or any type of low-level 3D work not using an API that abstracts it all away (which is most commonly the case).
In addition to the other answers, graph theory provide essential tools in algorithm construction.
精彩评论