You don’t need to know mathematics for many different areas of programming but it is necessary if you want to get into areas like graphics, game development, machine learning and artificial intelligence or computer science more deeply.

Don’t let a lack of mathematics knowledge and confidence limit your options. Most of the courses below will be helpful for anyone who wants to learn or improve their mathematical capability – even if you’re not interested in programming at all. Then the last few courses focus specifically on the topics that are most applicable for computer science.

### Introduction to Mathematical Thinking – Coursera

This Coursera course was developed by Dr Keith Devlin, co-founder of Stanford University’s Human-Sciences and Technologies Advanced Research (H-STAR) Institute. It introduces you to how to *think* mathematically first rather than going straight into teaching you how *do* mathematics. Even if you’re not that interested in learning mathematics, this is an excellent course that will help you think more creatively.

### A Mind For Numbers – Barbara Oakley

Barbara Oakley is a co-creator of the extremely popular (and we highly recommend doing it if you haven’t already yet) Learning How to Learn course. This book shares the mindsets and techniques to learn maths and sciences effectively, even if you have never been good at them before. Oakley herself was not originally good at mathematics and discovered how much it was holding her back in her career. In this book, she shares what she learnt that changed how she saw and approached learning mathematics and science.

### Introduction to Algebra – edX

This course for beginners introduces to you the basics of Algebra in a fun and applied way. It covers the a standard US high school curriculum for Algebra I and is great to help you better understand this foundational topic.

### Introduction to Geometry – edX

Like Algebra, Geometry is one of the oldest fields of mathematics. Geometry helps you understand and measure things like shapes, distances, sizes and positions. No surprise that it is very important in software development in games, graphics, robotics and more!

### Calculus for Beginners and Artists – Daniel Kleitman

Kleitman is a professor of applied mathematics at MIT. This is a quirky and amusing introduction to mathematics and calculus for complete beginners (including non-mathematical artists! 😀).

### Math – Khan Academy

Khan Academy is a fabulous resource for exploring and delving into specific mathematics topics or just further practice.

### Math for Programmers – Paul Orland

This book is due to be published in late 2020 and in the meantime is available through early access online. It’s targeted at programmers who don’t have a background in mathematics but who would like to get into fields that require it. It introduces you to geometry and calculus, then ends with more specific machine learning applications. The aim is to make mathematics fun and accessible for programmers.

### Mathematics for Computer Science – Coursera

This course developed by Dr Matthew Yee-King from Goldsmiths, University of London aims to give you the mathematical foundations for computer science.

### Mathematical Thinking in Computer Science – Coursera

This course is developed with instructors from the University of California San Diego National Research University Higher School of Economics. It introduces you to key mathematical concepts and tools needed for programming in areas like algorithms, bioinformatics, computer graphics, data science, machine learning. It assumes very basic maths so it’s fine if you’ve done some mathematics at high school, but if you are a complete beginner or don’t feel confident with the basics then better to start on one of the more introductory courses above. Also note some exercises require beginners’ level Python familiarity too.

### Mathematics for Computer Science – MIT OpenCourseWare

This course doesn’t have the slickest interface – it’s basically recorded lectures and associated materials. But it is free through MIT’s OpenCourseWare and gives you access to a course run at one of the world’s top universities for computer science.

### Linear Algebra for Machine Learning – Machine Learning Mastery

This ebook from Machine Learning Mastery provides an accessible introduction to key linear algebra concepts that are important for machine learning. If you have some understanding of Python, this will get you on top of the fundamentals that you need to go further with machine learning.

### Mathematics for Machine Learning – Ulrike von Luxburg

The University of Tübingen has a great machine learning program, and this Masters-level computer science course is part of their material available for free on YouTube. It’s a recap course, so it’s not all assumed knowledge but the lecturer whips through at a bit of a heady pace.

Keep going with our 31 Days of Learning. Sign up to our newsletter to keep updated!