5 ms·
Seems like spaced repetition works great for language learning and remembering new terms. I wonder how it could help to get better as a programmer. Any tips?
by sausla 7y ago
Seems like spaced repetition works great for language learning and remembering new terms. I wonder how it could help to get better as a programmer. Any tips?
- jbob2000 7y agoIt doesn't work great for language learning, speaking a language is way more than just remembering words. Similarly, being a great programmer is not about how much syntax you can remember. Getting better at speaking a language means speaking in it all the time. Same thing for programming - if you want to improve, your time is better spent doing actual programming rather than memorizing syntax.
- mr_crankypants 7y agoI honestly wouldn't bother for programming, per se. It's great for learning facts, so, if you wanted to, I suppose you could use it for something like memorizing a pile of library functions. But I'm having a hard time seeing that as an efficient thing to do in the age of Google and Stack Overflow and editors with auto-suggestion. Or if you're a low-level programmer, and want to memorize a new architecture's assembly language, maybe. Even on the language side: SRS is great for shoehorning a basic vocabulary into your head when you're first getting started with a language. It kind of sucks for learning anything but the most basic grammar, and for getting a feel for how to actually express yourself in a language, or comprehend the language as it would be spoken by a competent speaker. Comprehensible input is still the go-to method for that side of language learning. And once you get to the intermediate or high intermediate stage, SRS isn't even all that great for learning the vocabulary anymore, because it's hard to really internalize the nuances of more advanced vocabulary that way. You'll go farther faster by just watching a lot of TV and reading a lot of books, where you get to encounter the words living in their natural habitat instead of dead and dried and pinned to a notecard.
- jmg8766 7y agoI once made anki flashcards while reading a book on linux. I think I was able to memorize a lot of useful CLI utilities because of that. It also helped me stay motivated to get through a very dry book.
- 0xdeadbeefbabe 7y agoKnowing what to learn is really important. The field of competitive programming probably has some good answers to your question about being a better programmer.
- insickness 7y agoFor anything you read that you want to remember spaced repetition is helpful. If I'm reading a book without putting questions into anki, I forget 90% of what I read. Where as with anki, I can at least keep all the basic concepts in my mind. For example, if you are reading about different types of approaches to programming, you might create a question like, "What are the aspects of Agile?" I'm not a programmer. I work in security. Today I was on a job interview where someone asked me if I was familiar with Agile. I was able to give him the bare bones explanation of it. This is something I studied over a year ago and haven't touched since.
- cle 7y agoIt can absolutely help here! I've been using Anki for about 7 years, and most of my cards (~9000) are CS-related. I've found that focusing on the fundamentals helps for me. E.g. most programming languages have a few fundamental ideas that they're built around--memorizing those is usually good enough to quickly hop around programming languages and be productive. Algorithms, operating systems, networks, compilers, machine learning, math, etc...I grabbed some textbooks for those and just focused on the first few chapters, which lay out the fundamentals, and being able to recall and think about those in my head has helped me immensely. Trivia is occasionally useful but it's hard to transfer to real life: e.g. even though I can answer questions about CLI command arguments when studying, I still have a hard time recalling them when sitting at a computer. Memorizing how to find the answers I need is way more useful (and a lot of this is knowing the right terminology and fundamental concepts...which are easier to recall out-of-context). I also focus on different formulations of the same concept. Backwards and forwards retrieval: recognizing the concept from its description, and being able to describe the concept. I make separate cards for those. I also put "generative" cards for the same concept, which force me to practice using the concepts, and recognizing when to use them. And also recognizing concepts from code or other contexts. Usually just having one card for a concept isn't enough for me, unless it's really simple or is just trivia. For a hard concept, I might create 5-10 cards to help me practice recalling and using the concept in different contexts.