Live data from Hacker News

Memorizing a programing language using spaced repetition software

sivers.org

1–10 of 94 posts

Re: Memorizing a programing language using spaced repetition software

#2
Thanks for posting this.

I hope this format is useful to you guys. I actually spent the last two days making a video of this, with screen recordings of using Anki and such, and then felt it's a lot more efficient to just get the info on a static HTML page instead.

Any advice appreciated.

- Derek

Re: Memorizing a programing language using spaced repetition software

#3
post #2

Thanks for posting this. I hope this format is useful to you guys. I actually spent the last two days making a video of this, with screen recordings of using Anki and such, and then felt it's a lot more efficient to just get the info on a static HTML page instead. Any advice appreciated. - Derek

Certianly very appreciated. I find I can learn more from a static HTML page than a video, because it is easier to scan the content, and read, and reread things over than it would be in a video. Also it gives the ability to search the whole tutorial or article, without having to rewatch the whole video.

Re: Memorizing a programing language using spaced repetition software

#4
Very interesting idea, I think it could be very useful. Hopefully we'll see some community spring up around this idea and start sharing some anki decks for their favorite languages. I know I'll certainly start working on a couple of my own.

One idea for further expansion: go beyond just having specific language syntax, and also include cards on more generic algorithms and data strucutres. You could key it by time and space complexity, invariants, maybe also a pseudocode implementation.

Re: Memorizing a programing language using spaced repetition software

#5
post #4

Very interesting idea, I think it could be very useful. Hopefully we'll see some community spring up around this idea and start sharing some anki decks for their favorite languages. I know I'll certainly start working on a couple of my own. One idea for further expansion: go beyond just having specific language syntax, and also include cards on more generic algorithms and data strucutres. You could key it by time and…

Very nice idea.

I forgot to mention the deck-sharing point:

It's pretty important to learn the material yourself first, then use the cards as a reminder of what you learned. When you go through someone else's deck, there's no context.

But I could see how, if you already knew a language, then going through someone else's quiz questions might keep you on your toes more than your own quiz questions.

Re: Memorizing a programing language using spaced repetition software

#7
This is a good post that I'm glad to see refers to a lot of the work done on the subject of memorisation and it would be very useful for vocabulary building in language acquisition (amongst other things).

I can't see the utility for programming languages (compared to human languages) however as the grammar and vocabulary of programming languages are tiny in comparison. The best way to learn them is to write something with them (IMHO). The available libraries are of course broader but the subset you use tends to differ from person to person and actual use will tend to reinforce what you most often use.

Re: Memorizing a programing language using spaced repetition software

#8
Once you know a few languages, picking one up in the same family isn't that hard. The biggest challenges, for me, when picking up a new language is to:

1) Learn to write idiomatic code.

2) Learn the name of the library functions, so your flow isn't constantly interrupted by looking for what you need.

1) I think, can only be done through reading other people's code. But I've previously thought about doing 2) by using spaced repetition.

Re: Memorizing a programing language using spaced repetition software

#9
post #7

This is a good post that I'm glad to see refers to a lot of the work done on the subject of memorisation and it would be very useful for vocabulary building in language acquisition (amongst other things). I can't see the utility for programming languages (compared to human languages) however as the grammar and vocabulary of programming languages are tiny in comparison. The best way to learn them is to write something…

The "vocabulary" in a programming language isn't really the reserved words.

It's the libraries. Deep recall of the standard library of any major language would probably improve programming fluency a lot -- and it might improve code quality too.

I wrote an honours research proposal on this; email me (see profile) if you want a copy.

Re: Memorizing a programing language using spaced repetition software

#10
post #8

Once you know a few languages, picking one up in the same family isn't that hard. The biggest challenges, for me, when picking up a new language is to: 1) Learn to write idiomatic code. 2) Learn the name of the library functions, so your flow isn't constantly interrupted by looking for what you need. 1) I think, can only be done through reading other people's code. But I've previously thought about doing 2) by using…

2) Learn the name of the library functions, so your flow isn't constantly interrupted by looking for what you need.

Eh, this isn't necessary. I've been programming (and continuously making a concerted effort to expand my programming knowledge) for more than a decade, and memorization of anything simply hasn't been very helpful.

For example I have no idea what Python's regex syntax/library function is, even though I've used it a dozen times in the past. But that doesn't matter: alt-tab to chrome, ctrl-N, "python regexp", stackoverflow pops up with an example, copy-paste, done. Five to ten seconds, max. Far from breaking my flow, it's become an integral part of it.

Zed is the same way, for what it's worth. He talks about it in a Peepcode screencast. "I memorize concepts, not names."

Post reply on HN