You Forget Faster Than You Think
In 1885, Hermann Ebbinghaus ran the first forgetting experiments and discovered that spreading practice over three days cut the number of repetitions needed in half compared to cramming in one sitting. Researchers have replicated that finding hundreds of times since. Without spaced review, people retain as little as 20-30% of new material after a few weeks. With it, retention stays above 80%.
You learn destructuring on Monday. By Friday, you are back on MDN. You finally memorise the .filter() callback signature, then blank on it in a code review two weeks later. This is not a personal failing. This is how memory works.
The dashed line shows natural memory decay. The solid line shows how spaced reviews boost retention back up, with each interval growing longer.
Review at the Right Moment
The fix is not to study more. It is to study at the right time. When you review a concept just before you would have forgotten it, two things happen: the memory resets to full strength and the next forgetting interval gets longer.
First review after 1 day. Then 3 days. Then a week. Then three weeks. Eventually, a concept you used to forget every few days only needs a refresher every couple of months. The total study time is a fraction of what cramming requires, and the retention is permanent.
Each review pushes the next one further out. After a few months, you barely need to revisit.
Cramming vs. spacing
Cramming
Feels productive. Information stays in working memory for hours, then fades. You relearn the same thing next month.
Spacing
Feels harder in the moment. Each retrieval strengthens the neural pathway. After 4-5 reviews, the memory sticks for months.
Why Typing, Not Flashcards
Flashcards test recognition: you see an answer and judge whether you knew it. That is easy to game. Typing arr.filter(x => x > 5) from memory is harder than recognising it on a card, and that difficulty is exactly what makes it stick.
Psychologists call this active recall (or retrieval practice), and decades of research confirm it works. In a 2006 study by Roediger and Karpicke, students who tested themselves recalled 33% more after a week than those who simply re-read the material. Robert Bjork calls the underlying mechanism “desirable difficulty.” When retrieval is effortful, encoding is stronger. Typing code forces you to recall the exact syntax and argument order. There is nowhere to hide.
Your code also runs. SyntaxCache checks your answer against the expected output, so you cannot convince yourself you “basically knew it.” Either the syntax is right or it is not.
The FSRS Algorithm
SyntaxCache uses FSRS (Free Spaced Repetition Scheduler), a modern successor to SM-2, the algorithm that powers Anki. FSRS was developed by the open-spaced-repetition community and uses machine learning to model your memory. In benchmarks, it achieves the same retention with 20-30% fewer reviews than SM-2.
The algorithm tracks three factors for each exercise: stability (how long you can go before forgetting), difficulty (how hard this item is for you personally), and retrievability (the probability you can recall it right now). It uses your full review history to schedule the next review at the point where your recall probability drops to about 90%, the point where you are challenged enough to strengthen the memory but not so late that you have forgotten.
Get it right and the interval grows. Get it wrong and it comes back sooner.
You get it right
Stability increases. Next review is scheduled further out. You see the item less often as you prove you know it.
You get it wrong
Stability decreases. The item comes back sooner so you can rebuild the memory before it fades completely.
What a Session Looks Like
A session takes about 10 minutes. You open SyntaxCache, and the algorithm has already picked the exercises you need today: a mix of items due for review and a few new concepts interleaved in.
You type each answer from memory, get instant feedback, and move on. Short daily sessions work better than marathon study for the same reason the algorithm works: spacing. Ten minutes today does more than an hour next week.
Try a real exercise. Type code from memory, get instant feedback:
Can you write this from memory?
Create a dict mapping numbers 1-3 to their squares using a dict comprehension
Frequently Asked Questions
Is spaced repetition proven to work?
Yes. Over 100 years of research backs it, starting with Ebbinghaus in 1885. Multiple meta-analyses, including Cepeda et al. (2006), confirm that spaced practice beats cramming for long-term retention across domains, including procedural skills like writing code.
How is this different from Anki for coding?
Anki uses flashcards where you recognise an answer. SyntaxCache makes you type real code from memory. Typing activates motor memory and procedural recall, which is closer to what you actually do in an editor. Your code also runs, so you cannot fool yourself into thinking you know something you do not.
How long until I see results?
You will probably notice less doc-checking within the first week. After 30 days of consistent practice, concepts that used to send you to Google start arriving on their own. The algorithm needs about 3-4 reviews of each item to calibrate your personal forgetting curve.
What if I miss a day?
The algorithm adjusts. Missed items get rescheduled with shorter intervals to rebuild the memory. Spaced repetition is forgiving by design. A few missed days set you back less than you would expect because existing memories decay slowly once they have been reinforced a few times.
What languages are supported?
Python, JavaScript, Rust, SQL, and GDScript, with more on the way. Each language has exercises organised by concept: variables, loops, functions, all the way through pattern matching and async.