Haupz Blog

... still a totally disordered mix

Know Your Tools!

2025-01-26 — Michael Haupt

Mastery of a craft comes from understanding deeply the mechanisms at work in it, and the tools used to wield those mechanisms. This is true for any craft. A master carpenter will have to understand the different kinds of wood, and various techniques for how to cut and connect pieces. That’s all theoretical knowledge, and of no use, if it’s not combined with a deep knowledge and understanding of the tools used to handle the materials, and to transform them into something usable. Knowing what a tool does, in principle, is not enough; wielding it well means understanding how it, too, works.

This is true for software engineering as well. Knowledge of algorithms, and principles of design and architecture, is necessary, but bears little value if it’s not combined with a deep enough understanding of the tools - programming languages, compilers, runtime environments, libraries - that support building something.

Software engineering relies on abstraction to a considerable degree. This can be dangerous: superficial knowledge of a library or framework can easily be mistaken for a sufficient understanding of the same, leading to all kinds of problems when naïvely applied.

Know your tools!

Tags: work