I was reading a paper on what is known as
The Forgetting Curve and the related concept of
Spaced Repetition yesterday. The concept behind these two ideas is simple: memories get reinforced not by immediate repetition, but by gradual repetition over time. If you hammer at trying to memorize a list of vocabulary words or the API of a particular library or framework by dense-packing your use into a single day, the right memory tracks won't get laid down in your brain. Instead, you need to
sleep on what you've learned, and then at just the right moment a few days later, review what you tried to memorize. The idea is that the trace in your brain has slowly been decaying, but by
repairing the trace before it fades completely, your brain will actually make the memory stronger. The first refresh is best done between two and eight days later, the second between four and sixteen days later, the third eight and 32 days, and so forth. It's different for every person. The idea is to figure out what's ideal
for you and work to that strength.
I know exactly where the breakpoint on my curve is. It's four days. In the past couple of months, I've woken up with this thought:
Four days ago, I studied X. If I don't study X today, that trace will fade completely and I'll be back to square one. I can even feel the trace fading in my head. And yet, knowing that, knowing that if I just got up and spent a half hour refreshing those memory traces they'd be that much stronger, I let them fade anyway.
And then I get mad at myself for letting that happen.
The funny thing is, last night I went for a walk in the woods and Code Fairy bugged me, "Hey, we could write that program." She immediately began spewing out the models in my head: flashcards, flashdecks, and how to track records. "And if you did it in your favorite environment, you could wrap a regsitration system around it, put it up on the web, and make it public." I'm sure I could. There are other stand-alone programs that do it, it'd be fun to write as a web app. Heck, the problem seems intuitively obvious; the only issue is figuring out a degredation algorithm that adjusts for user variability: to create return customers, would it be better in the beginning to make the system
seem to work even when it wasn't because it was still groping forward for the right refresh period, or make the system fail more often in the beginning, as it gropes backward for that refresh period-- the latter would figure out the user's brain profile much quicker, but it would lose some people who got frustrated with the "not-working" part, which would not be visible to those if we went with the forward-groping (man, that sounds dirty) algorithm.
She even gave me a great name. No you can't have it. Not yours.
But I'll probably forget about it all in four days time.