As developers, we frequently use keyboard shortcuts. Some enthusiasts know hundreds, others are contempt with the essential ones. But every developer does know some. It is unthinkable to browse the Web, searching for a solution to your CSS alignment problem without using Ctrl+f. Debugging would be tedious if we couldn't pause and resume a program's execution with the keyboard.
In recent weeks, I have been able to significantly expand my keyboard shortcut knowledge with my new side-project web app KeyCombiner.
In particular, I knew only a few shortcuts for the web-based tools I am using in my daily work. This post describes how it took me less than 1 hour to learn 50 new key combinations. Fortunately, KeyCombiner keeps a detailed history of a user's learning progress, so that I could write this post retrospectively.
Admittedly, the 42 minutes of learning time was interrupted by breaks, and the process involved some other tasks, such as creating the collection of shortcuts I wanted to learn. However, I did, in fact, spend only 42 minutes practicing the shortcuts and have had similar results with other shortcut collections.
The first step to learning new keyboard shortcuts is to define which. I don't think it is efficient to try and learn all shortcuts for a particular application. You will end up with many that you do not use in your daily work and that you will soon forget again.
Creating custom collections of keyboard shortcuts is perhaps the greatest strength of KeyCombiner and sets it apart from any other tool. Within minutes or less, you can have a personal collection by importing shortcuts from popular apps. I like to compare its approach to how you build playlists in music software. Instead of browsing your favorite artists’ albums, you browse categories of your favorite applications. Instead of adding songs to your playlists, you can add keyboard shortcuts to your collections.
For this challenge, I created a new collection named "50 to learn".
Then, I browsed KeyCombiner's public collections and started to import everything I wanted to learn. As my goal was to get better with web application shortcuts, I focused on the public collections for Gmail, GitHub, GDrive, Docs, Slack, and Twitter. Importing the combinations into my new shortcut collection looked like this:
Additionally, I added a few shortcuts for Smartgit manually. It is a graphical Git client that I am using extensively. For some reason, I never learned its shortcuts. Unfortunately, KeyCombiner does not yet have a public shortcut collection for Smartgit that I could rely on. However, manual input does the job:
You can browse the resulting collection with 50 keyboard shortcuts here: 50 to learn.
I am afraid you will have to trust me that I did not know these shortcuts already before this experiment. However, as reassurance, you can check my previous blog post covering all the shortcuts I was using until a few weeks ago. The list there does not include these new ones.
To validate the success of this experiment, I will simply use KeyCombiner's confidence metric. It will analyze my performance and tell me which shortcuts are already etched into my muscle memory during practice. So, the challenge will be completed successfully once this card says 50/50:
Learning new shortcuts with KeyCombiner is dead simple. You click on the practice button for a particular collection, and the software does the rest. It will create 60-seconds training exercises where you are supposed to type the shortcuts of a collection as fast and as correct as possible.
With every input, KeyCombiner remembers if it was correct and how long you took. It will use this information along with some machine learning to calculate a so-called confidence value for each key combination in your collections. A high confidence value means that you mastered a combination. Key combinations with a low value will occur more often in practice sessions, so you are not stuck repeating what you know already.
There are a few additional aspects to it, but the good thing is that users do not have to bother with the learning algorithm's internal workings. Repeatedly doing practice runs is enough.
The very beginning of learning a new collection is the hardest part. While I do not yet know any of the shortcuts, I have to rely on KeyCombiner's delayed key hints to type any. Sometimes, I just skip combinations immediately to see what the keys are.
This is how results for such a practice run look like:
Surprisingly, even in the first practice run, I got a couple of combinations right without key hints. This means that they occurred multiple times already or simply that I was able to guess them correctly. The latter is often the case for go to shortcuts, which have been made popular by Gmail and are now used in many web applications.
After a few practice runs, I started to disable key hints and only relied on skipping combinations where I couldn't remember the keys. KeyCombiner will then display the skipped combination's keys, so I have a shot at remembering them next time.
The statistics for the 10th practice run looked as follows:
KeyCombiner recognizes 9 shortcuts as mastered. So far, so good.
After another 10 practice runs, statistics showed that I knew already most of the shortcuts:
However, KeyCombiner punishes errors quite heavily and is hesitant to show keys as mastered that I have just recently mistyped.
At this stage, it starts to get interesting to check the collection and see which specific shortcuts have very low confidence values. Usually, it is obvious to see some patterns:
The figure shows that I had problems knowing which modifiers to use for GSuite shortcuts (Gmail, GDrive and Docs). Some use Ctrl + Shift , some Ctrl + Alt and some don't have a modifier at all (e.g. forwarding a mail in Gmail). I found that having a good look at such problems between practice runs can speed my progress, but it is not required.
All that is needed is to keep hitting the practice button. At this stage, muscle memory starts to build, and the average time I need for each combination goes down quickly. KeyCombiner considers the average time metric for its confidence values.
After 35 practice runs, things started to look very good:
A confidence value of 3 means that I mastered a particular combination.
Let's have a look at the combination with the lowest confidence value. Surprisingly, it is the relatively simple shift+a:
I made quite a few mistakes with this combination in the beginning. Therefore KeyCombiner's algorithm is skill skeptical about my skills. Errors usually mean that I thought I knew the shortcut but then typed a wrong combination. In this case, I suspect it is because I was hitting Ctrl+a instead or missing the a key. shift+a is a bit tricky to type if you are used to hit both shift and a with your little finger. However, my performance has been much better recently. Just a couple more practice runs to go and KeyCombiner will forgive my earlier mistakes.
Then, finally, after another 7 practice runs, I had reached my goal:
Practicing on this collection looks much different now than in the beginning:
It is straightforward to do a similar challenge. Simply go to https://keycombiner.com, create an account, import some shortcuts from public collections, and start practicing. However, I would like to share some additional
tips that make learning new shortcuts more pleasant for me:
- It is a bit more fun in the beginning if you throw in some shortcuts that you already know. Even better, just extend one of your existing collections with new shortcuts that you want to learn. KeyCombiner will automatically show the new ones more frequently during practice.
- I sometimes activate key hints without delay, which brings some variety to the learning experience and can help build muscle memory. If you are a good typist, you will be able to type a lot of shortcuts within the 60 seconds time limit.
- KeyCombiner will try to filter out shortcuts that cannot be captured during training. Those are marked with a yellow background in your collections. However, sometimes an invalid combination may still make it into your practice session, for example, if a browser extension does not pass it on to KeyCombiner. Simply append an underscore to any of the keys, e.g. shift_+a, so that KeyCombiner will recognize it as invalid.
- Depending on how frequently use a shortcut in your daily work, your memory may fade over time. To counter this, I suggest practicing also mastered collections from time-to-time. A couple of one-minute practice sessions can be a nice break from work.
I have already learned many new keyboard shortcuts with KeyCombiner before this challenge. However, I never kept track of how long it took exactly until I knew them. I am thrilled with finding out that I could learn 50 new shortcuts in just 42 minutes of practice time.
Believe it or not, without thinking much about it, I have started to use every single one of the 50 learned shortcuts in my daily work. I guess that's the benefit of learning, not just any shortcuts, but precisely the ones you pick.
Clearly, the experience will vary between people and also depend on the complexity of the shortcuts. Given that I spent much of my free time working with the keyboard shortcuts domain during the last months, I can probably pick up new ones faster than an average user. Still, I am confident that you could achieve similar results.
I think this post makes a good argument that 42 minutes spent with https://keycombiner.com are an excellent investment in your productivity.