What I’ve realized recently while learning Rust (no Anki involved) is that, for me at least, new information needs something to “cling on” to. I wonder if this Spacing Effect is another facet of the same idea.
My process with Rust was to first read most of The Book [0], and after this I had a decent understanding and I _thought_ I’d be able to write some code. The I tried (and mostly fumbled) writing some code. But it turned out I couldn’t remember much of the syntax, nor the finer details of how the borrowing system worked. Most of the stuff I’d read hadn’t really stuck.
After some time coding I went back and reread parts of The Book that I was fuzzy on, and those things came into clearer focus, and I was able to get further with the code.
The cycle repeated itself a few times - first with basic syntax, then with how to specify generic types, then with various ways I tangled myself up with the borrow checker, then lifetimes, then how to write iterators. With each stage I needed the sum of my previous experience PLUS another visit to either The Book or Programming Rust or some other explanation. Reading it all up front wasn’t good enough; ingesting the info needed to come at the right time.
I’ve seen this a lot also with people learning to code (especially in the web dev world), where they’ll watch a whole course and then lament that they still can’t build anything on their own. I think it’s the same core issue: too much information-up-front with nothing for it to stick to.