4 ms·
I'm a heavy user of spaced repetition for language learning (I've been learning portuguese over the past two years and now I've switched to russian) and there's
by simias 8y ago
I'm a heavy user of spaced repetition for language learning (I've been learning portuguese over the past two years and now I've switched to russian) and there's a lot of good advice in here.
What I don't get is using spaced repetition for all kinds of trivia and stack overflow answers like the author seems to do. I've never felt the need to do that and I don't get what it gets you. I read the linked article "How Anki Saved My Programming Career" and I still don't get it.
IMO learning stuff by heart makes sense for languages (natural languages have a significant amount of irregularities and you have to learn tenths of thousands of words to be fluent, plus the grammar on top of that). You need to be able to recall all of that stuff at a blink of an eye if you want to participate in a conversation. It also makes sense for other disciplines like medicine where you need to have encyclopedic knowledge about certain subjects without having to look up in a dozen different books.
But "Who is the teacher behind FastAI"? Is that really something worth memorizing by heart? Do you often end up in a situation like "oh my god the production server is broken and the only way to fix it is to figure out who's the teacher behind FastAI and I have no internet connection to look it up!"?
The other article has examples like "how do I get the subset of an array in JS". In my experience if I encounter this type of question it either means that I end up having to hack a JS program but it's a one-off I don't intend to actually learn the language (in which case I don't really need to bother to learn the language) or I'm actually learning the language but then I will probably encounter this situation enough times that I'll have it memorized soon enough. Programming languages are generally fairly regular and the amount of grammar and syntax to memorize is ridiculously tiny compared to human languages.
This also goes for learning things like "what is comonotonic?". Either you really encounter this word often in your work and you'll have learned it soon enough, or you see it once every other year and then is it really that big of a deal to have a quick google to refresh your memory if you've forgotten what it means?
Maybe it's just that I don't like trivia and I don't care if I can't remember some technical term while "talking to Ryan at Starbucks" to take an other example from TFA.
- maayank 8y agoI share your sentiment. An encyclopedic knowledge of interview problems and related algorithms can be a boon for a career. It reflects how broken they are, IMHO, but there’s that.
- kd5bjo 8y ago“Who is the teacher behind FastAI”— This sort of thing is useful so that you can remember a search term to find other things that he’s done, or if you’re regularly writing things where the convention is to site by author’s name, instead of a title. “How do I get a subset of an array in JS”— This is more of a long-term play; you may know it really well right now, but if you switch to ObjC development for a few years, having this sort of reminder in Anki will ease the pain of switching back to JS later. I’m not a huge fan of two-way cards, though. It’s really important to be able to come up with the keyword for a given idea so that you can look it up when you need it. The reverse is what reference materials are for.
- iamsaitam 8y agoAgree completely with this comment. I think this kind of trivia learning could've been useful a couple of decades ago, nowadays if your phone can get you the answer in less than 1 minute, why bother? (I'm not talking about languages or such domains). Your brain "power/capacity" is limited, spend your dedicated learning time in concepts not facts/trivia.
- DecayingOrganic 8y agoI'd like to clarify that retrieval practice has not only been proven to boost retention but of meaningful learning [0] as well. Thus, casting Anki as a mere tool of memorization is simply misleading. "Educators rely heavily on learning activities that encourage elaborative studying, whereas activities that require students to practice retrieving and reconstructing knowledge are used less frequently. Here, we show that practicing retrieval produces greater gains in meaningful learning than elaborative studying with concept mapping. The advantage of retrieval practice generalized across texts identical to those commonly found in science education. The advantage of retrieval practice was observed with test questions that assessed comprehension and required students to make inferences. The advantage of retrieval practice occurred even when the criterial test involved creating concept maps. Our findings support the theory that retrieval practice enhances learning by retrieval-specific mechanisms rather than by elaborative study processes. Retrieval practice is an effective tool to promote conceptual learning about science." [0]: http://sci-hub.tw/10.1126/science.1199327 http://sci-hub.tw/10.1126/science.1199327
- rgoulter 8y agoIt's good to ask "What is SRS good for? What is it valuable to use it for?". I haven't used it for just-outside-my-reach facts in programming. But this seems an okay use for it. Consider http://fuckingblocksyntax.com/ http://fuckingblocksyntax.com/ -- I'd bet most Objective-C devs still need to look it up. Maybe SRS is useful for things which are just infrequent enough to not be "memorised soon enough"? Speed in auxiliary tasks is also good. It's possible to program while being slow at typing, but it's much easier if you can touch-type. It'd be nice if SRS provided the same speed-up from not having to look up idiosyncrasies.
- cgag 8y agoI don't understand how you could not see the value in having concepts like comonotonic stored in your brain instead of in Google. I don't get how this perspective is always the top comment in every Anki thread: memorizing foreign language words is incredible and this tool is phenomenal, but why would you ever want to memorize any other information?
- patrickk 8y agoExactly. Derek Sivers gives some good examples for programming in this essay[1], e.g. overcoming a common mistake, cool trick or suprising feature of a language. These are obviously useful things to have immediately when you need them. I think the article lists some bad examples (not worth committing to memory) for programming to be honest. [1] https://sivers.org/srs https://sivers.org/srs
- praptak 8y agoThere is a subset of shell commands that I run infrequently enough to forget them but frequently enough for the searching time to accumulate. I did use Anki for those until I switched to infinite bash history. So I guess that there is a sweet spot between one-offs and frequent things where SRS can help (but there are other solutions too).
- jeffshek 8y agoThanks for your kind words! If a lot of the knowledge is specialized in one area, the "trivia" (I feel this is such a negative connotation lol) has come in handy. YMMV. - To your point, Jeremy Howard has never saved my production server (yet), but knowing how to scp, grep, cat around a list of files out has though :) - Looking at my deck, most of the one-off questions have long half-lives. Most of these are answered as easy and are about 3-5 years before it's asked again ... personally, that's a fair tradeoff. - Knowing certain "trivia" facts have been a hack to demonstrate expertise. It can also be used to relate to someone's experience. I interviewed a candidate once who had worked at DuckDuckGo. Having a conversation with him about experiences with "Gabe" (Who is the CEO of DuckDuckGo?) and some of his Mental Model essays immediately cut the tension. - The opposite has also happened. Knowing about a very specific term in Django got me an offer. This has actually happened twice. - EDIT (next this + next two points): I was thinking about this and realized I had other times when knowing trivia is a lazy heuristic for expertise. (I'm not saying this is right, just saying it happens). Knowing the hourly cost of AutoML immediately convinced someone that our team had the expertise and tentatively agreed to a MM deal. I had never used AutoML. - Rattling off an answer to an esoteric question in due diligence changed the tone from us convincing we were technical to the person convincing him he was technical enough to do due diligence on us. - Simpsons Paradox: Whenever I'm answering these trivia questions, I'm saying it quite confidently, which conflates the results. - The knowledge stacks up in really interesting ways. I think of more things similar to connected graph trees. If most of my decks were about random Jeopardy facts, then I'd certainly agree that it's not the best use of my time though ...
- josquindesprez 8y ago> The other article has examples like "how do I get the subset of an array in JS". In my experience if I encounter this type of question it either means that I end up having to hack a JS program but it's a one-off I don't intend to actually learn the language (in which case I don't really need to bother to learn the language) or I'm actually learning the language but then I will probably encounter this situation enough times that I'll have it memorized soon enough. > Either you really encounter this word often in your work and you'll have learned it soon enough, or you see it once every other year and then is it really that big of a deal to have a quick google to refresh your memory if you've forgotten what it means? You've identified a key problem with today's (admittedly justified) cult-like worship of spaced repetition systems: most people don't take the natural spacing they'll encounter into account. A while back, I tried learning languages by curating and dumping 1000s of sentences with relatively common words into Anki. It was more effective than paper flashcards, but I realized that I was wasting a lot of time and boring myself by continuing to keep words I'd encounter while reading native material in my SRS. I eventually reached the conclusion that it makes the most sense to fill the SRS only with the long tail of words where the natural spacing you'd encounter isn't sufficient to create the natural SRS effect (i.e. words less frequent than, say, the 10,000th or 15,000th most common word).
- erdo 8y agoTotally agree. I also think Anki is great, but as a tool to improve the speed and quality of my software development? pretty useless I'd say. That's like trying to write better novels by focusing on improving your typing speed. Sure it might help a little, but it's kind of missing the point. I consider myself a maybe 5x android developer, and that has nothing at all to do with memorizing APIs or definitions of terms, or who invented what, (that's what the IDE and Google / Stackoverflow is for). I think I'm a better programmer _because_ I don't rely on memory. I rely on things like architectures, conventions, tools and tests (and also sometimes informed hunches), I don't work when I'm tired, if I get stuck I know when to take a break, I take care when naming things, I take a sceptical approach to anything that is recommended by Google (I know that sounds weird but the engineers at Google Android are occasionally brilliant but inexperienced and are learning on the job), I don't take stupid short cuts that come back to bite the team, etc. Now, for convincing a client you know what you're talking about, or convincing a recruiter that you're a "rock star", or winning a "who's smarter" competition with an auditor? Sure. Remembering facts might work.
- imtringued 8y agoTo be fair it is possible to use Anki without trying to memorize the answer. Imagine you have a deck filled with algorithm questions for some interview. All you really need to do is to write something to do. Like "Write a binary search algorithm", "Write bubble sort". Then you just follow what is written on the card and decide for yourself if your answer is correct.