In chess, there is the principle of the “accumulation of small advantages” and another related principle “the threat is stronger than the execution”. These both say something about the surprising and cumulative effect of paying attention to small things. Little by little, you accumulate small advantages until you can knock your opponent over with a small push of your pinky finger.
But you don't touch on one characteristic behavior that I've noticed in expert devs: they study and have deep knowledge of the tools they're using. They know the ins and outs of their editor/IDE so that they can whiz around the keyboard doing many things the journeyman does via stringing together bits of the small subset of commands he/she knows. Likewise, with tools like git, and subtle aspects of the language, etc. Whereas the journeyman tends to know a few commands that he/she repeats frequently, but not much outside of that small subset. As a result, by having invested in learning the tools and language deeply, the expert can run circles around the journeyman on that basis alone.
I love this post. I read the original when it was published and it still rings true many years later.
> We’re so focused on efficiency that…
Given the recent layoffs for the sake of efficiency, this could be something similar to the “Of course” meme.
We are focused on efficiency, of course we:
… layoff people and then hire them back!
… disband teams that make/save money and grow teams that waste money!
So much of this feels familiar... but I would have a really hard time articulating it. Thank you for the clarity!
In chess, there is the principle of the “accumulation of small advantages” and another related principle “the threat is stronger than the execution”. These both say something about the surprising and cumulative effect of paying attention to small things. Little by little, you accumulate small advantages until you can knock your opponent over with a small push of your pinky finger.
These are good insights.
But you don't touch on one characteristic behavior that I've noticed in expert devs: they study and have deep knowledge of the tools they're using. They know the ins and outs of their editor/IDE so that they can whiz around the keyboard doing many things the journeyman does via stringing together bits of the small subset of commands he/she knows. Likewise, with tools like git, and subtle aspects of the language, etc. Whereas the journeyman tends to know a few commands that he/she repeats frequently, but not much outside of that small subset. As a result, by having invested in learning the tools and language deeply, the expert can run circles around the journeyman on that basis alone.