“A Programmer’s Introduction to Mathematics” by Jeremy Kun. It’s funny, approachable, and manages to get deep into math topics important to programmers. It goes into the history and culture of math, helping you understand why math is the way it is. Couldn’t be happier with it!