top | item 20243537

(no title)

karlmcguire | 6 years ago

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

discuss

order

tvanantwerp|6 years ago

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.

bluGill|6 years ago

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.

gfodor|6 years ago

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.

codezero|6 years ago

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.

nudq|6 years ago

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

stusmall|6 years ago

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.

steveklabnik|6 years ago

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

jldugger|6 years ago

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.

shinryuu|6 years ago

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.

kazinator|6 years ago

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.

danielki|6 years ago

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.

uwuhn|6 years ago

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

kazinator|6 years ago

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.