[HN Gopher] Memorizing a programming language using spaced repet...
       ___________________________________________________________________
        
       Memorizing a programming language using spaced repetition software
       (2013)
        
       Author : tosh
       Score  : 58 points
       Date   : 2024-02-07 18:51 UTC (4 hours ago)
        
 (HTM) web link (sive.rs)
 (TXT) w3m dump (sive.rs)
        
       | vallassy wrote:
       | tl;dr: Anki helps you remember stuff.
       | 
       | https://apps.ankiweb.net/
        
       | Geeflow wrote:
       | I can't recommend spaced repetition enough. I use it for
       | everything: Phone numbers, names, business knowledge, dungeon and
       | dragons, ...
       | 
       | A different article[1] sums it up pretty well: "Anki makes memory
       | a choice, rather than a haphazard event, to be left to chance."
       | 
       | [1] https://augmentingcognition.com/ltm.html
        
       | max_ wrote:
       | I was really fascinated with the idea of space repetition. For a
       | long time.
       | 
       | I only have 1 problem. There is no good space repetition app on
       | for smartphones. Websites & computer apps are just too clunky for
       | me to use the effectively.
       | 
       | I would like to build one, but I really don't have a
       | comprehensive on how the entire concept works and how to
       | implement it.
       | 
       | Does anyone recommend any great books or resources that
       | comprehensively describe space repetition & how to use it
       | effectively
        
         | allig256 wrote:
         | What were your issues with the standard Anki app? It might not
         | be the prettiest app, but it is effective.
        
           | max_ wrote:
           | Every time I open the Anki app I really don't know where to
           | start or how to use it. There are just too many options
           | distracting me.
           | 
           | It would be easier if the features were reduced & the app
           | kept minimal. Think the apple notes app & Google keep, but
           | for space repetition. Anki feels like Microsoft Word.
           | 
           | Also a sample collection of decks with something to start
           | learning right away (just to understand how the app works)
           | would help me alot. Maybe a language, math theorems, APL
           | verbs etc.
        
             | Ajedi32 wrote:
             | Which app are you using? AnkiDroid seems fairly
             | straightforward, at least for basic usage. There are a lot
             | of confusing options buried in settings, but the
             | fundamentals aren't that hard to figure out. Maybe it just
             | needs a better on-boarding experience, like a link to the
             | download pages for a few featured decks?
        
         | delackner wrote:
         | Anki is well regarded and has both first and third party
         | (AnkiWeb) iOS apps
        
           | hiAndrewQuinn wrote:
           | Yeah, the Anki apps are honestly some of the best apps I've
           | used on both Android and iOS. Assuming you already know how
           | Anki itself works, that is.
        
         | gentleman11 wrote:
         | This guy's work more or less kickstarted the movement, but be
         | warned: there's a lot of reading here
         | 
         | https://supermemo.guru/wiki/SuperMemo_Guru
        
           | max_ wrote:
           | Thank you very much. The resource is such a gold mine.
           | 
           | God bless you!
        
         | PNewling wrote:
         | The book _Make it Stick_ by Henry L. Roediger III, Mark A.
         | McDaniel, and Peter C. Brown includes a good deal about spaced
         | repetition.
        
         | zsoltkacsandi wrote:
         | What do you mean by speaker repetition app?
        
           | Jtsummers wrote:
           | It's probably autocorrect from some typo'd version of
           | "spaced".
        
           | max_ wrote:
           | Sorry typo. I just fixed it.
        
       | victorlf wrote:
       | This is the basic idea behind https://python.cards, the site I'm
       | building to learn Python with spaced repetition.
       | 
       | The hard thing is building the deck. With pre-built decks I
       | expect to greatly reduce the effort required while getting most
       | of the benefits of spaced repetition learning.
        
         | dan-g wrote:
         | Writing effective cards is more of an art than a science, I've
         | found--and seems to work best when you're the one writing the
         | cards for yourself. A good resource for those interested in
         | learning the craft is "How to write good prompts" by Andy
         | Matuschak: https://andymatuschak.org/prompts/
         | 
         | However, he's also shown that cards can be written for a
         | general audience with careful thought, see his & Michael
         | Nielsen's work on http://quantum.country.
         | 
         | I'll be curious to see how python.cards goes!
        
       | supersrdjan wrote:
       | As a complement, I would also suggest this thoughtful article
       | with a broader perspective, explaining the proper place of SRS in
       | learning to code to a professional level:
       | 
       | https://experimentallearning.substack.com/p/functions-descri...
        
       | stared wrote:
       | Quite a few times, I got asked, "What should I memorize when
       | learning Python?". I always answered: "Nothing! You will
       | naturally memorize things that matter and others don't".
       | Obviously, it is contextual - a backend developer will memorize
       | different things than a machine learning researcher.
       | 
       | When we use anything, spaced repetitions come naturally (so it is
       | also why our brain is tuned to them!). Artificial spaced
       | repetitions are often helpful when we learn in an artificial
       | environment - a new human language when there is little
       | opportunity to practice it, things for an exam, etc.
       | 
       | With programming languages, as long as you have a computer, there
       | is no reason to learn it without actually using it.
        
         | karmakaze wrote:
         | My answer would be to memorize useful facts that can't be
         | derived from other knowledge. But put the most effort in
         | building up fundamentals that can synthsize most usages.
         | 
         | Arbitrary things like obscure names, weird parameter orderings,
         | mutated inputs, etc are all the sorts of gotchas that can be
         | learned up-front if you care to know them before being bitten.
         | 
         | An example for Python is the del statement `del d[key]` which I
         | find arbitrary and non-intuitive.
         | 
         | Actually when learning any language I usually learn the
         | collections usages early--these would be good to memorize
         | rather than repeatedly looking up and learning case-by-case as
         | a time saving (non flow state breaking) measure.
         | 
         | For Swift it was all the weird call forms with keyword/symbols
         | that move around rather than being additional parts of a
         | complete form.
        
           | stared wrote:
           | Learning parameter ordering is precisely a thing that I
           | advice against memorizing. Just use IDE.
           | 
           | Other things - well, there is Google, there is StackOverflow,
           | and now - also ChatGPT with GPT-4.
           | 
           | Sure, it might not be enough for _learning_ (at least, not
           | for everyone), but well enough to avoid needless
           | memorization. Memorization always comes at some opportunity
           | cost of using time (and, well, brain capacity) for something
           | more fruitful, e.g., learning good programming patterns, wise
           | abstractions, etc.
        
         | tester457 wrote:
         | I programmed a spaced repetition system that integrates the
         | doing, so that my cards aren't just memorization and theory.
         | Each flashcard is a kata I have to program, and the program
         | checks if my output is correct.
        
         | thorum wrote:
         | I mostly agree, except if you only learn this way, you'll end
         | up missing a lot of non-obvious features of the language. E.g.
         | writing your own function to do something you could do in a
         | single standard library call, if only you knew it existed.
        
       | dang wrote:
       | Related:
       | 
       |  _Memorizing a programming language using spaced repetition
       | software (2013)_ - https://news.ycombinator.com/item?id=30545544
       | - March 2022 (9 comments)
       | 
       |  _Memorizing a programming language using spaced repetition
       | software (2013)_ - https://news.ycombinator.com/item?id=21481461
       | - Nov 2019 (43 comments)
        
       | hiAndrewQuinn wrote:
       | Spaced repetition is great! Reading and making around 300 Anki
       | cards out of _Networking for System Administrators_ was one of
       | the highest ROI things I did in a while - I finally understand at
       | a high level how all those networking stacks actually work
       | together, and I know a bunch of useful new command line tools to
       | boot.
        
       | meindnoch wrote:
       | _Memorizing_ a programming language??? Why would you do that?
       | Seriously.
        
         | marcodiego wrote:
         | In C++, how do I declare a class? Should I put a ; after
         | declaring it? And when creating a closure, what exactly &, =
         | mean? When should I use std::cout and when not, and why? What
         | exactly is the syntax for inheritance?
         | 
         | Ok, you can learn all that while using the language, but a card
         | deck allows me to review it 5 minutes before sleeping.
        
           | bongodongobob wrote:
           | I used to just Google stackoverflow, but, I mean, we have
           | ChatGPT now.
           | 
           | https://chat.openai.com/share/10801cef-37a5-41cf-a0d3-52cf38.
           | ..
           | 
           | I don't see why you'd try to memorize a language. We have the
           | Internet. /shrug
        
       | chenxi9649 wrote:
       | Also saw this on Twitter a few days ago
       | https://www.pinecards.app/
       | 
       | Haven't tried it myself but it seems like a more modern/gamified
       | version of Anki.
       | 
       | I wish there was a market place for spaced repetition decks on
       | different topics/fields. It does seem like the closest thing we
       | have to downloading a "topic" into our brain.
        
         | Ajedi32 wrote:
         | > I wish there was a market place for spaced repetition decks
         | on different topics/fields
         | 
         | Anki has https://ankiweb.net/shared/decks
         | 
         | So far I'm really enjoying the geography decks, like
         | https://ankiweb.net/shared/info/2109889812
        
       | brushfoot wrote:
       | When this comes up, I often see the criticism that it's better to
       | learn by doing, because you retain what's necessary and forget
       | the rest. On the contrary, that's exactly the problem this
       | solves.
       | 
       | There are lots of things that you don't use day to day that it
       | may be useful to have in memory when the need arises. That could
       | be libraries, syntax, concepts, patterns, etc.
       | 
       | An example for me is CSS flexbox. I work with CSS just enough
       | that when I need it, I don't want to sift through blog posts and
       | MDN documentation to get what I need; I just want to know it.
       | Chances are you can think of similar situations in your own work
       | or personal life.
        
         | breathen wrote:
         | Why not just google it? Seems like a better use of both time
         | and brain space. Reminds me of Socrates complaining about how
         | the kids these days write everything down and don't bother
         | memorizing anything.
        
           | jodrellblank wrote:
           | Why would you learn Spanish? If you got to Mexico you can
           | just Google "how to understand Spanish" and then you'll
           | understand it completely, just like in the Matrix.
           | 
           | While you are trying to Google the right thing and make use
           | of the answer, you're missing the limited chance to be
           | talking with people in Spanish, had you already known it.
           | 
           | Instead of Googling "how do I trim a string in {language}"
           | you could be thinking about the problem you actually want to
           | solve.
        
           | thfuran wrote:
           | You probably won't Google a footgun until it's too late. Why
           | would you not want to save yourself the trouble?
        
         | IshKebab wrote:
         | I think good quick reference guides are a better answer to
         | that. Learning by doing _is_ spaced repetition, with the added
         | benefit of automatic tuning (you don 't waste time learning
         | stuff you never use).
         | 
         | In other words, you could equally say "I work with CSS just
         | enough that I don't want to spend ages learning it via SRS; I
         | just want to look it up when I need it".
         | 
         | The key is making looking things up as painless as possible.
        
       | MichaelNolan wrote:
       | It's interesting to see different perspectives here. I often
       | recommend spaced repetition for software and programming adjacent
       | topics like networking, OS fundamentals, and many other areas,
       | but I always recommend *against* using SRS/Anki for actual
       | programming syntax. I find syntax cards to be low value, and
       | surprisingly difficult during review.
        
       ___________________________________________________________________
       (page generated 2024-02-07 23:00 UTC)