How a person attempts to solve a problem will differ from person to person based on how they think, organize, and even visualize a problem.
That being said, there are a few common things you can do to help yourself solve problems:
- Write down the problem, be as descriptive as possible without going overboard. This is to get the problem solidly described in your head and on paper. It helps you to build a proper visualization, rather than some vague description.
- Break the problem up into smaller pieces, these pieces should be relatively self contained and you should be able to describe how the different pieces talk to the other pieces to produce the whole problem.
- Repeat for each of the smaller pieces till you have something more manageable.
Solving the problem is then just an effort in solving each of the much simpler and smaller problems. Further, since you have an idea how all these pieces fit together you can write solutions that take that into account. That being said, many people make things far more complicated than they need to be. A good example is hierarchical scene culling, its relatively complicated and in the end it turns out that a brute forced array is usually faster.