Meta comment: You are asking exactly the right questions. A decent mentor would be ecstatic to have the opportunity to guide you.
To answer your question, I primarily google it. I will spend an exorbitant amount of time reading posts, watching talks, etc. However, the key for this to work is to develop a "filter" for knowing when the content is not going to answer the precise question you have. Then just skip it and move on to the next one.
Once you have a hint of understanding, then it is time for practice. A solid understanding by research alone is ideal, but I don't find this to be achievable in many cases. Even research scientists do experiments.
I usually end up practicing on working code that I already know. Then I live with it for a while to see what falls out -- what becomes harder and what becomes easier. Some tactics are just bad for general use, but usually every one has a trade-off. The trick is to find the one with negative trade-offs that have little-to-no impact for your situation, so the net gain is positive.
"A solid understanding by research alone is ideal, but I don't find this to be achievable in many cases". This was a beautiful way of putting it. True in everything in life.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.