You might argue both, but that’s beyond the point :-) I’ve been thinking lately about how different programmers get their work done. If you look over the shoulders to 3 programmers, none of them is working the same way. The first difference I tend to notice is the use of keyboard shortcuts. Personally I’ve always been a fan of shortcuts, especially in development environments like Visual Studio, but also general shortcuts in Windows or other applications. For instance I never do File -> Open. I always use ctrl -> O and it always annoys me when a program does not support the most common shortcuts. However, I still feel I can learn and use more of them.
We can divide developers into three groups related to the above:
- Love the mouse and rarely use shortcuts
- Use mouse often, but use shortcuts for the most common actions
- Use the mouse only when there’s no shortcut for the action.
I think I can put myself in category 2 and I’m not sure if I want to or are able to be in category 3. One important aspect to consider before I dig myself to deep into this, is that you don’t necessarily produce better software by using a lots of shortcuts (obviously). However I’m quite sure that a developer in group 3 produce code faster than a group 1 developer. But one can argue (if you’re a bit extreme) that the quality of the code produced by group 1 is better, because they get more time to think :-) But seriously you can’t use this type of groupings for defining developers, but in general I think many developers could benefit from using more shortcuts.
Here are the most common shortcuts in Visual Studio 2005 as I see it:
You probably know where and how already, but if you go to Tools -> Options -> Keyboard in Visual Studio you can define your own shortcuts. This is a great feature of Visual Studio that let you create custom shortcuts for almost every action you can do with a mouse. You can either change an existing shortcut or define new ones. Here’s a screenshot of the shortcut dialog in VS:
Commands are displayed alphabetically after some type of menu structure (e.g. Edit.Copy), though there a many more commands than you can find in the menu. This list is of course populated dynamically which means you’ll find commands for 3rd party VS plugins like e.g. ReSharper. One thing to be aware of though is existing shortcuts. If you for instance want to have the shortcut Ctrl+V, Ctrl+A, you will override the Ctrl+V command for Paste, which is probably not what you want.