"Think like a programmer" is a phrase you've probably heard before. This involves being able to look at a problem from one perspective, then taking a step back and looking at the same problem from a different position. Rep this process till you've found a solution.