How do programmers retain knowledge for languages/technologies they don't use on a regular basis?

Take for example the PC Assembly Book. The author states he rarely uses ASM at all. Yet he was able to write an in depth book on the topic. How was he able to do this?

I've spoken to a lot of people who agree that they start to forget languages/technologies if they don't practice on a regular basis.

For someone like myself who uses many languages (C, PHP, C#, NASM, JavaScript etc.) I have to constantly seek documentation/manuals for things I used to know from the top of my head.

I was very good with C#/.NET but haven't used it much in 2 years. A lot of that knowledge has been zapped from my brain. If I pick up a book and start reading it all comes back to me, but it takes a few days of hard studying. I studied ASM at university and forgot it years later and had to almost start from the beginning again. That took a long time.

Are there any ways programmers can help retain this knowledge? Or is this something many programmers go through?

  • 4
    If you don't use it, you don't need it. – Robert Harvey Apr 13 '17 at 14:02
  • 11
    If I pick up a book and start reading it all comes back to me, but it takes a few days of hard studying. -- That's how. – Robert Harvey Apr 13 '17 at 14:04
  • 3
    @RobertHarvey I remember what to google and end up on SO. – Walfrat Apr 13 '17 at 14:22
  • 1
    It takes me about 2 weeks to learn any language syntax. I spend the rest of my life learning the library. – candied_orange Apr 13 '17 at 17:49

I also struggle to remember code that I don't use often enough. I find it easy to remember the fundamentals of each language, but anything more complex or specific to that language, I need to do a quick google search or open up a reference book.

I consider this normal to be honest. I've always had the approach as a developer that my job isn't to memorise every piece of syntax for all the languages I know, but instead know exactly what I need to do when faced with a problem. 9 times out of 10, I know exactly what I need to code to make something work, but the exact syntax to do it is not at the front of my mind. A quick example of the syntax brings the knowledge back.

Not the answer you're looking for? Browse other questions tagged or ask your own question.