What do you do when you encounter a programming problem that is really hard for you to solve, and you have no idea yet? Usually, how do you solve it at last?
NOTES: Could someone introduce something about problem solving practice?
I just think it over when a pencil and paper.
For me the trick is breaking it into manageable bits.
-- Edit
I must agree with the poster above about talking to someone else, as well. Even if you don't have anyone you can talk to, explain it to a fluffy toy, and the answer will often become obvious.