HACKER Q&A
📣 takizawa11

For programming what to actively memorize?


With programming I still want to actively try to memorize absolutely everything. Anki doesn't seem to help long-term. I find it to be mentally taxing and would very much like to find a balance.

In terms of coding, what do you actively memorize, vs figure you'll indirectly memorize through use, vs figure that you'll Google again for in the future?


  👤 UglyToad Accepted Answer ✓
As little as possible. I think there's an extent to which the trend for 'memory hacking' is a little harmful. The field of modern software is too broad to possibly remember much of it so it's better to learn how to find answers well and quickly than memorise things. I know about 4 common git commands by memory and everything else I know how to Google (DDG) the answer. Using a language with a good IDE also helps, your tools should assist you to build working things rather than tangling with parameter order trivia.

👤 arkis22
I memorize what I need to type into google to get the correct Rails API documentation page. Maybe one day I'll memorize the API, but I don't care. APIs change. My productivity limitation is never how quickly I can type the code correctly.

You don't need to know every English word to be a good English speaker.


👤 oliwarner
What? No, really, this seems like a strange question.

You'll learn and forget all sorts of things in your life. The things you remember, the things you need to remember, are the things you use all the time.

Outside of exam halls and ridiculous interviews, you almost always have a search engine. Knowing how to use it is 50% of professional development.

(Note: I'm not saying don't learn things. Of course you need to learn syntax and how stuff works and ... well, there's huge amounts of stuff any given developer might know... but there's a difference between picking stuff up and dryly flash-carding out topics. I [obviously] favour learning what you need by doing than trying to learn a whole book, cover to cover.)


👤 quickthrower2
Memorise the idioms of your language. Eg is it “for in” or “for of” for looping through an object keys in js. It’s handy to have this in L1 cache so to speak. This won’t change for 10 years.

Have bookmarks to api docs so you don’t need to google them every time and search logically through links in those. It’s much faster to look through nodejs docs than google “how to open file in nodejs” and get a useless 200 word medium article aimed at getting its author some traffic.

Treat remembering like automation. Is it worth automating and is it worth remembering are similar questions. Y.A.G.N.I. applies where the “a” is one of [‘aint’, ‘are’].


👤 softwaredoug
I think the problem underlying “memorize everything” is wanting to always choose the best tool/pattern/solution for the job. I think a better solution is collaborating more regularly or pairing with peers. Collectively you’ll establish tools and practices that will become second nature. I think too you’ll “memorize” what you’re supposed to do, because you don’t want to be embarrassed choosing the wrong thing!

👤 LarryMade2
I memorize the commands/functions/capabilities of the language/libraries - When I face a problem I need to recall what I can utilize to solve the problem. Which functions will I need or which libraries could get the job done.

Memorize solutions that you make or read about, like methods to optimise databases and their queries. The better you write your code the more it will become your reference.


👤 bradwood
mostly productivity stuff: vim keystrokes, readline navigation, !bang queries in DuckDuckGo to documentation websites. The programming language and habits come through repetition and practice, rather than active memorisation IMHO.