How to build, retain and USE programming knowledge
You’ve set a goal to learn Ruby, and have taken the standard advice of working through tutorials. It’s not easy, because there’s so much to learn! The problem is, you retain very little of the information. Even worse, that means you can’t do anything with what you learn!
So you end up reading the same tutorial a few times, trying to find the missing pieces. When that doesn’t work, you find new tutorials to read, new videos to watch… and although it feels like you’re learning a ton… you have nothing to show for all your hard work. You’ve got a bunch of example apps that you’ve copied line-by-line from tutorials, but when it comes to your own stuff: nada.
How do you actually remember the programming information you come across? How do you do something useful with what you’ve learned?
I use a simple technique any time I need to learn something new. It’s something I learned in middle school (and I’m guessing you know it too :)
Research: the most underrated programming skill
It’s time to ditch the aimless wandering through tutorials, and focus your learning. It’s time to do some research. That means systematically investigating and studying the Ruby world so that you can increase your understanding. And it’s really not hard. You really only need to do three things:
- Ask a question
- Find the answer
- Do something with the answer
Rinse and repeat :)
When you ask a question, you’ll focus your learning efforts. Most importantly, you’ll know that when you find the answer, you’re done! You’ll know that you accomplished something. You’ll know that you can move on to the next question.
But to really make it work, you have to do something with what you’ve learned. Code up a quick sample in a gist, or a new GitHub repository, or your code journal. Write a blog post. Do something with your new-found knowledge, so you can actually retain it and build on it.
What to do when new questions come up
You WILL find yourself asking a bunch of new questions as you research the answer to your initial question. Don’t get distracted! Write them down, and work on them next.