The purpose of this book is to isolate and draw attention to the most important problem-solving techniques typically encountered in undergradu ate mathematics and to illustrate their use by interesting examples and problems not easily found in other sources. Each section features a single idea, the power and versatility of which is demonstrated in the examples and reinforced in the problems. The book serves as an introduction and guide to the problems literature (e.g., as found in the problems sections of undergraduate mathematics journals) and as an easily accessed reference of essential knowledge for students and teachers of mathematics. The book is both an anthology of problems and a manual of instruction. It contains over 700 problems, over one-third of which are worked in detail. Each problem is chosen for its natural appeal and beauty, but primarily to provide the context for illustrating a given problem-solving method. The aim throughout is to show how a basic set of simple techniques can be applied in diverse ways to solve an enormous variety of problems. Whenever possible, problems within sections are chosen to cut across expected course boundaries and to thereby strengthen the evidence that a single intuition is capable of broad application. Each section concludes with "Additional Examples" that point to other contexts where the technique is appropriate."
Working through most of this book was one of the two most useful [*] things I ever did for learning to solve mathematical problems. It took a few hundred hours (IIRC), but was time very well spent and was repaid later with interest.
That's not to say it's a silver bullet - working through the book requires that you be at the right current problem-solving level (neither too far ahead of the book's level, or behind). It's only part of a much longer process. But for me it was immensely helpful.
[*] The other was starting to treat the theorems in mathematical books as a series of problems, where the goal was to prove the theorem without reading the proof. This is an extremely slow way of reading - a page an hour was often optimistic - but it does improve your problem solving. I recommend extensively trying it; among other things, getting good at being stuck is an immensely valuable part of learning to problem solve.
The problems in this book are challenging and force you to think creatively within your limits to solve them. This book is forcing me to take a closer look at some of my fundamentals in order to attempt to prove its various problems. I am wholly humbled yet this reading has inspired me to learn more.