Monday 6 June 2016

What every programmer should know about Mathematics


Many programmers ask – “Does computer programming have any practical use of math that we learned as students?”

Computer science derives from "compute" and we cannot compute without numbers and mathematics. We, as programmers must realize this.

Programmers wear different hats. Besides writing programs, they have to troubleshoot problems or compare run time complexities of algorithms that they design. They have to make estimates of error rates or make projections. Sometime data collection before making an informed decision is crucial. I have also worn these hats at multiple times and draws from his own experiences of using math to make more informed decisions over the years.

Borrowing simple math concepts from trigonometry, calculus, limits, curve fitting, probability theory, linear algebra, distributions, etc. this paper (link below) highlights how they can be used in almost every aspect that a programmer has to take into account depending upon how experienced they are.

We will size a thread pool, use Fourier transform to help in troubleshooting a tricky issue, assess chances of our request landing on some faulty node behind a load balancer, calculate chances of two concurrent requests, try to optimize our memory utilization, understand rate change in message arrival, understand how our different queues are loaded after state transitions from one to another, etc....

So, let us get read to wear a programmer hat that we always wear with an added feather of mathematical concepts!

The kindle version of the paper: What every programmer should know about Mathematics

Happy learning!