One week ago, I started a course at the DaVinci Institute to learn how to code in the RubyOnRails framework. Already, it’s been an exciting journey as I begin to dive into the world of software development. I’ve learned a lot about using my computer as a tool to craft my code, but I’ve also learned that being a coder is a way of life. Part of embracing this new lifestyle means that I have to restructure the way I approach learning in order to be successful.
In class, we learned that there are many different strategies that can help you remember the things you learn and engrain them into your knowledge base. One such strategy called ‘Elaboration’ is the process of explaining a concept to others to ensure that you fully understand it – teaching others is part of the inspiration of writing this blog! Beyond ‘Elaboration,’ there are three interdependent core strategies for learning that have been proven to be successful to everyone.
Practicing knowledge retrieval (self-quizzing) is the foundation for learning a new concept. By quizzing yourself, you can reveal areas of weakness and also identify the important key ideas to learn. One of the greatest tools for accomplishing this is making flashcards and trying to recall a concept based on a keyword. At first, it might be frustrating when you can’t seem to remember something, but the extra effort you put into learning will only strengthen your understanding.
Spaced & Repetitive Practice
After making flashcards that highlight key ideas, the next step is to practice, practice, practice! Quiz yourself until you can recall the concept with ease. Once you can accomplish this, give yourself time to forget the flashcard exists. Then go back and revisit and see if you can retrieve that information from memory again. Naturally, humans are prone to forgetting information. Give yourself time to forget between quizzes so you don’t simply become familiar with the concept from a recent study session. You’ll struggle to recall the information the first few times, but it’s only engraining the knowledge into your memory even deeper.
Interleaving topics of study
Eventually, as you begin to learn many new things, you’ll have so many flashcards that you won’t know what to do with them! Keep them, and revisit old topics in between studying new information. For example, let’s say you just finished exercising how to add new methods to existing classes in Ruby. Take a break and go back to your old flashcards on array methods. This strategy builds on the concept of spacing study sessions to challenge your memory in retrieving information.
I understood the theory behind learning to learn, but how do you implement these new techniques? First, I downloaded Anki, a flashcard application that allows you to store tons of cards digitally. You can sync your computer to a mobile app, which makes studying on the go that much easier. Our first quiz was on terminal commands, so I found myself making flash cards like ‘pwd’ = ‘print working directory’. Great! Well, after studying all of my flash cards, I tried to interleave my study by tinkering around with some Ruby code.
Eventually, I decided it might be fun to try and create a game that quizzed you on the terminal commands that I was trying to learn. A few hours later, and I had developed a small Ruby application that would ask you what ‘pwd’ meant. If you typed ‘print working directory,’ you got a point. At the end, it would score up your points and total them, so you could see your progress. In trying to interleave my study of Ruby as well as terminal commands, I ended up with a neat program that let me practice my coding as well as let me quiz myself.
Check out the code below if you want to play the game yourself. It incorporates 24 terminal commands highlighted in Zed Shaw’s Command Line Crash Course. Be sure to type the exact description of the terminal command from Shaw’s book. Have fun and good luck!