My math skills aren’t that great, to be honest. I used to suffer from doing some easy problem solving that are math-related.
I do think my poor math skills are mostly because I didn’t get a good foundation in high school. So, without further ado let’s get into it.
To improve in Math you would actually have to solve a lot of Math-related programming problems. Like the ones that competitive programmers do.
I was researching a lot and I found out some great resources.
First step
If you know nothing about math… The best way to start your journey is by watching **Khan Academy**, of course.
Khan Academy has a huge library of educational videos about different Math topics, starting from kindergarten level to some university level topics.
Second step
Use the **Open Source Society University** math curriculum.
https://github.com/ossu/computer-science#core-math
Third step
In my opinion, this is the most important step. And it’s actually doing a lot of Problem Solving.
A really great resource is a book called **Competitive Programming 3** the book is great overall, and most importantly the Math chapter in it. The authors have really gathered a lot of Math-related problems and if you solve just a few you will definitely improve your Math and Problem Solving skills.
You don’t need to buy the book to check the problems though. You can check the **problems available in the book on a website called [UVA-Online Judge](onlinejudge.org/)**.
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=695
There are more than 300 problems in this chapter focused on Math.
Conclusion
Finally, Math is hard but like anything in life if you do Math more and more you will eventually improve.
Good luck studying and I’ll be glad if you can share with me any other resource that you found helpful.