4 ms·
> very context-specific expertise you only get through experience. When giving advice, I'm often tempted to point to a given situation, and to explain what rul
by ekidd 3y ago
> very context-specific expertise you only get through experience.
When giving advice, I'm often tempted to point to a given situation, and to explain what rule of thumb I used to solve it.
But then I would see a junior programmer applying the rule of thumb in a completely different situation and I'd want to say, "No, that will end in tears!" And I realized that a lot of my rules of thumb were really dumb when taken out of context.
As far as I can tell, a huge part of expertise is having a large set of mappings like:
- In contexts like "C1", use rule of thumb "R1" or "R8".
It's very tempting to talk about R1, R2, etc. You can write blog posts like, "How R2 will transform your team!"
But a lot of real expertise comes from being able to say, "Oh, this is a combination of C7 and C78, so I should consider rules of thumb R7, R49 and R102. Ah, wait, no, R49 is just gross here."
So I've learned that, when mentoring, I need to spend a lot more time talking about the context before proposing any rules of thumb.
- enasterosophes 3y agoThis is very insightful, thanks. I'm currently in the middle ground where I still want mentoring from the technical leads on some things, but I also have enough seniority to be mentoring new hires. You've articulated the way I think our tech leads are often not great at explaining themselves, while also giving me something to think about when passing on information to newbies.
- smilliken 3y agoMy rule of thumb is to hesitate before giving advice if I can't come up with an anecdotal story to support it. Stories are more useful than generalizations because they come with the context, and can be dismissed in different contexts. At risk of presently breaking this rule of thumb, I'll give an example. When I notice code being structured with class inheritance, I'll point out a part of the codebase where I did similar, and how poorly it turned out, which someone can observe for themself. It started out nice, as it usually does, but devolved over time as complexity accumulated in parent classes to handle scenarios in child classes.
- AnimalMuppet 3y agoUm, can I retract about the last 15 years of my advice?