Does programming require knowing math? Not necessarily.

When I say that, I'm mostly talking about Web Development, not working with graphics or specific applications that require advanced math.

You can be a great programmer even if you were bad at math in school.

I mean, I've been programming for the last 20 years and I never had to open a math book to remind myself of something I had to know but forgot. I did quite a lot of math both in High School and at the University. Things so advanced and abstract that I don't even remember what was the goal of learning those (if there was even a goal, except passing the exam).

It's some sort of conventional wisdom that you absolutely need to be great at math to be a great programmer. Maybe because the first people programming computers were mathematicians, mostly because there was no "computer programmer" school around. Also, studying Computer Science or Computer Engineering involves a lot of math, but this is not really necessary on the field. 90% of a CS degree involves studying things that are really interesting, sure, but hardly practical. You need math to understand the underlying theory. But in day to day programming? Hardly so.

Oh, when I say programming, I mostly mean Web Development since this is my field.

There's certainly a good amount of programming jobs that require math. For example if you are working on a 3D rendering engine, a GIS application or Cryptography / Blockchain / Artificial Intelligence / Machine Learning, that surely requires a lot of math, but that's not even math that is taught in schools, it's very specific math. Any kind of low level graphics or game programming will also require math, and you'll need to study it before you attempt to do any of that. Math is also necessary to understand algorithms complexity, but you are not going to invent new algorithms, at least in the first few years of programming.

What you need to be good at, however, is problem solving. I think that math in school teaches you a good degree of how to solve problems, but so does Sudoku or other hobbies.

Of course you need some basic math concepts, like calculus or algebra, or logic, but the very basics if it. You don't need to know any of complex numbers, probability, equations, graphs, exponential and logarithm, limits, derivatives, integration, differential equations and so on. Not a single thing.

Don't listen to gatekeepers: if they tell you won't be a programmer because you are not good at math, don't listen to them. You can always learn everything you need along the way. Being open to learning is much more important than already knowing things.


Originally published on flaviocopes.com