Hadley Wickham, who I consider to be one of the most readable writers of technical material I’ve encountered, gives some insights into to what makes a successful programmer. He sums up quite succinctly my own approach to any subject and concludes with something I learned long ago: one of the most reliable ways to find a solution is to articulate the problem. I learn by teaching, and by iteratively asking (like a small child), “But why…?”
“A scientific mindset is extremely helpful when learning R. If you don’t understand how something works, develop a hypothesis, design some experiments, run them, and record the results. This exercise is extremely useful since if you can’t figure something out and need to get help, you can easily show others what you tried. Also, when you learn the right answer, you’ll be mentally prepared to update your world view. When I clearly describe a problem to someone else (the art of creating a reproducible example), I often figure out the solution myself.”
Hadley Wickham, Introduction: Advanced R