Over on Dr Dobb’s, Andrew Binstock recently wrote an article giving “Advice to a new programmer”. Among all the good advice was this, which I want to pick up and take a bit further:
Learn your tools thoroughly. I think the greatest loss of programming time is not in debugging or rewriting code, but in the innumerable seconds lost here and there by developers who don’t really know their tools. I am referring to: the IDE, the language, the build system, and the VCS. Of these, the IDE and the language are by far the most important.
There is a generalisation to be extracted here: Be frustrated, and act on it. Always be seeking a better way to do things, and when you find it, don’t be satisfied for long. Two examples at opposite ends of the scale…
A demonstrably outstanding developer will always be asking why something is being done the way it is. This is how teams, and companies improve. Similarly, not questioning the status quo leads to an organisation with sludged-up processes. Anyone who seeks to continually improve their systems—particularly if it is not explicitly their role—is seen as dedicated and an asset.
At the other end of the scale… Of all the tools you use, make sure you are adept with the keyboard. This almost goes without saying, but I have met long-time developers who are two-fingered typists, continually playing a game of hunt-and-poke with the keys. Do not be satisfied if your typing is not as fluid as it can be. Andrew might talk about “innumerable seconds lost here and there”, but the signals emitted by not being comfortable with this kind of basic tool is a greater loss to you than you would believe. Because if you did believe it, you’d do something about it.