From positioning items on the screen to dealing with complex simulations of the laws of physics in animated games, to finding ways to optimise information flow in a vast network, the fields of Mathematics and Computing are closely interdependent.
It seems to me that the connection between programming and Maths is often under-emphasized or downplayed, with some people claiming that Maths is not even necessary when learning to code. However, without at least a basic competence with Mathematics, becoming a successful developer could be very challenging.
There is more though – studying Mathematics is one of the best ways to develop the problem solving skills and attitudes so necessary to be successful in computing. These subjects are deeply connected, and looking at each through the perspective of the other deepens and broadens our understanding of both.
I think the confusion arises because different people have different ideas of what “good at mathematics” means, and the level of ability that would entail, as well as the fact that there is certainly a lot of variation in the amount of Mathematics needed for different applications of computing and different roles as a developer.
Areas of Computing which require strong mathematical knowledge
This is just a small sample of the fields in computing where strong knowledge of Maths is required:
- Computer graphics, both 2D and 3D
- Time and Space Complexity Analysis
- Machine Learning
- Automata theory
- Compiler construction
- Theoretical computer science
- Algorithm and data structure design.
- Database Theory
Areas of Mathematics used in Computing
It is by no means essential to be an expert in multiple fields of mathematics in order to be a great developer, but a passing acquaintance at least with some of the following topics may well help you in your career.
- Coordinate geometry
- Geometric transformations (e.g. CSS
- linear algebra
- Graph theory
- Number Theory
- Set Theory
- Functions and Relations
Don’t panic: some fields of computing require you to have extensive knowledge of Mathematics, but you don’t need advanced Mathematics skills for most development jobs. You will likely need strong problem-solving skills and at least basic competence with Mathematics though.
Buy these Recommended Books for Learning Mathematics
Most of these books are not explicitly about Mathematics for Computing, but rather a selection of the books on my shelf which I’ve used over the years which I think are interesting or helpful of both…
I may add more in future…
As an Amazon affiliate I earn from qualifying purchases.
A really interesting guide to how Mathematics and Programming are related, packed with interesting examples and historical information on various aspects of mathematics. The code samples and exercises are in C++, but there is a repository available with Python versions too.
A great introduction to mathematical proofs with clear explanations and plenty of practice exercises, along with solutions to odd numbered exercises. There is a lot of similarity between creating a athematic proof and solving a computational problem, including the rigorous application of logic. Mathematical proofs are also where for many, Maths starts to get really interesting.
A classic text on approaches to problem solving packed with examples, exercises and solutions.
An old but excellent book on elementary mathematics written by a brilliant educator. This book makes some of the fundamental principles in mathematics self-evident though the use of imagery and skilful explanation.
Keep your mind sharp with this curated selection of Gardner’s best mathematical and logic puzzles.
This book covers some of the ground between A-Level Mathematics and undergraduate work. Topics include Number Theory, which is important for cryptography, and other mathematical topics which are important in computing.
A nice clear edition of the Book of Euclid that treat number theory, using modern notation to present the original proofs and arguments.
A great modern version of Euclid’s classic work with a hardcover, clear diagrams and easy-to-read layout.
A comprehensive introduction to Discrete Mathematics with clear explanations and plenty of practice exercises.
A detailed exploration of the overlap between mathematics and programming. Full of interesting topics, but quite fast-paced, so be ready to give your brain a good workout.
This post has provided some recommendations for books to learn mathematics, particularly for those needing it for computing. I hope you found it helpful.