My Octopress Blog

The Place of Flash Cards

Speaker Deck is a great resource for finding technical talks from conferences you’d otherwise never be able to attend. The downside is that every speaker utilizes their deck differently when presenting, and since Speaker Deck only hosts the static slides (that is, not accompanying video or audio), it can sometimes be difficult to ascertain a speaker’s meaning from their slides alone. Peter Evjan, the author of “Using flash cards to improve your Ruby”, the talk I’ll be discussing here (given at RubyKaigi in Toyko just a few weeks ago!), admits as much in the notes accompanying his deck. But even when that’s the case, these decks can serve as great jumping-off points to explore more on your own, and frequently yes, they are damn beautiful!

At first blush, flash cards seem like an odd tool when it comes to learning to programming. After all, flash cards belong to the domain of rote memorization, to the childhood state capitals quiz – information that is tested once and rarely used again. In my study of Ruby I’m not looking to spit out term definitions, but to one day be able to nimbly apply concepts in practical settings. And one thing I’ve been told more than once is that programming is less about what you know, and more what you can figure out. One topic that comes up a lot at a place like Flatiron School is the existence different learning styles, and last week in particular, the wisdom of reading programming books cover to cover. Avi offered that he first reads such books for breadth, just enough to become aware that a particular concept exists, and then later to remember where he read about it (further emphasizing the “figuring out” aspect of programming).

So again, what’s the use of flash cards? As someone who in just the last week alone wasted time writing “my own” .collect and .each_with_index methods because I either wasn’t aware they existed or forgot how they worked, I can see the benefits of memorization in this regard -it potentially saves a lot of time! Memorizing exactly how .collect works and what it returns would make it easier for me to recognize when to use it in practice. I’ve also seen instances where a classmate suggested a method that no one else was even aware of. For those less-frequently used methods, flash cards might be a good answer to that “know that they exist” part of the equation. And as someone who is learning a bunch of new technologies at once, learning the correct terminology to go along with them is crucial to being able to discuss programming issues in a meaningful matter. So perhaps a little terms memorization isn’t uncalled for after all.

It’s worth mentioning that Evjan is advocating for a more sophisticated type of flash card use than we may have used for those state capitals –spaced repetition as utilized by the (mostly free) flash card program Anki. Spaced repetition is a learning technique that takes advantage of the spacing effect, which holds that items are more easily recalled when they are studied a few times over a longer period of time as opposed to many times over a short period of time. Anki takes feedback from the user after each answer (on whether it was remembered easily, with a small error, etc.) to construct an algorithm that determines when and how often to quiz the user again on that particular item. I’ve just started to look into the capabilities of Anki, but I look forward to finding ways to incorporate it into my Ruby regimen!