I love the idea. The execution... leaves questions.
I love the idea. The execution... leaves questions.
I feel like the author should have done a few for areas that they are actually knowledgeable in, then left the rest up to others. These feel too much like they were made by someone who tried to learn the surface of every topic they could access but doesn't know enough to organize any of what they learned.
> Using keyboard shortcuts has nothing to do with coding.
Unless you're coding with a pencil or a mouse, it very much does. People like to repeat the "most of my time coding is spend on thinking; typing speed is irrelevant" mantra quite mindlessly, and then they fail to appreciate just how much time they actually spend typing, miss that their bad typing ability is still impacting their overall speed (see: Amdahl's law) and is hindering them from working at a higher conceptual level than just characters and syntax tokens.
Proficiency with keyboard shortcuts of your environment makes high-level operations like "swap these condition branches" or "move these functions over to that class" or "rename this function" atomic or near-atomic operations that you can use on the fly, without thinking much about it. This in turn makes you reason in those higher-level terms more, improving utilization of your thinking capabilities in the non-typing phase too.
So yeah, I'd very much classify keyboard shortcut proficiency (including the associated mentality) as a mid-level critical coding skill.
I don't debate keyboard shortcuts accelerate you somewhat, but they have low payoff and they aren't foundational for anything else. It doesn't hurt to learn them, but it's in no way a necessary skill. You can be just as good a SWE by just being all mouse-clicky. Or living with cut/copy/paste only. What matters is understanding the operations they enable, and internalizing that the source code is merely a representation of the actual problem, not the goal. (And I've debugged and fixed 250k line code bases via fax, so I feel very confident making that statement)
(Also, "swap these branches", "move function", and "rename function" are really not high-level operations.)