The “toolbox” metaphor often used to describe a programmer’s knowledge, favorite software, shell scripting tricks, and so on, is a convenient one. The skills and utilities that a seasoned programmer brings to bear on any given problem is much the same as the craftsman’s physical collection of implements; selected carefully, representative of the craftsman’s preferences, and wielded with precision borne from experience.
We can learn much from these parallel concepts. In the same way that a builder must keep the blade of the saw sharp, so must a programmer focus some effort on sharpening the “blades” of his or her tools and techniques. This is not a post about education or learning new algorithms or solving ridiculous code katas every day. This is a story about chainsaws.