DEV Community

Cover image for Math can be difficult, programmers need it and you can be good at it!

Math can be difficult, programmers need it and you can be good at it!

beabkal profile image Beabkal ・3 min read

You can become a good software engineer without the need to be good at math. But what if you wanted to enter the Data Science world? AI and Machine Learning? Here as well, you can use already developed models and software but it’s not going to take you far. You need Math. And you can be good at it.


Math is everywhere. From the phones in our pockets to spaceships, math is what makes it possible for technology to exist. But you already know that right? You might also know an average person’s brain operates at 1 exaFLOP, which is equivalent to a billion billion calculations per second. The calculation we make in our brain when crossing a street is far more complex than one can fathom.

So it begs the question: why do we struggle with Math while carrying around a “super-computer” in our heads?

While Math is a satisfying form of art for those who can “dream in it,” it is much more frustrating for many. Specially for those who aspire to enter a STEM field. Some people are offset from entering such fields by the shear idea of Math being impossible to be mastered.

Before we go any further:

There is bad news. Math is hard, really hard actually. That’s a fact. The good news, Math is a skill just like most skills you’ve mastered over the years and you can master it too.

jeswin-thomas-hecib2an4T4-unsplash (2)

The solution?

In my personal experience, I have found 3 things I believe are the main ingredients for success in learning Math: Basics, Practice and Persistence.

Basics: just like any other field, Math builds up from the basics. And they are far more important than you might have thought. A very complex equation you see is nothing but a structured build up of some basic concepts. So, make sure you have thoroughly understood the basics working principles of the concept you’re trying to learn before advancing. And after you have advanced, you might (most likely) struggle, then you should always go back as many times as you’ll need until you know it by heart.

Practice: I don’t think much is needed to say about this. Practice is crucial for any skill to be mastered. You can’t play the piano in a week, you need to practice, practice, and practice, till you no longer have to think twice.

Persistence: this is more of an emotional trait you need to develop through time. As Marcus Aurelius said, “if it’s humanly possible, you can do it too.” Always have this saying at the back of your head to help fight whenever the “I can’t do this” thoughts pop up.

Best resources?

  1. Learning How To Learn: this is an online course on Coursera, I believe every student should take. In her highly rated course, Barbra Oakley talks about how one can learn efficiently. She is also a walking example for showing that Math can be learned regardless of age or background.

  2. Introduction to Mathematical Thinking: this is a course that tries to teach the most fundamental Math concepts that lay the foundations for the more advanced ones such as Calculus.

  3. Khan Academy: after completing the above courses, Khan academy is the best place to prepare on introductory concepts like basic Algebra.

For Computer Science students and programmers:
  1. Introduction to Discrete Mathematics for Computer Science Specialization: this is a Coursera specialization that aims at math computer science students need to learn. This is a very long and comprehensive course you should consider.

  2. MIT open courseware: is also a place where high quality materials can be found, although, this needs self discipline and commitment since it’s loosely structured compared to the above ones.

  • Awesome Math: This GitHub repo has an extensive list of resources for almost every subject you would need in Mathematics.


Keep going, and don’t let your fears hinder you from becoming whatever you dream of. If you have used any Math resources worthy of mentioning, please let us know in the comments below!


Editor guide