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?
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.