Logo for the raulrpearson.com site

Learn coding with spaced repetition

A couple of years ago I decided to try Anki, a flash-cards program that is awesome for memorizing things long-term with the least amount of effort. I decided to try it out because the idea sounded very powerful.

I started by installing a shared deck. This deck contained the capitals and flags for countries around the World. I'd never heard of many of those countries and they had really strange and arbitrary names that I couldn't even pronounce. "There's no way I'll be able to recall these things", I thought.

I was in for a surprise. I've been able to recall all of these, and I didn't even strain myself. I only had to invest 10 minutes each morning. Yes, I did that for months, but it felt like a game.

I really recommend you try it out. Install the app and get a simple shared deck. Start small. Get familiar with the program and ingrain the habit of the daily 10-minute review. You'll be fascinated with the stuff you'll reliably be able to recall.

Rote memorization has a bad reputation

Rote memorization has a bad reputation and it's hurting our learning. One of the reasons I went into STEM is that I despised memorization. If you study history, there's no way around it, you have to memorize facts. In science, it seemed, you just have to understand.

Well, that's the strategy I used for my first couple of years at university. I was so against memorization that, when I got to exams, I wasn't able to recall some of the formulas required to solve problems. I understood the problems and the solutions, but I got stuck trying to recall the formulas. And that really hurt my performance.

Out of desperation I ended up dropping my aversion for memorization. My results skyrocketed. I became to understand that memorization aids understanding. This still goes against common advice but, if you're struggling to understand a certain topic, spend some time memorizing some of the items in that topic (definitions, symbols, conventions...). Understanding is still important, but it goes hand in hand with memorization.

Applying it to coding

Learning coding is like learning a language. We literally call them programming languages. If you were studying a language, you wouldn't question the idea that you need to memorize some new words. There's nothing to understand about the fact that gato is cat in Spanish.

Of course, you could learn about the etymology of words and that would be helpful, but you'd still be memorizing stuff. In practice, you just memorize the new word by using mnemonics and repetition. Apply that same strategy for coding.

Memorizing large amounts of things quickly becomes difficult to manage. That's were Anki comes to help. It uses an algorithm to choose the optimal time for you to review a certain bit of information. Maximizing efficiency without sacrificing effectiveness.

Someone already created a shared deck named "Frontend (JavaScript related technologies)". That might be a good place to start. Don't get discouraged if some of the cards seem arbitrary or not relevant to you. Limit the number of new daily cards and trust the process. Consistency is more important than exertion. Make it manageable.

I'll be studying that deck myself, but I also want to create my own decks in this area. I intend to write about this again once I've derived some learning from applying this strategy to coding. If you want more inspiration, check out this article on freeCodeCamp.