Don't Marry Your Tools
Wednesday, Sep 25, 2019

There’s a popular book in computer science literature called The Pragmatic Programmer: From Journeyman to Master. The book discusses the merits of committing to learn and master a single editor. The goal is that, by becoming intimately familiar with the tool, you drastically increase your efficiency and performance in tasks where the tool can be used.

To the authors’ point, when you pair that familiarity with a powerful editor, you now have a Swiss Army knife for manipulating code and text that you can bring to a wide variety of scenarios. I have been following this philosophy myself using the Emacs editor, and have spent time both learning it and customizing it to fit my needs.

But it is possible to take the investment in mastery too far. It is possible to spend so much time focusing on the tool that you lose focus on the job the tool was meant to help you accomplish.

Even worse, we may find ourselves completely useless without our one preferred tool. When we have married ourselves to a particular tool, we can fall into the trap of making decisions based around the tool itself, rather than basing our decision on what the optimal solution is.

The old adage rings true: When all you have is a hammer, everything starts to look like a nail.

Ultimately, a tool is a means to an end. The moment your tool becomes the point, at the expense of a better solution, the tool has become a hindrance and you are worse off for it.