Episode 15 - Mathematics for Developers
Yeah... math. Remember? That subject from back in school and/or uni that you loved or hated or maybe just got along with ok-ish. And mathematics for developers - what is this? This episode is actually Kai's fault. He clearly likes mathematics and even studied it full time at university.
We start as usual by going through a few things we've found online and talk about what we've been doing over the last few days and weeks. There's some exciting stuff in there, but you'll need to listen to the episode to get all these details.
We launch into the actual topic by talking about how we feel about mathematics and how we use it in our lives. That varies from day-to-day arithmetic up to work usage to solve some types of problems.
We talk about how you learn mathematics in school and how that progresses into university mathematics. One key component of enjoying mathematics and developing an interest in the topic seems to be teachers and their ways of knowledge transfer.
Learning mathematics at university seems to be a very different experience: Lectures on the blackboard, hard to follow and understand and totally geared towards an academic career and not towards practical applications.
But how do you learn math in a better way - or how do you get back into mathematics after some years of not using it? And how does that apply to development work?
One way of looking at mathematics can be by trying to identify building blocks after you have picked a practical application. Let's say you want to work on some piece of code to animate a 2- or 3D object.
Sure, you can just use a library. But if you want to understand the math behind it, you'd have to learn about rotation matrices. That leads you into having to understand a bit more about matrices and trigonometrical functions. Matrices are Linear Algebra, then there's some aspects of Geometry involved and functions are covered in Calculus.
The interesting thing is that a lot of practical applications reduce to a limited amount of these building blocks. They act as reusable sets of knowledge that will help you to understand a variety of different topics across mathematics and computer science: Data Analysis, Machine Learning, Animations and more.
We have some resources for you to help you get going.
Tools and online communities:
Jeremy Kun - A programmer’s introduction to mathematics
John Stillwell - From Euclid to Goedel
It is Free