Last fall I started using Vim as my full-time text editor. Around that same time I came across a fascinating article from Wired titled “Want to Remember Everything You’ll Ever Learn? Surrender to This Algorithm“. The article is about Piotr Wozniak and the spaced repetition algorithm he developed called “SuperMemo”:http://www.supermemo.com.
bq. SuperMemo is based on the insight that there is an ideal moment to practice what you’ve learned. Practice too soon and you waste your time. Practice too late and you’ve forgotten the material and have to relearn it. The right time to practice is just at the moment you’re about to forget.
Spaced repetition jumped out to me as a good way to learn Vim. But I didn’t follow up on it until I read a post by Jack Kinsella on “using spaced repetition to retain technical knowledge”:http://www.jackkinsella.ie/2011/12/05/janki-method.html using “Anki”:http://ankisrs.net/. I decided to create my own spaced repetition flashcard deck to learn Vim, but like any good developer, I first did some googling to see if it had already been done. And of course it had.
Alf Mikula wrote a nice article about a year ago titled “Using Spaced Repetition Software to Master Vim”:http://alfmikula.blogspot.com/2010/11/using-spaced-repetition-software-to.html. He’s also got a helpful flashcard deck posted to his GitHub account “vim_flashcards”:http://github.com/amikula/vim_flashcards.
My personal experience using Anki with Alf Mikula’s flashcards has been excellent. I followed Jack Kinsella’s advice and I experimented in Vim as I went through the deck; it has certainly helped me understand and remember commands better than I would have otherwise. If you are new to Vim and are struggling with all of the commands, give spaced repetition learning a try.