Motivation
As software developers we use a huge variety of tools, from the very simple to the immensely complex. It takes considerable effort to learn to make the most of these. This is effort well spent.
Applicability
All the time. There is no one tool that serves all your needs though. Pick tools that suite your needs. Do not go for the most complex tools directly.
Application
Just do it. Start looking up the keystrokes for frequent tasks and memorise them.
How about a command line tools? Not having to lift your hands of the keyboard can be a great time saver.
Consequences
A huge increase in productivity, fewer keystrokes, colleagues who gasp and stammer "how did you do that?".
Samples
- Learn the keystrokes for your language IDE by heart. Twice. Master its search and navigation functions. Optimize the syntax highlighting to your preferences.
- As an example of the latter: Eclipse JDT defaults to using italic font for static members and no highlighting for abstract members. Bring these in line with UML and underline your statics, italicize your abstracts. Now you can see an abstract method invocation and know not to press F3 (which uselessly takes you to the declaration), but CTRL-T to take you to an implementation.
- Learn to use at least one command shell and its scripting language for every platform your frequently use. Learn a text editor for that shell. Unix is traditionally stronger than Windows in this area, although Windows PowerShell should not be underestimated. You can mix and match! Bash, vim, wget and xmllint are all avaiable on Microsoft Windows and work perfectly fine. By installing these your can focus your effort on just one type of shell.
- Learn to use SSH login by a private key protected with a passphrase instead of a password entered at shell login. Manage private keys on your workstation using ssh-agent (or pageant).
References
If you're into vi (a unix text editor), try https://vimgolf.com.