Certified Keyboard Driven Developer
In the latest episode of The Agile Toolkit podcast in an interview with Dave Thomas about, well just about everything, they talk jokingly about the notion of a certification for keyboard shortcuts and I thought, wow, that is just a fantastic idea! This would be a really useful certification as opposed to the many completely or nearly completely useless certifications out there. None mentioned none forgotten.
Shortcuts makes you more productive all over the place. In your IDE, on the command line and all sorts of other tools. Not having to remove your hand from the keyboard in order to use the mouse saves you time and concentration. You start out by typing, move your one hand to use the mouse, possibly moving your eyes to see the mouse, then moving the mouse pointer to the menu item or button you want, clicking it and then moving your hand back to the keyboard. When the shortcut is second nature you type, enter shortcut and continue typing. No lateral movement of neither hand(s) nor eyes (except to see result of command, but that is true of not using the shortcut too).
The effect is more flow in your work. Most developer know when they are in the zone and want to stay there to keep the code flowing. Every little distraction should be avoided to maintain the state of flow. Agreed, using the mouse is not a big distraction from the flow, but everything helps, right?
If you get repetitive stress injuries from using the mouse, using the keyboard could help make them go away. Just make sure you get a good quality keyboard, adjust your desk and chair to the correct height and take frequent short brakes.
So How Should We Do This in Practice?
There is the trouble of all the different sets of keyboard shortcuts for different tools, of course. Mac users have an advantage here since the platform streamlines a bunch of shortcuts. Tools like IntelliJ IDEA and Resharper which lets you choose between different shortcut schemes (us Emacs users love the Emacs shortcut scheme, at least I do, but sadly it doesn’t quite fit in IntelliJ on the Mac) and you can use the same one in several tools.
So I guess we need different certifications for different tools, that would make sense. You could then embroider your CV with the title “Certified Mac Keyboard Developer”, Certified Microsoft 2010 Visual Studio Keyboard Core Foundation User” (the Microsoft marketing division can get a say in this, I don’t care), or Certificed Emacs Hacker.
And the actual test? Give the candidate a list of tasks to to (normal stuff every developer needs like opening files, navigating project structure, running unit test, build/package/deploy, the most common refactoring shortcuts, snippets, code formatting, line navigation and editing and other useful stuff. And just simply disable the mouse or remove it altogether. If they’re done within the time frame, they’re certified! I see a million dollars coming my way with this scheme.
Command Line Users Have the Edge
Users accustomed to using the command line for all sorts of tasks are used to remembering commands and shortcuts to greater extent than “normal” windows users (I use the command line in windows too, but not the crummy built-in cmd.exe) and could get certified more easily. The history navigation in the unix shell, combined with aliases and piping is awesome for productivity.
Training For the Exam
There are some techniques for training for this kind of certification. First there are cheat sheets that should decorate your desktop or cubicle wall and http://www.cheat-sheets.org/ has a huge collection. Some java IDEs have plugins that will remind you of the fact that a shortcut exists if you select a menu item with the mouse. Some can even be configured to disable the menu item if you won’t take the hint. Lastly just time yourself doing something you do every day and avoid the mouse altogether and see the effects for yourself.
Disabling the mouse for some period of time could also be tried. It hurts in the beginning, but you should quickly get over it. Jon Galloway also has some good suggestions in his blog post on mouseless computing.
I for one try to use the mouse as little a possible.blog comments powered by Disqus