Live data from Hacker News

Memorizing a programing language using spaced repetition software

sivers.org

41–50 of 94 posts

Re: Memorizing a programing language using spaced repetition software

#41

As others have mentioned, its less about the syntax of a language and more about the plethora of libraries that is the real boon when it comes to using a programming language. It has been said that the majority of a tough problem is worked out unconsciously. If we eschew memorization for "just in time" methods, we are essentially putting a hard limit on the type and difficulty of problems we're capable of solving. I…

The problem is that languages and especially libraries change too frequently. A doctor can learn the name of every bone in the body and that knowledge will for the rest of his life. In programming, there are very few things that will still be the same in 20+ years and we have no idea what those things are. It depends on the field but things can change so much within 2 or 3 years that its just not worth memorizing everything.

Re: Memorizing a programing language using spaced repetition software

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

Having seen a lot of code that duplicates basic functionality of libraries used in the project I'm working on, just writing code might even be counterproductive as opposed to a systematic way of learning the libraries and their usage in the project, reinforcing bad behaviour.

Re: Memorizing a programing language using spaced repetition software

#43
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

Would you mind sharing an export of your Ruby/JavaScript Decks?

Re: Memorizing a programing language using spaced repetition software

#44
post #31

As others have mentioned, its less about the syntax of a language and more about the plethora of libraries that is the real boon when it comes to using a programming language. It has been said that the majority of a tough problem is worked out unconsciously. If we eschew memorization for "just in time" methods, we are essentially putting a hard limit on the type and difficulty of problems we're capable of solving. I…

I agree with you and I like your last point. It is indeed a problem that we have many languages and many libraries when many of them do the same thing. One big library to rule them all. Some day we will have that. There will be many algorithms in there, containers, network stack, everything you want and need. And cross platform of course.

What you mention is one more thing to remember when starting on a specific project/team: Which of the possible library functions should you use for a given Task?

Re: Memorizing a programing language using spaced repetition software

#45

Earlier quoted context omitted.

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.

Having seen a lot of code that duplicates basic functionality of libraries used in the project I'm working on, just writing code might even be counterproductive as opposed to a systematic way of learning the libraries and their usage in the project, reinforcing bad behaviour.

Right. In my proposal on the topic, I proposed dividing a freshman CS class into two groups. One group would use spaced repetition, the second wouldn't.

To compare the groups, I proposed using a few common metrics (SLOC, cyclomatic complexity, Halstead's metrics) to get a gauge of the different size of solutions. My guess was that a more "fluent" student would write shorter and simpler programs simply by not needing to reinvent.

Re: Memorizing a programing language using spaced repetition software

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

I don't see use when learning to program but if I memorised, say, the PHP standard library with all its warts, it would make me far, far more efficient at work. Whenever I write in PHP, there's always going to be a lookup for something in the standard lib, whether it's the signature of a function, how it should be used or whether it exists at all.

Re: Memorizing a programing language using spaced repetition software

#47
I'm going to give it a try. There are certain programming languages that I use rather unfrequently like python or bash script. But when it comes to the point that I need to use them, I allways realize that I tend to forget so many useful commands and API calls, so I have to look'em up once again and again. My point to this phenomenon is, that when I'v just looked up a (in my eyes) complicated unix command e.g., that at this very moment I know that I won't remember it two or three days later. This tool might be a good help to note them down and help me to memorize them.

Re: Memorizing a programing language using spaced repetition software

#49
post #11

I was a contributor to Anki and one of the earlier language learning bloggers who wrote about spaced repetition for Chinese learning. One thing I noticed at that time was that those of us Chinese learners who were programmers went crazy about spaced repetition... some went so far as to SRS at the exclusion of actual reading. Other language learners blogging about SRS, often weren't so thrilled about the concept. http…

But can't you also use SRS with larger chunks? I think that's what the All Japanese All The Time author does and he's fairly confident about the results.
Post reply on HN