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.