
Ask HN: What is an efficient strategy to retain skills with minimum investment? - JCDenton2052
My observation is that a technical skill requires a certain time investment in order to master during which process the brain adapts by forming linear pathways in the form of neural networks. These pathways may fade away without regular activation, much like a road might fall into disrepair without anyone using it. Restoring them to their previous state may take effort proportional to the time spent not having used the skill, except in the presence of a related skill.<p>Nothing new there.<p>My question is what form should this activation take that is time-efficient for a software engineer and how often should it happen?<p>Clafirication: By skill I mean an API, a programming technique like Dependency Injection or a smaller language like SQL, anything that requires non trivial investment over a period of time.<p>Problem definition:
An engineer spends 150 hours over a few months mastering a reasonably complicated API. This could be by working in a project, reading a book, asking questions on StackOverflow or anything related. 
A couple of years pass before the engineer has a chance to work on a project that utilises that skill. The degree to which different people will have the retained the skill obviously will vary, although for the purposes of this example, let us assume that the engineer finds they need to spend a weekend (8-16 hours) refreshing it.<p>Could the engineer have deployed a long term retaining strategy in those two years that would have allowed them to hit the ground running in their new project and what form would that take?
======
csnewb
Every time I start a new project, read a book/tutorial/blog, or watch a
lecture, I write down notes in a Google Doc. These notes are mostly bullet
notes summarizing the main idea of what it is that I've learned (Feynman
Technique), and I make sure to document from which source I learned that
thing. Every few weeks I'll read through this document full of notes to
refresh my memory on whichever topic I choose. That way, instead of wasting
time (for example) re-read a dense technical textbook, I can quickly ramp up
on a topic by reading my notes. If those notes are insufficient, I'll
reference my bibliography and go straight to the source. The benefit of having
these notes stored in Google Docs is that I can reference them from any
device. However lately I've been considering switching to writing all notes in
plain text files with vi so that I could grep and find things easier later on.

I also personally retain knowledge better when I write it down. I always keep
a stack of printer paper or composition notebooks nearby so that I can write
down my ideas. These methods aren't always very effective, but they help.

~~~
urahara
I use this strategy too. Writing helps to memorize better and restore the
forgotten faster by reviewing bullet points. If I deal with concepts which are
hard for me to memorize or understand, I do some strange random messing around
that info: reading it loudly (even singing), drawing schemes or impressions
from a concept, associate it with something like color, song, place, sound,
smell, food, person, etc, or connect it in some other way to strong emotional
experiences. It helps to remember both emotionally and intellectually.
Impressions are way easier to recall.

------
itamarst
In my experience regaining the skill is much faster than learning it in first
place (assuming I'd gotten reasonably proficient). I spent a few years not
coding much and had easy time getting back to it.

I often find that more important than having a skill is knowing it exists, so
I can learn/relearn it when needed
([https://codewithoutrules.com/2016/04/15/40-hour-
programmer/](https://codewithoutrules.com/2016/04/15/40-hour-programmer/)).

Earlier in my career gaining the skills was probably more important, though.

------
nyrulez
you need at least two things to accomplish this:

\- You need to have a personal knowledge base system

\- You need to have a system to review this. Either using randomization,
flashcards or some other method.

For example, you could use Evernote or Workflowy to organize everything new
that you learn and then export all notes to a giant PDF that you randomly
browse regularly on your mobile or desktop.

Sadly I haven't found a good knowledge base application that also includes
randomized review of content. It is a need but most of them focus on
organizing and finding, but not so much on review.

------
FabHK
I think you should look at Spaced repetition.

Simple version would be a form of Leitner boxes; Pimsleur recommended
repetition after multiples of 5 (5 seconds, 25 seconds, 2 minutes, 10 minutes,
1 hour, 5 hours, 1 day, 5 days, 25 days, 4 months, and 2 years).

There are various software implementations (Anki, etc.), and some of them have
a cult following among study freaks.

[Edit to add: The one with a "cult following" was "SuperMemo", see links.]

However, I'm not that familiar with the field, and don't know what software
would be suitable on today's platforms.

[https://en.wikipedia.org/wiki/Spaced_repetition](https://en.wikipedia.org/wiki/Spaced_repetition)

[https://en.wikipedia.org/wiki/Leitner_system](https://en.wikipedia.org/wiki/Leitner_system)

[https://en.wikipedia.org/wiki/SuperMemo](https://en.wikipedia.org/wiki/SuperMemo)

~~~
FabHK
One more note: Research has shown that most learning occurs at the moment of
recall, in particular repeated recall.

Combine that with the idea of spacing, and Pimsleur's factor 5, and the two
year time-horizon you mentioned, and the 8-16 hour target, and an optimal
system might be this:

After learning any substantial chunk, schedule an hour for remembering and
using it as much as possible for: a day later, a week later, a month later,
half a year later, two years later.

Basically, you allocate 5 hours for it then, total, and should get the maximum
benefit for the time spent.

~~~
JCDenton2052
Excellent, thank you.

------
sigmundritz
The best you can do is to just learn stuff that is useful to you on a everyday
basis. There's too much stuff to remember anyway, so there's no silver bullet
for forgetting.

my take is this: if you forget, it's not very useful/valuable knowledge and
you shouldn't feel bad about it.

------
pizza
Look here: [https://en.wikipedia.org/wiki/Long-
term_memory#Encoding_of_i...](https://en.wikipedia.org/wiki/Long-
term_memory#Encoding_of_information)

------
AnimalMuppet
I don't worry about it. I suspect that the things that I use often enough to
retain are the things that are worthwhile for me to retain.

