Problem solving isn't something that can be taught or even learned by reading. The only way to get better at solving problems is to solve problems.
There are different techniques and methodologies to problem solving that you can read about, and you can read about tools and technologies that you can use to solve problems in a particular domain. But unlessUnless you continually think about problems, try to come up with solutions (note the plural - comecome up with multiple solutions for every problem and evaluate them against each other), and then evaluate your solutions against the solutions developed by others, you won't get better at problem solving.
I recommend picking up a copy of Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt. It's a book about understanding how you think, react, and learn. It brings in relevant theories from behavioral theory and other cognitive sciences. It's specifically geared toward software developers, but applicable to any knowledge worker.