TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Memorizing a programming language using spaced repetition software (2013)

46 pointsby hn17over 5 years ago

11 comments

munmaekover 5 years ago
I have been using anki for almost ~3 years now to study Korean vocabulary, sentences, and Japanese kanji. I&#x27;m also a software engineer for my day job. I&#x27;ve also written about anki. [0]<p>I don&#x27;t see the value in memorizing programming -syntax-. It&#x27;s irrelevant to me to remember how to open a file in ruby or do a specific command- that&#x27;s what search engines and then my personal wiki is for.<p>If I worked -only- in ruby, then I&#x27;d likely remember those specifics much more, but since I hop around with rust, python, c#, clojure ... depending on our clients, there&#x27;s no way I&#x27;m going to remember stuff like that for every language. Especially since languages tend to get updates and changes!<p>I would use anki to retain knowledge of stuff like more complicated data structures. Right now, I just search for what I need, then toss it into my personal wiki folders. I can then use notational-fzf-vim to rapidly fuzzy search my markdown files. [0] I keep these synced across computers with a selfhosted nextcloud instance.<p>[0]: <a href="https:&#x2F;&#x2F;andrewzah.com&#x2F;tags&#x2F;anki" rel="nofollow">https:&#x2F;&#x2F;andrewzah.com&#x2F;tags&#x2F;anki</a><p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;alok&#x2F;notational-fzf-vim" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;alok&#x2F;notational-fzf-vim</a>
评论 #21499638 未加载
评论 #21499327 未加载
评论 #21499595 未加载
评论 #21507406 未加载
zellyover 5 years ago
What&#x27;s the point? Programming language rigmarole is well on its way to being automated. It&#x27;s better to memorize algorithms. Make flashcards of Knuth, not stuff that IDEs autocomplete for you anyway.
评论 #21499665 未加载
评论 #21499650 未加载
anaphorover 5 years ago
Is there a benefit to trying to actively memorize the syntax&#x2F;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?<p>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&#x2F;keyboard.
评论 #21499257 未加载
评论 #21499277 未加载
评论 #21499361 未加载
daenzover 5 years ago
I tried spaced repetition for a few months, but I found that I wasn&#x27;t actually learning anything, I was only remembering facts. I&#x27;m not sure what I expected, but when I &quot;learn&quot; something, I grasp the &quot;shape&quot; of the concept...how it fits with other things...where its edges are...where parts of it are unexplored etc. This only comes to me by using the thing I&#x27;m trying to learn, not by injecting random facts into my memory.<p>If anyone has had similar experiences, I&#x27;ve found the best way to learn has been writing about things that I use, as I&#x27;m using them. The rule for writing in that way is only write what you&#x27;ve come to understand...don&#x27;t just copy text that is &quot;useful&quot; from another source. Dive deep and learn the shape of the concept, then write about it in your own words, then move on.<p>By writing from your own perspective it has 2 effects: 1) it helps solidify the concepts a bit more, because you can only explain something once you&#x27;ve reached a certain level of comprehension. and 2) it serves as a &quot;stack snapshot&quot; of your mind when you had a handle on the concept, and re-reading that snapshot loads the context back into your mind very quickly.
评论 #21499314 未加载
gamblerover 5 years ago
<p><pre><code> var a = new Array(&#x27;5&#x27;); &#x2F;&#x2F; what is a? var a = 5 + &#x27;5&#x27;; &#x2F;&#x2F; what is a? </code></pre> It&#x27;s sad that many languages force people to memorize trivial stuff like this.<p>This is one of the things that really impressed me about Smalltalk&#x2F;Pharo syntax when I started learning it recently. The language itself encourages you to name things in a way that labels all the parameters. E.g. you can have a constructor like this:<p><pre><code> OrderedCollection ofSize: 5. </code></pre> And method names are composed of parameter names:<p><pre><code> array insert: 11 before: 2. </code></pre> Instead of<p><pre><code> array.insertBefore(11, 12);</code></pre>
imedadelover 5 years ago
Similar to using spaced repetition to learn programming languages, you can use the same technique to organize your problem-solving skills sharpening sessions.<p>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 :)<p>[0]: <a href="https:&#x2F;&#x2F;spacedleet.imedadel.me&#x2F;" rel="nofollow">https:&#x2F;&#x2F;spacedleet.imedadel.me&#x2F;</a>
评论 #21499657 未加载
jeffshekover 5 years ago
If anyone&#x27;s interested - I&#x27;ve written a guide to Anki and spaced repetition. I&#x27;ve used it for about 5-6 years and my deck is about 12,000+ cards. Much of it is based in software engineering.<p><a href="https:&#x2F;&#x2F;senrigan.io&#x2F;blog&#x2F;everything-i-know-strategies-tips-and-tricks-for-spaced-repetition-anki&#x2F;" rel="nofollow">https:&#x2F;&#x2F;senrigan.io&#x2F;blog&#x2F;everything-i-know-strategies-tips-a...</a>
评论 #21507326 未加载
pmoriartyover 5 years ago
If you&#x27;re memorizing very specific information that&#x27;s going to be presented to you in exactly the way you&#x27;ve memorized it, this is great. I am a little skeptical, however, about how well the specific information you&#x27;ve memorized generalizes to knowledge of the principles behind what you&#x27;ve memorized.<p>Taking one example from the article, if the front of the flashcard is:<p><pre><code> var a = 5 + &#x27;5&#x27;; &#x2F;&#x2F; what is a? </code></pre> And the back is:<p><pre><code> &#x27;55&#x27; If either side of + is a string, the other is converted to a string before adding like strings. </code></pre> I&#x27;m sure it would work great if in a real programming context you&#x27;re ever presented with literally: 5 + &#x27;5&#x27;<p>But whether you&#x27;ll remember the principle that <i>&quot;If either side of + is a string, the other is converted to a string before adding like strings&quot;</i> when you see, say 237 + &quot;foo&quot; is open to question.<p>Of course, in this highly simplistic case you probably would remember, as it&#x27;s not difficult to memorize this principle even without the flashcards, but with more complicated examples I suspect it could be a real problem.
评论 #21499279 未加载
debofloover 5 years ago
Great post! Whenever I’ve gone down the path of trying to memorize stuff using spaced repetition or flash cards, it has rarely paid off. I’ve found that real practice works better for me. For example, I’ll create and run a vim macro command 10 times when I realize I’ve forgotten how to write macros. It’s like playing a musical instrument.
mailjenilover 5 years ago
I just started a new job and have been learning Spark + Scala with Anki. Whenever I need to Google something, I make sure to make a flash card for it.<p>Its working well so far.
评论 #21499961 未加载
smabieover 5 years ago
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.
评论 #21499891 未加载