All posts
guide · spaced repetition

Spaced Repetition for Developers: The Science Behind Code Fluency

Every developer has the same private embarrassment: you learn something, ship with it, and three weeks later you’re Googling the exact thing you wrote. The fault isn’t your memory. It’s your schedule. Spaced repetition for developers is the deceptively simple practice of reviewing code at expanding intervals so it stops slipping away — and it’s the single biggest unlock for code fluency.

What spaced repetition actually is

Spaced repetition is a learning technique built on a hundred-and-forty years of memory research. The headline finding is simple: a memory you review just before you’d otherwise forget it sticks dramatically longer than one you cram. Repeat that, with intervals that expand each time you succeed, and a piece of knowledge moves from short-term recall into long-term storage.

The math is unreasonable. With about 15 minutes a day you can hold thousands of items in active memory indefinitely. Medical students do it for anatomy. Polyglots do it for vocabulary. Chess players do it for openings. And it works, boringly, beautifully, every time.

For developers, the unit changes. It’s not a Latin word or a drug name — it’s a snippet, a pattern, a shape. But the underlying mechanism is identical. The trick is making the practice fit the material.

The forgetting curve, in code

In 1885 the psychologist Hermann Ebbinghaus mapped how fast we forget. Within an hour of learning something new you’ve already lost about half of it. Within a week, roughly 70%. Within a month, almost everything.

That curve is brutal but it’s also flat — the first review buys you days, the second buys you weeks, the third buys you months. Each successful recall flattens the curve a little more. The terrifying drop you experience after a single exposure becomes a polite slope after three or four, and a near-horizontal line after six. The math, again, unreasonable.

For code, this maps perfectly onto a developer’s lived experience. The regex you used last month is half-gone. The SQL window function you learned in 2024 is fully gone. The pandas idiom you Googled twice in a week and never reviewed is gone within ten days. None of this is a personal flaw. It’s the default behavior of an unscheduled brain.

Why generic spaced repetition (Anki) breaks for code

The most well-known spaced repetition tool is Anki. It’s free, brilliant, and built around the SM-2 algorithm from 1985. For vocabulary it’s perfect. For code it has three problems that quietly kill the habit:

  1. The recall mechanism is wrong. Anki asks you to flip a card and rate yourself. That’s recognition, not recall — and code recognition is cheap. You need to produce the snippet to know you actually have it.
  2. The interval math is tuned for atoms, not shapes. SM-2 assumes single-word answers. Code answers are partial-credit (you got 18 of 20 tokens right), multi-line, and frequently inter-related. The schedule needs to know that.
  3. The card-authoring tax is fatal. Med students inherit decks like Anking with 30,000 pre-built cards. Developers inherit nothing. People burn out building cards before they ever review any.

Spaced repetition for developers needs the same science under the hood — but a different surface. Typing instead of flipping. Snippet-shaped cards instead of cloze deletions. An algorithm that understands partial credit. And pre-built decks for the languages and patterns developers actually use.

The protocol, in seven sentences

Here’s the entire practice, distilled.

  1. Pick snippets you’ve Googled twice. (That’s the threshold for “worth memorizing.”)
  2. Type each snippet from a blank editor — no peeking, no autocomplete, no AI prompt.
  3. Diff your version against the canonical. Notice where you drifted; don’t fix it manually yet.
  4. If you got it right, push the next review further out (1 day 4 days 2 weeks 2 months).
  5. If you got it wrong, reset the interval and review tomorrow.
  6. Keep your daily review under 20 minutes. Streak beats marathon. Always.
  7. After roughly six successful reviews, the snippet is durable enough to drop into a long-tail review schedule.

That’s the whole thing. Every spaced repetition app you will ever see is some variation of this loop with a different algorithm picking the intervals.

What good interval scheduling looks like

A code-aware scheduler doesn’t treat every card the same. Three factors should move the interval:

  • Accuracy. A perfectly typed snippet earns a long next interval. An 85%-correct snippet earns a medium one. A complete miss resets to tomorrow.
  • Confidence (timing). Long pauses mean you’re hunting for the answer; short pauses mean you’re fluent. Fluent answers can be spaced further apart.
  • Difficulty. Some snippets are inherently slippery (regex, awk, weird operator overloads). The scheduler should learn which cards you struggle with and review them more often than your easy wins.

SM-2 only uses accuracy. A modern code-aware algorithm uses all three. The practical result is fewer reviews of things you’ve mastered and more reviews of things that are actually fading — which is what makes the difference between spaced repetition that feels like a chore and spaced repetition that feels like compounding interest.

What to put in your deck

The biggest mistake developers make with spaced repetition is memorizing churn. Build tool flags, framework configuration, today’s Vercel syntax — all of it changes every six months. Memorizing it is a tax you pay for nothing.

The durable shapes, the things worth a decade of recall:

  • Standard library methods of your primary language — strings, arrays, dates, iteration
  • SQL — joins, aggregations, window functions, CTEs
  • Regex — character classes, lookaround, backreferences
  • Algorithms and data structures that actually show up in interviews and design discussions
  • Your framework’s stable patterns — React hooks, Django ORM idioms, Express middleware, FastAPI dependencies
  • Shell incantations — find, awk, sed, ssh, git plumbing
  • The one or two design patterns you reach for most (often: strategy, repository, adapter)

Memorize the shapes that survive framework releases. Skip the ones that don’t.

What 90 days looks like

Two weeks in, the difference is already noticeable. Snippets you used to look up appear from your fingers. The cognitive tax of context-switching drops because your hands carry more of the load.

Thirty days in, the experience compounds. You start to recognize structural similarities between languages. SQL window functions stop feeling exotic. Regex stops feeling hostile. Pair programming stops feeling like translation.

Ninety days in, the floor of your fluency has moved. You don’t freeze in interviews. You don’t lose twenty minutes to a syntax detour during an outage. You write the snippet you used to look up. The point of spaced repetition for developers isn’t that you become a walking man-page — it’s that the friction between intention and execution gets a lot smaller.

Doing it with a tool (or without one)

You can absolutely run this practice with no software at all. A markdown file of snippets, a calendar reminder, an honest commitment to type from a blank screen — that gets you 80% of the way there. Plenty of developers stay at this level for years and they’re fine.

The reason code-native tools like FlashCode exist is to remove the parts that quietly kill the habit:

  • The scheduling math. An algorithm picks today’s cards. You don’t have to think about intervals.
  • The diffing. Typed answers are compared to the canonical version automatically.
  • The card-authoring tax. Pre-built decks for the languages and patterns you actually use, so day one is review instead of card creation.
  • The motivational infrastructure. Streaks, visible progress, the thing-on-your-phone-that-pings-you that makes it more likely you show up tomorrow.

All optional. The science is the science. The wrapper just makes it more likely you’ll keep showing up.

The short version

Spaced repetition for developers is the deliberate, slightly uncomfortable practice of typing snippets from a blank screen on a schedule that expands each time you succeed. Ten to twenty minutes a day. Type, don’t flip. Pick durable shapes, not churn. Trust the curve — it bends in your favor the moment you stop letting it run unsupervised.

The most undervalued superpower in software engineering is remembering what you’ve already learned. Spaced repetition is how you get it back.