How to Remember Everything, Ever and Forever

I have a coworker, Johnny, who is at least a little bit smarter than I am.

But Johnny has an (irritating) habit of always appearing a lot smarter than me, because Johnny remembers everything.

I often have to read something a few times before it sinks in, especially if the content is somewhat technical, where Johnny has read it once and remembered it all, and can answer all manner of questions about it. Combine this with my having the attention span of gnat, and there’s a problem worth solving here.

This is of course a mixed blessing for Johnny, as people are quite happy to use him as a technical reference with a really good audio API, which hurts his productivity some. Also: I recently found out he’s using the technique we’ll be talking about to learn Japanese,

In this brief post, I’m going to introduce you to the concept of the Spacing Effect, give you an overview of how I’m using it to commit massive amounts of useful (to me) information to memory, and then give you a set of interesting links to further your research.

You’ll Forget it, but at Least You’re Consistent

Psychologists have known since the late 1800s that you forget things in a consistent manner, and over a consistent timeframe. The more times you’re exposed to a piece of information, the more that timeframe stretches out – it takes you longer to forget it each time.

This is clearly simplified: some pieces of information you only need to hear once and they’ll never leave you, and there are some things of which you need to be constantly reminded.

This is one aspect that makes rote learning such a chore – identification of which pieces of information you need to revise, which you already know, which you’re on the verge of forgetting, etc.

If you’re thinking “this sounds like the perfect task for a computer”, you’re right.

And you share that insight with a Polish man called Piotr Wozniak, author of SuperMemo. SuperMemo, and its cross-platform and open-source counterparts are glorified flashcard programs, with a twist: they store your previous learning history for each fact you want to learn, and aim to ask you to recall each fact just as you’re about to forget it.

In this way, they optimize and minimize the amount of time you’ll need to spend studying pieces of information in order to recall them.

Making Learning a Lifestyle

So far, we’ve established that there’s a set of tool for optimizing anything you need to learn. Obviously mnemonics help, but these tools add in a structure you keep you using what you know, and to only force you to revise the pieces you’re struggling with.

If like me, you’re in a field where there are always new things to learn, this is a God-send.

Some things, after all, you have to learn. I recently did my Driving Theory test in the UK, and while much of it’s common sense, notable parts aren’t. Did you know that the average stopping distance at 40 mph is 36 metres? How many car lengths you should stop from another car when in a tunnel? In these situations, you’re able to minimize the amount of time spent on a necessary evil.

Other things, you’ll need to learn by doing – like learning a new programming language, or a new framework. But having all the information you’ll be using at your fingertips makes this much easier. Learning to wrangle Twitter Bootstrap is quite a bit easier if you can just commit the useful classnames and selectors to memory first, as following proof trees in Z-Notation is a lot less irritating when you’ve memorized all the funny punctuation first.

By condensing the pieces of information you need or want to know in to a piece of software that’s optimizing your learning experience, you can learn more, remember it longer, and remove much of the tedium.

And because it doesn’t get bored, or forget to remind you to review it, it keeps the mental effort of remembering things forever to a minimum – you’re only asked to review cards you’re likely to be on the point of forgetting.

Unsurprisingly, learners of human languages are all over this like a rash, which brings us full circle: if you’re trying to learn Japanese characters like Johnny, and you’re smart like Johnny, you’ll take full advantage of the Spacing Effect.

A Final Thought

My workflow with the tool I use is I use it for 5 minutes every morning. There’s currently something in the order of 3,000 facts in my DB, ranging from the the Highway Code to an exhaustive list of Haskell’s syntax and functions.

As a busy guy, 5 minutes is not a lot of time, and every day that I work with it, the fewer questions I get asked – I think I was asked 3 this morning. The exciting part of this to me, is that that means I can be loading it with more of the many things previously I didn’t think I had the time to learn.

Links, References, etc

By Peter

I'm a CTO, Consultant, Founder, Student, Open-Source Developer, and soon-to-be husband. Somewhere I find time to write this blog.


  1. Are you willing to share your Anki deck? I’m curious what people put in a “general knowledge” deck.

    1. I’ve stopped using one-use decks, and now everything goes in to the same monolithic deck (tagged). This fits my workflow much better, as like to spend a few minutes at the start of the day on it, and then forget about it. Anything I’m learning once, I may as well remember forever, especially as the cost of keeping something in the deck that’s been there a little while already (when you’re getting review times measured in years) is so small…

      I have tags for:

      • Learn C The Hard Way
      • UK Highway Code
      • Using Z
      • Marcus Aurelius Meditations
      • Introduction to Algorithms
      • Various git commands
      • Haskell
      • Thai alphabet
      • Z Notation
      • Twitter Bootstrap
      • Lambda Calculus
    1. I’m afraid they’re not. It’s also worth considering that decks tend to represents an overview of what one person thinks they need to learn, and doesn’t already know. Someone with a different academic background may have quite a different spread of base knowledge…

      1. Could you show several algorithm related ankis? I find it hard to create good ankis from complex topics.

  2. 5 minutes every morning? For the potential payoff, this seems like a no-brainer and something I must look into. Thanks for pointing me in the right direction. Once I have this setup I’m sure we’ll have interesting conversations (for once!)

  3. Great article. I’ve heard about this method and the software but it always seemed like it would take too much time. This is making me look at it again. How long does it take you to input the information? It seems like that is the time consuming part.

    What kind of information are you putting in your deck to remember? You listed the subjects but I’m wondering if it’s just definitions (words or concepts) and simple facts (i.e. what’s the minimum CPU requirement for X) or something additional?

    1. It takes very little time more than reading it; and much less time than it would to try and learn the information in any more formal context. The facts really vary, here are a couple:

      Front: What does De Morgan’s law say is equivalent to: ¬( p ∨ q )
      Back: ¬p ∧ ¬q

      Front: At a puffin crossing, which colour follows the green signal?
      Back: Steady amber

      Front: ghci> drop 3 [8,4,2,1,5,6]
      Back: [1,5,6]

      Front: Describe the relationship between: λx.x and λy.y
      Back: They are alpha-equivalent – they’re both the identity relation

      Front: What is: %drinks
      Back: $drinks{‘Bavaria’}

Comments are closed.