Programming requires math

A common question that arises from newcomes to the software development field is:

“Do I have to be good at math to become a programmer?”

The answer most commonly given is the spontaneous one: “No.”

But the thing is: yes, you need to be good at math; but not the type of math you maybe were expecting.

Misconception about math

If you’re comparing a software engineer with a mechanical engineer, at first glance it does look like the mechanical engineer does much more “math” than the software engineer. But this is because the mechanical engineer does much more of the types of math that you’re used to, back from your math studies in school.

Math is not just the algebra or trigonometry. Calculating numbers, or figuring out angles and weight in complex formulas on a peice of paper.

A mechanical engineer, to continue on that rail, commonly deals with “continous math”:

  • Calculus: Integrals, limits, complex numbers
  • Trigonometry: Angles, triangles, shapes
  • Differential equations: Derivitaves

A software engineer commonly tampers in the “discrete math” regions:

  • Graph theory: Sorting, heap, storing data efficiently
  • Logic: Algorithms, arguments, deductive reasoning
  • Combinatronics: Factorials, permutations, combinations

Both types of engineers cover math. Just not “typical math” that one might think of. Also, one does not exclude the other; there are plenty of sub-fields within both software and mechanical engineering that covers wider or even completely other fields of math than what the stereotype suggests.