When learning a new software, there’s a common tendency (to which I can personally attest) which favors focusing on core functionalities instead of memorizing keyboard shortcuts. This prioritization is sensible: learn what the software’s features are - and more importantly if they’re useful - before optimizing on how to perform them faster. Why memorize Microsoft Excel’s “Trace Dependents” when you’ve never used it once before?
But this mentality effects an insidious inertia: once you’ve developed momentum pointing and clicking to get things done, it no longer seems necessary to learn the keyboard shortcuts. Motivating reasoning quickly follows:
These arguments obscure the true value of shortcuts: it’s not about faster execution, it’s about reducing cognitive load.
We can first acknowledge that muscle memory exists. A classic example of this is touch typing: you don’t think about how you are going to type (eg. where the individual keys are), but rather what you are going to type. In other words, by relying on muscle memory instead of cognitive memory, you offload the mental burden of thinking about procedural steps to your fingers.
But muscle memory is not exclusive to keyboards. I’m sure many professional gamers would argue that, for certain tasks, pointing-and-clicking on the screen is much faster than keyboard shortcuts and is a veritable form of muscle memory. I am equally sure they would say that keyboard shortcuts are faster for other tasks. It would seem the keyboard-mouse trade-off depends on the task.
Which leads us to the second point: memorized keyboard shortcuts have a lower cognitive burden than pointing-and-clicking on multi-menu tasks. The science seems to be far from conclusive on the issue, but I agree with Jeff Atwood that the the superiority of keyboard shortcuts for multi-menu tasks appears self-evident. It also makes sense that chunking keyboard shortcuts is easier than sequential mouse clicks (eg. Alt + A + T is chunked as one shortcut, not three keypresses).
So where do we find a lot of multi-menu tasks? Some candidates:
Let’s take an example. Say you want to find the unique values of a filtered dataset in Excel. This requires several subtasks: selecting your data, opening filters, applying a filter, re-selecting your subset, copying it, pasting it elsewhere, re-selecting and finally removing duplicates. This totals about 15-18 clicks; by contrast it is about half as many keyboard shortcuts. Again, ignoring the upfront investment of learning the shortcuts, the advantage is unambiguous. There is a reason investment bankers and creative professionals invest so much time in learning shortcuts.
But what about that upfront investment?
Using a basic capital budgeting framework, we need to perform the task enough times to justify the initial investment. For those who spend the vast majority of their working lives in just a few applications (namely their browser, Adobe CS, Microsoft Excel, etc.), the conclusion is obvious: over tens of thousands of repetitions, virtually any initial investment is justified. In practice, the investment in these shortcuts requires just a few days (sometimes only hours) of slightly heightened focus - the benefit extends for years.
However the ultimate question still remains: using shortcuts definitely frees up mental bandwidth - so what?
Here I rely more on intuition: a lower cognitive burden allows for more creative and analytical thinking. When you go from searching for the next click to executing with your fingers, you free up your mind to consider more strategic questions. How do I sanity check my work? Are there other ways which would be informative to filter the data? How else can I pivot the data? I would argue that you have a higher likelihood of remembering these questions and avoiding trivial errors by focusing on high-level strategy, not implementation.
All this to say: always learn the shortcuts.
A corollary: in a world increasingly dependent on web apps, these applications should always be equipped with keyboard shortcuts. Thankfully this is fairly trivial now to implement on the web.