By learning the techniques you can solve problem better, this is why you should learn every technique you can. By learning the techniques you can repeat what you just did, which means, that if you solved one problem with a technic next time you will solve another problem with it.
I don’t tell everyone, go to an engineering school, study hard and become an engineer.
I say learn what is behind what you can see, ask for the roots, watch people how they solve problem and learn from them.
Take a problem of a subject you know nothing about, and ask yourself “if someone can solve this, how does he proceed?” Remember you know nothing about it.
Then you find out the technique. It makes senses, and you can reproduce what you just learned.
Next step is to teach what you just learned, or write. How to?
Put yourself at the position you were before you start to find a solution for your problem, remember what your questions were and start from there.
By teaching a technique you will become more precise and more efficient at addressing the problems. Other people will ask you question you didn’t think of, and you will both improve your skills.
And practice, on new subjects all the time. Make you feel comfortable with the uncertainty of failure, the lack of ideas etc… make you feel it’s ok to do not know. Take the habit to move fast on perpectives. Allow you to move the problem the way you want to see it in different views. Don’t be shy.
Now go learn, and go solve problems!