Going Commando - Put Down The Mouse

One of the quickest ways to increase your productivity on the computer is to go commando: stop using the mouse. When you stop relying on the mouse for everything, you're forced to learn the keyboard shortcuts. Jeremy Miller calls this the first step to coding faster. I agree.

This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2007/03/going-commando-put-down-the-mouse.html

“Unfortunately, navigating through websites is nearly impossible without a mouse, due to the highly mouse-centric nature of HTML. I’ve given up on trying.”

You can navigate in Firefox by hitting “/” and then typing in the text of the link that you want to go to. It doesn’t neatly solve the problem of more graphics-heavy interfaces, but when you’re just surfing around pages with lots of text and a few links, /-typeahead-searching plus PageUp/PageDown is an improvement over the mouse.

The implied meaning of the image with the crossed-out mouse is ‘Don’t use mice branded Microsoft’. :slight_smile:

I can’t wait for the day when the cursor follows my eye movements so I no longer need to waste my time switching between the keyboard and mouse. Hook up a camera that monitors where I’m looking and places the cursor there. Couple that with some basic voice commands and I’d be happy to get rid of my mouse.

coding with a mouse considered harmful =o)


BTW, Linux users-- try tilda. It pulls a terminal down from the top of the screen like the Quake2 console on a keypress. I have it configured to come down when I press F1. Then you can run programs maximized (no more stupid window micromanagement) but still have a terminal handy for any quick purpose.

And OSX users get the same with Visor. Very cool stuff. And there’s also a dashboard terminal (also Visor’s much better) so you can have 2 different terminals available at any time on fast-access shortcuts

You can navigate in Firefox by hitting “/” and then typing in the text of the link that you want to go to

Or you enable typeahead and you don’t even need to hit “/” :wink:

I picked up the habit of keeping my left hand on the 'board and my right on the mouse from one of the best photoshop guys I’ve seen. This way, you always have access to whichever method is fastest.

Test subjects consistently report that keyboarding is faster than mousing, but the stopwatch consistently proves mousing is faster than keyboarding.

I have no doubt that for certain activities the mouse is faster. The problem with Tog’s statement is that he doesn’t qualify it at all.

HTML is a fine example of a UI that’s much faster to use with a mouse. Navigating HTML via keyboard, even with the Firefox plugins that make it easier, is still quite painful.

But there’s just no way you can tell me that this:

  1. Move the mouse to the username field.
  2. Click the mouse button.
  3. Type a username.
  4. Move the mouse to the password field.
  5. Click the mouse button.
  6. Type a password.
  7. Move the mouse to the login button.
  8. Click the mouse button.

is faster than this:

  1. Type a username.
  2. Press the Tab key.
  3. Type a password.
  4. Press the Enter key.

It’s un-possible!

navigate in Firefox by hitting “/” and then typing in the text of the link that you want to go to

That’s not really navigation, it’s incremental search. It is admittedly a fine line, but not quite the same thing. Try “finding” an image you need to click on, for example.

Totally. I work with developers that use the mouse with toolbar buttons to step through code in the VS debugger. It absolutely pains me to watch it.

My favorite feature of Vista is the integrated search in the Start Menu, just because it makes it so much easier to launch apps using only the keyboard.

You didn’t read the Apple study. I went through it rather closely a while back, and from what I remember it has nothing to do with the actual speed of command execution - you’re absolutely right, you can always put commands in faster with the keyboard - and everything to do with leaving your mind free to attempt higher thought. I like to think of it in terms of RAM - when clicking with a mouse, you’re just clicking. You’re not thinking, “Hm. Is paste-just-formats ctrlshftp or ctrlshftaltp.” You’re thinking about whether the equation you’re pasting is going to apply to the fifteen cells on your left. So your RAM isn’t loading a whole bunch of (say) CISC operations. It’s running a smooth UI you don’t need to think much about.

So for mundane tasks you consistently repeat, you’re completely right. Stop using the mouse and you will get faster. But if you’re talking about memorizing every single key combo in the interface, well, that tends towards extremely specified knowledge. Which can speed you up, but can also limit you when choosing the next tool…

There’s one particular co-worker of mine who claims to know every little trick and shortcut there is to know for working with Office. He might. But when you look at things he has actually attempted to accomplish, well, the results are not as effective as they should be. Know anyone like this?

You know, I’ve been keyboarding around for a long time, now… but there is a danger: whenever an application forces itself to the fore and throws a message box with a dismiss button automatically selected. I hate dismissing those automatically. It’s a lot of why I detest the MessageBox in general… Just a few simple measures… a few changes at the API level… and we’d never have the problem again…

Anyhow, back on topic: I didn’t really start falling back in love with Mac OS until X came along and started letting me keyboard my way through. Now I use XP for the majority of my work, but I still hop into OS X for funsies every now and again. It’s not a chore like it used to be.

“It’s un-possible!”

This is the mark of distinction between real engineers and psuedo-engineers.

Real engineers rely on science, and make their decisions based on science.

Pseduo-engineers try to emulate what they think makes real engineers real, and spread opinion based on logic such as “there’s just no way you can tell me that” and “It’s un-possible!”

Further, productivity is not measured in speed of “coding”. Unless you’re a monkey implementing pre-designed features without any creativity, speed of entering lines of code is the least factor for your productivity.

Are you a typist or an engineer? Are you a coder or a programmer?

If you are a VS.NET user, you can enable tooltips for menus that show the keyboard shortcut to the menu item.

Tools Customize… check “Show shortcut keys in ScreenTips”

Now, when I find myself needing to dig in the menu for a command, I make a point of learning the keyboard shortcut instead. Shift-Alt-Enter ftw!

It’s easy to demonstrate the truth of Tog’s report, which Ben pointed out. In fact, I often do this when I am helping someone out, and they are at the keyboard. I will use their mouse to highlight individual characters (and sometimes words) from adjacent lines/applications and right click (because I’m a power-mouse user, and don’t need to travel up to the menu bar, which is a remnant of the days of keyboards) and choose Copy. Then I move the mouse to the destination window, right-click again (it’s really easy) and choose paste. Usually by the fifth character, the person I’m helping says I am just moving too fast to keep up, and asks me to please use their keyboard, so I will be slow enough they will understand what I’m doing. It’s great fun and helps in reductio ad absurdum contexts, too!

Unix developers have been doing it this way since the beginning.

Thought I’d add my personal favorite for any coders using VS. If you use the General Development Settings in VS2005, CTRL+i does an incremental search (it searches as you type one character at a time), and if it doesn’t get what you want the first time, press CTRL+i again and it’ll search for the next instance of it. If later on you want to search for the same thing, pressing CTRL+i twice will automatically search for the last thing you searched for.

I use it all the time.

Not all appls follow a standrd keyboard shortcuts. The most evil one, I think, is ctrl+y. Mordern appls redo while many oldies delete the current line!
I prefer the Eclipse way. You can choose your keyboard shortcuts.

Jay and Dylan, you seem to see this entry as disavowing the mouse. That’s not my intent. I want to see people balance their use of the mouse with use of the keyboard, too.

when clicking with a mouse, you’re just clicking. You’re not thinking

Really? So when you mouse over something you know exactly what that thing is going to do before you click on it? Or maybe you mean thinking in terms of “which mouse button do I click” versus “which of these 104 keys do I press”, but even Raskin himself admits the one-button mouse was a huge mistake in retrospect.

speed of entering lines of code is the least factor for your productivity

Well, obviously if someone is typing “All work and no play makes Jack a dull boy” into an editor at 200 wpm, that isn’t getting us anywhere. Yes, we are all typists as well as programmers. The faster you make your mistakes, the quicker you can correct them.

Speed and efficiency aren’t the only factors, but they’re still important. Consider speed of iteration…


for VS.NET users - Visual C# 2005 Keyboard Shortcut Reference Poster


Unfortunately, using keyboard shortcuts can be literally painful. Keep in mind the small number of us that are genetically doomed to suffer through keyboard pain when using what I call “the claw”. Any two key combo done on the same hand will send incredible pain into my wrist. Well, in all honesty, the first one is fine, but after about 10 cycles of ctrl+c and ctrl+v, I’m screaming for my mouse (or my reprogrammable gamepad). When I need to do a two key press, I have to hold down the meta key with one hand and then press the key with the other hand, loosing the benefit of keeping one hand on the mouse.

It may be hard to believe, because it doesn’t seem that hard, but repetative stress syndrome is a real thing.

The only reason I bring this up is that I’ve heard nerds mocking people for not using keyboard shortcuts. Not that anyone really cares what obnoxious nerds do, say, or think. I just like putting them in their place.

You wouldn’t make fun of someone who used a crutch to walk (or would you?)