Math for ProgrammersΒΆ

Math looks like a mess of symbols if you aren't familiar with it, but the purpose of symbols and concepts is to decrease annoying repetition. For example, it's much easier to write $2+3$ than "the number of apples you get if I give you two apples and John gives you three apples". The math itself is independent from everything and mathematicians don't make it up, they just discover things about how numbers behave in different cases.

This tutorial contains practical math for programmers who want to get stuff done, but also math that is really fun on its own even though most people won't find it practical. I assume that you have some experience with programming, but you'll probably understand most of this tutorial without programming skills.

Start by opening the basics page and keep it open while you read the tutorial. There's nothing wrong with looking up things from it as you go.

If you don't know what to start with I recommend the derivative tutorial. You need them for surprisingly many other things (see the drawing below), but they are also a nice way to get started with math; calculations that seem like they will be complicated turn out to be doable in the end, and we can develop a bunch of handy rules to make things even easier.

If you came here because you want to calculate some specific thing, go to the summary page to get a nice and concise list of things that are shown in this tutorial.

Here's a drawing that shows which things you need to know in order to learn about new stuff. For example, you need derivatives for many things, but if you don't like derivatives you can also get started with number theory or geometry and trig.

Be sure to learn things as shown in the above drawing. If you jump directly to the head explosion zone without reading anything before it you won't understand anything and you won't experience the explosion correctly.

The number theory chapter contains chapters that are useful for programming, but not really connected to most other math things. That's why it's not connected to other stuff in the above drawing.