[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)