Live data from Hacker News

Memorizing a programming language using spaced repetition software (2013)

sivers.org

21–30 of 44 posts

Re: Memorizing a programming language using spaced repetition software (2013)

#21
post #18
post #16

Earlier quoted context omitted.

The research of Krashen, Mason and other L2 acquisition linguists on extensive reading for language learners directly contradicts this claim. Regular, sustained reading is considerably more effective for acquiring a language than flashcard-based methods. I am not disputing reading in the language learning context as a tool for learning, especially when combined with SRS. Doesn't really apply to me since there is no w…

> SRS shines when it comes to memorizing decontextualized, atomic information (e.g. countries and capitals, the periodic table of elements or writing Japanese kanji), but not for learning a language in general. I have acquired >3,000 words from daily anki usage in Korean. Not only is it possible, it's the only way for me because inputting words into anki (or any SRS system) takes so long. I interleave two decks: a pr…

The issue is that later on, you start delving into ambiguous territory for words. I've found that it's impossible if you maintain a (word in your native language) frontside and (target language word) on the backside.

First thought is that you should do sentence mining. That way you have the context surrounding it that let you figure out how the word is meant to be used?

Second thought, have you think about using symbolic images to avoid tying a word to target language?

I found it difficult to use since you have to make your own symbols and concepts, and re-purposing images to represent something. Not time efficient, and I am not sure if it's actually effective. OTOH, it should get easier and faster as I amass more conceptual images. For example, I have an example of "one" and "hour", so I can combine them to make "one hour" without English or any other written language involved.

Re: Memorizing a programming language using spaced repetition software (2013)

#22
post #6

I have been using anki for almost ~3 years now to study Korean vocabulary, sentences, and Japanese kanji. I'm also a software engineer for my day job. I've also written about anki. [0] I don't see the value in memorizing programming -syntax-. It's irrelevant to me to remember how to open a file in ruby or do a specific command- that's what search engines and then my personal wiki is for. If I worked -only- in ruby, t…

I defer. I value remembering syntax of programing language. Not all syntaxes, but your commonly used ones.

I have been remembering Python syntax through Anki. Recently, I needed to write some adhoc scripts for backfill. I felt so productive without looking at any references. It took me 3x less time to complete my task compared to always looking at references.

Re: Memorizing a programming language using spaced repetition software (2013)

#23
Similar to using spaced repetition to learn programming languages, you can use the same technique to organize your problem-solving skills sharpening sessions.

A while back I made a Chrome extension for LeetCode. [0] It takes care of scheduling problems for you and the extension users love it :) It costs only two dollars, so you might want to try it :)

[0]: https://spacedleet.imedadel.me/

Re: Memorizing a programming language using spaced repetition software (2013)

#24
post #14

What's the point? Programming language rigmarole is well on its way to being automated. It's better to memorize algorithms. Make flashcards of Knuth, not stuff that IDEs autocomplete for you anyway.

I just returned to Java after 3 years away, IntelliJ IDEA syntax highlighting, auto-completion, code-formatting, and "code analysis/inspection with suggested improvements" made it easy.

Re: Memorizing a programming language using spaced repetition software (2013)

#25

Similar to using spaced repetition to learn programming languages, you can use the same technique to organize your problem-solving skills sharpening sessions. A while back I made a Chrome extension for LeetCode. [0] It takes care of scheduling problems for you and the extension users love it :) It costs only two dollars, so you might want to try it :) [0]: https://spacedleet.imedadel.me/

I wonder if I could use this technique to learn to remember important personal tasks. Not dates to do things, but just keep in my head, open your mail, sweep the floor, send thank you notes, pay your credit card bill, etc.

Re: Memorizing a programming language using spaced repetition software (2013)

#26
post #14

What's the point? Programming language rigmarole is well on its way to being automated. It's better to memorize algorithms. Make flashcards of Knuth, not stuff that IDEs autocomplete for you anyway.

Did you forget the sarcasm tag? Algorithms and code in books will be the first things to be automated... you have to learn how to create the algorithm that you need, not to memorise algorithms...

Re: Memorizing a programming language using spaced repetition software (2013)

#27
post #6

I have been using anki for almost ~3 years now to study Korean vocabulary, sentences, and Japanese kanji. I'm also a software engineer for my day job. I've also written about anki. [0] I don't see the value in memorizing programming -syntax-. It's irrelevant to me to remember how to open a file in ruby or do a specific command- that's what search engines and then my personal wiki is for. If I worked -only- in ruby, t…

I defer. I value remembering syntax of programing language. Not all syntaxes, but your commonly used ones. I have been remembering Python syntax through Anki. Recently, I needed to write some adhoc scripts for backfill. I felt so productive without looking at any references. It took me 3x less time to complete my task compared to always looking at references.

> It took me 3x less time to complete my task compared to always looking at references

What happens if you include the time you spent drilling yourself with Anki? Are you still ahead?

Re: Memorizing a programming language using spaced repetition software (2013)

#28
post #18
post #16

Earlier quoted context omitted.

The research of Krashen, Mason and other L2 acquisition linguists on extensive reading for language learners directly contradicts this claim. Regular, sustained reading is considerably more effective for acquiring a language than flashcard-based methods. I am not disputing reading in the language learning context as a tool for learning, especially when combined with SRS. Doesn't really apply to me since there is no w…

> SRS shines when it comes to memorizing decontextualized, atomic information (e.g. countries and capitals, the periodic table of elements or writing Japanese kanji), but not for learning a language in general. I have acquired >3,000 words from daily anki usage in Korean. Not only is it possible, it's the only way for me because inputting words into anki (or any SRS system) takes so long. I interleave two decks: a pr…

3,000 words is barely a start! You need much more vocabulary than that to get to a very functional level. You absolutely don't need Anki to learn that many words (which your comment originally claimed before you edited it). FWIW, I still couldn't comfortably read Chinese when I had 3,000 characters and closer to 25,000 words under my belt.

That said, I think using Anki as a scaffold for the first few thousand words is reasonable. After even 1k, I'd advise getting graded readers which are easy enough for you that you know 97-99% of the words and read 50 pages a day. It will probably take you under 90 minutes since it's easy enough that you're actually reading instead of decoding.

Progress might seem slow at first, but you'll be building a solid base with all that input and reinforcing previously learned words in many, many contexts. You'll also be getting collocations, history, shared cultural beliefs, etc. As your vocabulary builds, you can also start listening to radio or podcasts. They're less forgiving due to moving at a set speed but will do wonders for your conversational abilities.

Even when it comes to word definitions, as you pointed out, it's not a 1-to-1 mapping. The Korean word for "nose", for example, can be used for pigs and elephants as well as for humans. In English, you couldn't do that—pigs have snouts and elephants have trunks. Similarly, in English, if you talk about "black eyes" it means something completely different (bruising) than it does in Korean (dark brown eyes).

This is stuff you don't pick up from flashcards, unless you make super elaborate flashcards (which take more time than reading)!

Re: Memorizing a programming language using spaced repetition software (2013)

#29
While Anki is great, I don’t see much value in using it for programming. I personally use it for equations and find it works very well. While remembering an equation is super useful, remembering APIs and stuff just isn’t. Intellisense solves the problem and even if you don’t have access to it (Python cough cough), it’s not that big a deal to just look up the documentation. Looking up the “documentation” (hah!) for equations is actually genuinely time consuming.

Re: Memorizing a programming language using spaced repetition software (2013)

#30
post #7
post #3

Is there a benefit to trying to actively memorize the syntax/semantics of a language rather than just looking it up when you need to know something, and then passively memorizing the parts you use often? Also a huge component of memory is contextual cues, which is why people find it so hard to code on a whiteboard vs. being at their normal computer/keyboard.

Is there a benefit to trying to actively memorize the syntax/semantics of a language rather than just looking it up when you need to know something, and then passively memorizing the parts you use often? This is akin to looking up words you don't know in a foreign language and hoping through repeated exposure that you learn the right words to use. It's very slow and frustrating. It is much more efficient to just know…

Well as far as a know there’s no commercial neural implant that will autocomplete forgotten words when speaking. When programming, it’s really not necessary to remember much of anything. It doesn’t hurt of course, but it’s not exactly what differentiates a star programmer from a mediocre one.
Post reply on HN