Live data from Hacker News

Memorizing a programming language using spaced repetition software (2013)

sivers.org

11–20 of 44 posts

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

#11
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…

If I worked -only- in ruby, then I'd likely remember those specifics much more, but since I hop around with rust, python, c#, clojure ... depending on our clients, there's no way I'm going to remember stuff like that for every language. Especially since languages tend to get updates and changes!

They change that often?

I memorized the programming syntax so that hopefully next time I opened up a language I haven't seen in years, I don't have to stumble around trying to catch my footing.

I also found that I have terminologies issue which may make communication difficult, so it's a good idea to have labels for structures in your program.

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

#12
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.

Personally I don't think it's worth Anki.

There are so many things that you can memorize:

- common standard library method

- code-level design patterns (like the factory pattern)

- system design patterns (like caching in Redis)

- SWE process patterns (like code review or 1-1 meetings)

Why would syntax be the right level of abstraction to repeatedly review?

The space of things you can memorize (or "cache" in your mind) is too large. So a better strategy might not be to use Anki (which optimizes for retention but takes time to set up) and instead "randomly sample" a bunch of different things so that you know the techniques out there. Then you retain the knowledge that you need by actually using it on the job.

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

#13
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…

> 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 stuff off the top of your head.

> Just because you look stuff up doesn't mean you efficiently memorize those things either. Reading had been proven to be a poor strategy for studying.

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.

Anki is great and I'm a contributor! But it's more of an ancillary tool. 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.

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

#15
post #11
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…

If I worked -only- in ruby, then I'd likely remember those specifics much more, but since I hop around with rust, python, c#, clojure ... depending on our clients, there's no way I'm going to remember stuff like that for every language. Especially since languages tend to get updates and changes! They change that often? I memorized the programming syntax so that hopefully next time I opened up a language I haven't see…

> They change that often?

Typically not very much, but it -can- happen. I don't see the need to have stuff like that memorized when I can just check my wiki, or search online if that fails. Or I can even just look at one of my past codebases really quick with fuzzy searching or grep.

For any domain that I'm working in, it's typically unnecessary anyways. I do a lot of work in Rust right now so I have most things like that off the top of my head, etc.

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

#16
post #7

Earlier quoted context omitted.

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…

> 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 stuff off the top of your head. > Just because you look stuff up doesn't mean you efficiently memorize those things either. Reading had been proven to be a poor strategy for studying. The research of K…

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 widespread written component for ASL.

By reading, I meant people rereading their old notes instead of actively challenging themselves. That is, no attempt at retrieval-practice that is the basis for spaced repetition. Research said that study method is often regarded as effort in vain.

But that apply to contexts such as studying biology. Reading in a foreign language is a different context in that you are also learning new materials and practicing retrieval at the same time.

Anki is great and I'm a contributor! But it's more of an ancillary tool. 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 don't see how it's impossible to use anki for contextualized learning. It's the whole point of sentence mining. Rather, with no context, it's essentially useless since I wouldn't know how to use it in context.

Periodic table is a great example for this. When I don't know the answer to questions anki posed, I used related information to retrieve what I need to know.

In my case, I have no reading materials to sentence mine, so I just mine ASL videos.

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

#17
post #15
post #11

Earlier quoted context omitted.

If I worked -only- in ruby, then I'd likely remember those specifics much more, but since I hop around with rust, python, c#, clojure ... depending on our clients, there's no way I'm going to remember stuff like that for every language. Especially since languages tend to get updates and changes! They change that often? I memorized the programming syntax so that hopefully next time I opened up a language I haven't see…

> They change that often? Typically not very much, but it -can- happen. I don't see the need to have stuff like that memorized when I can just check my wiki, or search online if that fails. Or I can even just look at one of my past codebases really quick with fuzzy searching or grep. For any domain that I'm working in, it's typically unnecessary anyways. I do a lot of work in Rust right now so I have most things like…

For any domain that I'm working in, it's typically unnecessary anyways. I do a lot of work in Rust right now so I have most things like that off the top of my head, etc.

I also use the "wiki"(mine is just a series of atomized plain text notes) to learn stuff and look up. When that failed, I used google.

I just think that memorizing syntax is potentially valuable in switching context.

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

#18
post #16

Earlier quoted context omitted.

> 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 stuff off the top of your head. > Just because you look stuff up doesn't mean you efficiently memorize those things either. Reading had been proven to be a poor strategy for studying. The research of K…

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 premade sorted one with 5.8k words, and my personal deck that I occasionally add to.

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.

Now I am slowly migrating to having the definition of the word in Korean on the front, and the target word on the back. I'm sure this won't be perfect, but it's better than having one english word potentially map to many korean words.

Using anki has bolstered my Korean learning because, well, I can recognize more words when I read or watch native material! Previously it was impossible for me to read the news because I had to look up every. single. word. Now it's more like 65-80%, which makes it much more tolerable.

In an ideal world one would learn a word, then put it into anki, but it's simple math. ~1 min per word (very generous) is only 60 words per hour. I usually fluctuate between 1-2 minutes because I have to check 2 dictionaries to make sure it's accurate, then add other data like grammatical type, and so forth. It may be easier for a language that lacks chinese characters, but I have to make 3 dictionary searches to add one card. So I only rarely add anki cards now... I have notebooks filled with lists and lists of words that I wrote down from seeing it in native material, that I just don't have time to manually add into anki.

If I were -only- studying Korean, then I could muster ~2-4 hours a week or so to add anki cards. But I have work, and life, and other hobbies, etc. Any time spent not adding cards, is more time for me to study my other decks, etc.

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

#19
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…

Pretty much exactly what I was going to write except for the languages mixture that for me is a bit different and probably more fast jumping. Thanks :)
Post reply on HN