Ask HN: What is an efficient strategy to retain skills with minimum investment?
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?
10 comments
[ 3.5 ms ] story [ 46.1 ms ] threadI 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 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 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.
my take is this: if you forget, it's not very useful/valuable knowledge and you shouldn't feel bad about it.
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
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.