Recently I’ve noticed that a lot of my co-developers where I work don’t use a lot of tools beyond the usual VisualStudio / Notepad combo. I find that rather weird since personally I have spent a lot of time learning how to use certain tools because it makes life just that much easier. As I am pretty sure I have mentioned before, developers are supposed to be lazy. According to Larry Wall (the inventor of Perl) this is even one of the three most important virtues of a programmer – the other two being impatience and hubris. In this case I happen to agree with Larry, because the urge to avoid any kind of repetitive, mind-numbing task or do something with two clicks instead of three is what programming is all about.
There are a lot of tools out there that can help you in that regard, so I’ll give you a list of my most important tools here. Since URLs change much more often that blog posts and because I don’t want to have to update this list every two weeks, I won’t give you any links, but instead I’ll give you search phrases that should – with the help of Google/Bing/Whatever – get you to the right place.
- Launchy (keywords: launchy keystroke launcher)
I don’t know any faster way to start programs. Period. Searching through the task bar is a pain, quick-links are annoying and the “Start Search” is ridiculously slow and usually doesn’t find what you are looking for. With launch, all you have to do is press CTRL+Space and enter a couple of letters of the program you want to start. Presto! - Fences (keywords: stardock fences)
This is a very useful tool to organize your desktop. It allows you to create “fences” – groups of icons – and place them wherever it suits you. This also prevents your icons from “jumping around” when connecting via remote desktop with a different resolution. - PowerShell (keywords: microsoft powershell 2 download)
As far as shells go, it still sucks in some respects (fixed with, copying from the shell is still bullshit – seriously! WTF?), but it has a couple of very nice ideas (passing objects between commands instead of just plain text). And it certainly is a GIANT step forward from the built-in windows cmd.exe. - PowerShell Scripts
Once you’ve got the basics of PowerShell, you should start writing your own little scripts. Simple text processing is very easy to do and since all of the .NET framework can be used in PowerShell scripts you will most likely enjoy its flexibility if you’re already familiar with C# or VB.NET. In the near future I plan on writing a couple of simple examples of useful PowerShell scripts in post form, so stay tuned. - Emacs (keywords: gnu emacs windows download)
This is a text editor originally developed for Linux systems. As a Windows-person your most likely reaction to emacs will be: why all these complicated keyboard shortcuts? But let me tell you, if you take the time to learn the basic Emacs commands, this can significantly boost your productivity since you don’t have to move your hands away from the keyboard all the time. - Programmer’s Notepad (keywords: programmers notepad)
One of the many things Windows is still missing is a reasonable text editor. One of my favorites is programmer’s notepad. It’s simple, yet very effective. - Putty (keywords: putty ssh client)
I’m somewhat of a cross-platform guy and if you have any contact with Linux systems you’re probably used to remote shells using SSH. On Windows, the only reasonable SSH client that I know of is Putty. It can do anything you expect of an SSH client – and then some. - Putty Launchy Plugin (keywords: putty launchy plugin google code)
This very useful Launchy plugin allows you to initiate an SSH session through Launchy by simply typing something like “ssh {name of a saved putty session}”.
I’m sure there are many more useful tools, some of which I know and most of which I don’t know. My point? Go look for useful tools yourself. If you have a problem, chances are somebody had that problem before. And if you’re lucky somebody wrote a tool for it!