Although I've been working for quite some time now as a developer, with several companies and developer teams, I am still amazed at how un-productive some developers can be. As a developer, I always feel I need to know the tools I work with to the degree that I sometimes feel as though they are an extension to my fingers.
It can get to a state where I can sometimes get things done almost as fast as I can think them. Whether its writing repeating code patterns, working with files or using DOS command lines – I always feel a bit naked without having a good tool that allows me to wrap things up in an easy configurable way and allows me to run tasks using shortcuts. Yes. The keyboard is my best friend, and I'm not ashamed to say it.
(On another note, I'm still trying to master blind-typing using Typing tutors, but somehow, I always get distracted by things to do, people to see – you know how it is. I still type pretty damn fast, but I think I'm starting to feel the effects on my hands – I sometimes get some pains in my knuckles – That can’t be good, can it?)
One of the few cons of this practice is that sometimes, when I get a task to do, I'll almost always try to find a way to do it faster and easier (i.e. "Lazy Programming"), which sometimes, ironically, makes the initial effort take a bit longer than expected.
In later efforts, however, I've found this to drastically improve productivity and makes for a less daunting task analysis…
Example: I was given a task to go over several dozen text files using some command line tools, then go over it with more command line tools and refactor the output files. Also I had to re-arrange some files, find and replace text inside them and generally have a field day with the file system…
A fellow developer got the same tasks on a different group of files.
I used TC to move files, find them and rename them (It has a fabulous Multi-Rename tool) And UltraEdit to edit files, and, most importantly, Run the command line tools against any open files. I was done with all the work in about an hour and a half.
By that time, the other developer with the same task and same amount of files was able to handle less then 10% of the work assigned to them.
That developer does not "like" working with anything else then Windows Explorer and Notepad.
Amazingly enough, most developers I've encountered aren’t even willing to learn this basic stuff, or are deterred by it. Looking at TC for the first time can be daunting. It's not exactly beautiful. But who cares about that? It just works.fast.
For developers, Windows applications and tools they use should not be all about beauty, but about usability and productiveness. As developers, we need to make that distinction as well, and start learning to use stuff that can sometimes be a bit crude but gets the job done. That's part of the reason some people still like working with the command line interface. It's basically easier to get things done than going through menus and sub menus with the mouse. I find that the tools in the middle – that can combine these two traits – are the ones most likely to be used by developers.
Some developers may say "well, I'm not a power user". Well, you should be. You're not a regular user. You should know the platform you're working on like the palm of your hand. You should find tools, loopholes, shortcuts and whatever the hell will let you make things easier and faster. It's a bloody jungle out there. You can either go through the grass near the edges, and thus taking the long-long road, or you can get yourself a machete, and plow your way through in 10% of the time – leaving yourself plenty of time to play solitaire ;)
- If you're still using notepad, find a good editor. If you're already using an editor – find and examine all of it's options, shortcuts, macros. Everything.
- If you're working with files – make sure you find a better file-manager to use.
- Learn how to use the keyboard.
- If you get a repetitive task – think how you can make it easier. Try to find a way to record it.
- Learn scripting in windows
- Find toys and gizmos to make your window experience easier –I have plenty – Just look at the links under "In my sysTray" in my blog for some examples
- Even a Tabbed browser instead of good ol' IE makes it easier to find information while removing lots of clutter from your desktop. AvantBrowser is a good free one.