Tools are Rarely a Limitation

The only must-have tools for a programmer are a program with which to edit text files, a terminal, and (in modern times) a web browser. Which editor you use matters little, especially if you are learning. The best text editor to write a program with is the one you already know best.

It is easy to spend time tweaking tools or searching for better ones instead of practicing programming. Programmers with every level of experience fall into this trap, and I myself have on numerous occasions. It is natural to become interested with the new and different, and in many ways, this is how we gain the new skills and insights that help us grow.

But there is a danger lurking in the new— one that can grow into infatuation and lead us into the barren wilderness to be devoured by snow leopards.

Each of us has a finite capacity to learn and a finite amount of time. Time spent selecting a tool or customizing a tool is not spent using the tool for its intended use, practicing problem solving, reading code, or having a pleasant experience not in the presence of a computer.

This is not to say we should not try to know the tools we use more deeply or that trying a new technique is not a worthwhile pursuit, but that such activities should be undertaken with an awareness of the time and effort being spent in that way.

We spend most of our time thinking, and the path to improving as a developer begins in the mind. The tools we use are just along for the ride, and it is best not to give them the opportunity to steer.