23 May 2015

It’s pretty common to get into religious debates about one tech stack vs. another – one operating system vs. another – one political ideology vs. another.  These debates are interesting and worthwhile, but there are lower hanging fruit.  As an owner of a MacBook Pro, I use both Windows and OSX quite a bit.  I also interface quite a bit with Linux servers and Ubuntu virtual machines.  I have used Visual Studio for software development for a long time and have dabbled in using other tools in addition.  I have my preferences and I know what I think makes me most productive and it’s fun and worthwhile to talk about those things.  Ultimately, though, the choice of environment, platform, tech stack, and tools is insignificant compared to the power of simply knowing how to use what you have chosen (phrased as Darth Vader might say it).

As a geek, comfortable with the operation of computing devices, I cringe every time I witness someone filling out a form on a website by using the mouse to click on a textbox, switching to the keyboard to input text, moving back to the mouse to give the next textbox focus, and following this loop until they finally submit the form by clicking on a button with their mouse.  It’s a painful experience and you know they can do so much better by simply tabbing through the form and pressing the Enter key to submit.  This is not intended as an insult to anyone who operates that way, just pointing out the sub-optimal nature of the operation of a majority of folks.  Not knowing how to use the chosen tool is costly and you can do better.  There are certainly ways I could improve in how I do things as well.  Much of the time, we are oblivious to simple improvements that can make our lives a lot better.  Optimization then becomes a question of how we can discover better ways of doing what we do.  The answer is that it’s not easy and you need to seek knowledge.  You need to recognize triggers indicating you can find a way to do something better.

Here’s a quick list of ways you can know you have opportunities to improve in how you use your tools:

  • If you reach for your mouse to do something, ask yourself if it’s something for which you could learn a keyboard method.  If you can acquire a new and better way, do it.
  • If you do something (anything) a second time, set a flag in your mind that indicates it’s a candidate for automation.  If you do it a third time, automate it if possible; learn a better way if not.
  • Try new things and use different tools, not only to evaluate replacements, but to understand why there are differences.  In most cases one tool is better in some ways while another has other advantages.  The more you know about how they are different and why, the more you will understand how you can work best with any of them.

I’m a big believer in a keyboard-driven life and that your should only use a mouse when you are browsing websites not designed for keyboard usability and need to click links or set focus on controls without an easy path to do so via the keyboard.  This is the second-lowest hanging fruit in the optimization of your daily operation (right behind optimizing your use of email and ridding yourself of your ToDo list).  Unfortunately, most of the web is designed for most of the people and most of the people don’t care about optimization and are perfectly content with finding their mouse pointer and clicking around – this is a large part of what makes Gmail, and GitHub such exceptional user interfaces for the web.  For things you use on a regular basis, though, like your operating system, text editors and integrated development environments, your browser, and your mail client, you need to learn to use those things from the keyboard.  You also need to design your websites and other user interfaces such that your users can use them from the keyboard.  It makes life a lot better and faster and you don’t have to context switch in reaching for the mouse, finding the pointer, and returning to the keyboard, finding home row, and dealing with the distraction that causes away from your actual task.

The keyboard is still the greatest input device ever created and should be your primary method of machine interaction.  Every operating system in the world makes it easy to use the keyboard to do what you need to do (though OSX inexplicably doesn’t let you move your windows around to different displays and different sizes/areas via the keyboard – you really need this), so learn how to use yours.  You can drive pretty much every popular desktop application with the keyboard.  I plan to write more about productivity at the keyboard and how to get really good at using Windows, OSX, Vim, Notepad++, Visual Studio, Gmail, Chrome/Firefox, Bash/Powershell, and other essential systems/applications without leaving the keyboard.  For now, though, a good starting point is to take a look at this table of keyboard sequences and find some things you can use.  Really, though,, just looking at a table isn’t that practical.  You need to notice what you do in your daily life, realize when you are using the mouse when you don’t have to, and find out how to do that one thing with the keyboard and make it a new way of life.  Repeat that a few times, and suddenly you’ll find yourself a keyboard Jedi before you know it.



blog comments powered by Disqus