Hacker News new | past | comments | ask | show | jobs | submit login

If you need flashcards to remember syntax, you're probably not writing/reading enough code.

Probably true if you can't remember how to write if/else or a for loop. But it's very useful for the bits of knowledge that you might not be needing all the time. Don't know how many tweets I've read from developers saying things like "I've been coding for ten years and I still have to Google this one particular thing". Those things are perfect for flash cards.

Example: I am almost never in need of grep. But sometimes I want to know which files in my project contain some string. Never could remember the right flags and order of arguments until I made it a flashcard--now I don't have to Google it anymore on those rare occasions when I need to know. Using flashcards for lots of little things like that really speeds up development; my cognitive switching costs are greatly diminished.

Does it speed up development? Or slow it down because you are reviewing things you rarely need instead of doing useful work? Sure in the moment it speeds things up, but over time it slows things down since you spend time learning things you might not need again.

This would depend on when you spend your review times. I do mine 2-3 times a day: morning with my coffee, around lunch, evening after dinner. Times that are otherwise mostly "idle" (if I'm doing anything else, it's browsing, reading a book, or watching a show). I do sometimes put together cards during the workday (I need to get back into this habit) after looking up something I don't know or couldn't recall but thought was worth committing to memory.

In the end, trying to remember everything would be silly and largely a waste. But memorizing those things that are common (but not daily) pain points would probably be an improvement over not. OTOH, I'm not going to quantify my time sufficiently to be able to provide clear evidence that it really speeds up my work.

One problem is, "might not need again" is self-fulfilling. When you're developing something new, you mostly rely on what you happen to know.

What you know is a Turing-complete subset with all the platform escape hatches you need, so you're able to get your stuff working.

Someone somewhere (gwern? Xkcd?) estimated: if you think you will lose 5’ in the rest of your life searching for it, you can anki it and will save time, statistically, over the long term.

Something like grep can easily meet the mark.

Me, yes: https://www.gwern.net/Spaced-repetition#how-much-to-add

The XKCD comic you're thinking of is much more general^: https://xkcd.com/1205/

^ and not too helpful here because it assumes you know how much time something saves/costs - which isn't obvious for spaced repetition because the entire point is to dynamically adjust the timing & number of repetitions over the long run.

The point of Anki is to enable you to retain memory of things which won't normally happen due to natural exercising of memory. Basically, by incorporating Anki into your life it becomes possible to "lock in" knowledge -- and ofc, this comes with opportunity cost so if you were to load up this rust deck you certainly are making a large commitment to retaining knowledge about rust over the long term.

Every person learns differently, so there's no absolute statement that applies when talking about learning.

You are right, if you code frequently, it becomes much more retained. Not everyone who wants to learn to code has time, that is, a full time job, or a dedicated course of study within which to build that repetition.

I'm managing now and when I go home I like to spend time with my family, but I still like to learn new things and play with new ideas/languages on hobby projects, but I am very time constrained. Things like flash cards help me a lot, especially if I have a large gap of time between the last time I touched something.

I assume the author is in a similar position to me, or that they learn better with flash cards. I went back to Rust to play around a bit and found myself having to re-read the Rust book to get my head wrapped around a few things that were really obvious, but lost in the prose of the book after being away for a few months.

I strongly encourage you to think about how others learn, especially if you're ever in a position to teach or mentor anyone in your field.

If you're writing 'enough' Rust, you're probably a Mozilla employee.

I've been writing almost exclusively rust in my day job at ThreatX for about 3 years now. It's getting picked up more and more in production everyday. It's a great, modern, maintainable, secure alternative to C/C++. I couldn't imagine doing another greenfield project in C again.

The numbers don't bear that out; there are far more orgs than Mozilla writing significant amounts of Rust.

Sure, but the glorious thing about Anki is the scheduler -- every time you get a card right it will reschedule reviews further away, on an exponential schedule. And if you self-grade 'easy' then it gets an even bigger time to next review. The cost of throwing in a few syntax oriented cards isn't terribly high in the grand scheme of thing, and there are many other bits of programming languages that are amenable to memorization -- libraries, APIs, common datastructures and idioms.

It's a fair point. I'd say it's helpful if you for some reason have an extended period away from the language and still want to remember it.

Also, when you're just starting out it's helpful, you've got the information collected in one place and won't need to hunt it down via google.

Your comment lacks substance: you have not tried both approaches to provide some insight into their relative advantages and disadvantages.

I've never used flashcards for remembering anything related to programming, but I know how effective it is for foreign language learning, so I wouldn't jump to the conclusion that for programming it would be no better than just working with code.

Languages don't just have syntax but standard library and API functions. It seems like spaced repetition would be an efficient way to remember the synopses of 5000 functions, compared to just spending years reading and writing code.

Alternatively, you're writing/reading enough code, but it just happens to be in four different languages because you're doing a mix of greenfield and legacy, and all of these languages have syntax that's both similar _and_ different enough to mess you up from time to time.

Making the flashcards on your own definitely helps with remembering things.

I have an anecdotal data point here. I have Japanese decks made from third-paty data, and one that I made myself by encountering words in the wild and adding them one by one.

My performance isn't any better on the deck I made myself.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact