One of the best mathematics book I’ve ever read is ‘Problem-Solving Through Problems’, by Loren C. Larson.
The book is composed of 8 chapters. Each of these talks about a certain mathematical tool or topic. After a brief theory introduction, shows a lot of interesting example problems, which are very instructional and show how you can effectively apply the theory you’ve learnt. Also, there are some end-of-chapter problems without solutions. In general, the topics are advanced and the problems are quite difficult, so be prepared to spend a decent amount of time on this book. Some requirements before you read this are: trigonometry, vectors, basic understanding of series and recursions, modular arithmetics, basic calculus.
Personally, I really enjoyed this book, as it helped me develop some advanced mathematical skills. I found the solutions of the exercises clear and synthetic, which is exactly what one should aim for when writing a proof.
The problem (pages 138-139) that I liked the most in this book was:
Prove that, given 3 real numbers , if then
It’s particularly useful for the Putnam Competition, but also for University itself. In fact there’s an entire chapter named ‘Intermediate Real Analysis’.
To sum up, I recommend this book to people who have already developed mathematical and problem-solving skills and want to improve them even more.