Hacker News new | ask | show | jobs
by eightnoteight 926 days ago
while I agree that there is a half-life to certain type of knowledge but I think it would be overstating to reasonably apply to all knowledge.

its very easy to retain a significant portion of the knowledge by building mental models. sure you will forget about the API surface of a technology, but you would surely remember the underlying knowledge models and you would surely apply it in many other contexts.

like remembering the REST API inputs and output data types is also a knowledge whose half life is much shorter. but building mental models of those would stay for a long time. the point never is to remember and include REST API input and output data as part of your skill set, the point is to include their underlying knowledge. and you can't treat the API surface of a library as knowledge, its essentially a volatile memory and supposed to be cleared away

2 comments

Exactly. It's weird for me that jobs are so strongly focused on some narrow technology. E.g. "React programmers" or "Javascript programmers" or "Python programmers".

When you know the basic "underlying" model, switching from a framework or language to another is not a very big deal. Not much bigger deal than figuring out a new large codebase with a familiar framework/language.

Sure, it may take a few weeks of learning new stuff and being unproductive (or even negatively productive) during this phase, but this is to be expected in any job.

I don't think learning the more fundamental concepts is that hard but it does require some time (and interest) that is not immediately productive. Perhaps due to demands of being productive, as in churning code, all the time gets people (and the industry) to get stuck in such "local optimum".

Switching frameworks usually implies learning all of the quirks if these frameworks/platforms, which is the long tail of problems
There's something to be said for having a deep familiarity with a language. In terms of just churning out basic tasks like churning out CRUD endpoints it maybe doesn't matter so much, but it's both a force multiplier for productivity and an enabler of building something altogether less trivial.

Arguably a lot of the ways modern software sucks is a direct consequence of developers not understanding the tools and languages they're using. It's a bakery that bakes bread by scraping the toppings off frozen pizza.

like who would care if you can bring certain type of knowledge's half life to 200 years. since you can't live anymore for that much time, you don't even need to think about solving that problem. just need to think about how to convert knowledge whose half life is less to the knowledge that has higher half life. (like converting API surfaces to mental models)