First of all you need to understand that not every problem can be solved by sistematically applying the same set of steps or rules: sometimes you need to come up with different ways. In order to do that, you need to know all the different tools (theorems, properties, etc.) that you have; unfortunately, the only way to do this is by studying, understanding and memorising the theory. Once you know what tools you have in your hands, you could try to use each one of them to see if it works and, if it does, if it gives you a meaningful and useful result, BUT this becomes very complicated and stressful when you have several strategies you could use. This is the reason why practicing as much as you can is essential: once you know how to recognize what the problem is asking you to do, and once you know what the typical result of a theorem is, you will be able to exclude the theorems that seem less useful.