Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What is an efficient strategy to retain skills with minimum investment?
16 points by JCDenton2052 on Feb 23, 2017 | hide | past | favorite | 10 comments
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.

Nothing new there.

My question is what form should this activation take that is time-efficient for a software engineer and how often should it happen?

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.

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.

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?



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.


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.


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/).

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


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.


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/Leitner_system

https://en.wikipedia.org/wiki/SuperMemo


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.


Excellent, thank you.


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.



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.




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

Search: