I'm a operation efficiency nerd. When operating a computer, you have to switch apps, click links/checkbox/buttons, invoke menus, open/close window or tab, adjust volume, change songs, switch input focus, switch fields, input/edit text, or perform pointer oriented input such as in a image editing software. (here, we are excluding other forms of input such as voice) In general, all these are inputs, done by using input systems, a combination of software and hardware. Typically, the hardware is just keyboard and mouse (or touchpad or trackball). The software part is the interfaces used in the OS and various apps.
Operation efficiency means you are able to achieve a input task with the least number of units of physical exertion, basically means less keystrokes, less mouse travel, and most importantly, less brain work to carry the task out. (brain work, such as the need to eyeball a process, is actually the most costy. (⁖ using the mouse to pull a menu is much more energy and hand-eye coordination than say pressing a button on keyboard.))
As a concrete example, let's say you have a URL in a text editor. Say you want to view that URL in a browser. There are many ways to do that. One way, is to use mouse to select the URL, right click to select the copy menu, switch or launch a browser (many ways to do this), put focus on the URL field, then right click to paste it, then hit Enter ↵ to load the URL. This method, is rather most typical. Here's the detail of each step.
A much more efficient method for copying text, is to simply hold the Ctrl, then press the c key, then release the Ctrl key. With this method, you don't have the visual/muscle coordination task of aiming the mouse pointer, which is required 2 times with the mouse method. Also, you do not have the visual selection process of choosing a menu, which requires you to scan the menu texts. Copying a text by 【Ctrl+c】 is purely a mechanical process, involves basically just a single step, and for those touch-typists, it's in muscle memory.
A even more efficient method that eliminate the “Selecting Text” step, is that in some editors such as Microsoft Visual Studio, you can press 【Ctrl+c】, and if there's no text selection, the whole line will be copied. So, it saves you the operation of select the line first.
As a example of a less efficient way, is to actually type the URL text in the browser field instead of copy ＆ paste. Some people actually do this.
Now, here's several ways to open a web browser window.
Of the above methods, the Web/Home keyboard button press is the most efficient. This button is available in many of today's keyboards since about early 2000. For example Microsoft Natural Ergonomic 4000. Or, you could've setup one of your function keys to launch/switch browser. 〔☛ AutoHotkey Basics〕
The second most efficient method above is launching by Quick Launch. Clicking a button on a button bar, and is more efficient than going thru menu.
Now, let's see methods to visit a URL in browser.
Now, consider the following method by keyboard:
The keyboard is much more efficient, again because it involves less hand/eye coordination, and no brain visual processing of scanning text in menu.
Now, let's consider a example case of extreme efficiency. If your text editor is Emacs, you can skip the allthe steps above. All you have to do is call the command “browse-url”. This you can do by pressing the 【Apps】 (which calls a command by name), then type “bro”, then Tab ↹ to complete the name, then press Enter ↵. This will copy the URL, launch or switch to your default browser, and open the page of that URL.
And if you need to do this often, you can setup a single key such as F8, so the entire operation is one single keypress.
Here's some advice for Mac ＆ Windows users for operational efficiency. The following list is roughly ordered from the most important tips first.
Most programers who don't touch type will start to groan when seeing this. Well, sorry fellas, but this is actually the most important tip for efficiency. Bite the bullet.
There is a question about whether to learn the Dvorak Keyboard Layout. If you don't already touch type, I highly recommend learning touch type with Dvorak. The drawback is that you won't be able to hop to any keyboard and start touch typing, at public libraries, or co-worker's computers, but you can always hunt-n-peck on QWERTY.
Use a good keyboard, preferably Microsoft's ergonomic ones. For tips on choosing a good keyboard, see: Computer Keyboards Gallery.
I also recommend a keyboard with many special application launching keys and multimedia keys. The app launching keys are big time savers, and you can customize them to open your frequently used folders too. The multimedia keys such as Play/Pause, Mute, Next Song, are extremely useful if you use your computer to listen to music. Most of today's keyboard have these special keys.
I recommend Microsoft's Ergonomic 4000. It is a split, ergonomic, full-key, full-featured keyboard.
Master OS's shortcut system. See:
“Master” means you know all the shortcuts in the OS, and you've examed and experienced and have decided which are better for you.
Learn the OS's ways to config the keyboard. On Windows, it's the keyboard icon under Window's Control Panel. On Mac, it's the Keyboard icon under System Preference. They allow you to tweak global keyboard hotkey settings, to various degrees.
If you have a Microsoft keyboard, i recommend the bundled IntelliType software. (comes in for both Windows and Mac versions) It lets you remap or disable keys or define macros to some extent.
Use macros and other key-remapping or app launching software. See:
On the Mac: Automator and AppleScript, and Bash. See also:
On Windows, learn PowerShell. (See: PowerShell Tutorial) (There's also Visual Basic and cmd.exe, but PowerShell is the new .NET based shell that is more flexible, powerful, and suitable for automation and sys admin.)
Keyboard macros, launchers, shells, scripting langs, all work together as automation tools. For example, you often want a hotkey to invoke some script.
Learn the OS's keybinding system or API. On the Mac it's the DefaultKeyBinding.dict system. It lets you re-define keys across OS to some extent by a simple config file. See: How to Create Your Own Keybinding in Mac OS X.
I'm not sure what's on Windows. Registry has a lot to do with keybindings at least. There are several tools too, see: How To Create Your Own Keybinding In Microsoft Windows.
Note that efficient methods usually require you to spend time to learn the key shortcuts, learning the keyboard macro software, or learning scripting languages, and setting up your system.
If you spend only 1 hour a day on computer, apparently learning all the efficient methods is not worth it. How much time you invest in learning and setup these efficient methods depends how often you need to perform the task. Also, how easy it is to learn and setup a new system.blog comments powered by Disqus