A Pianist's Scales
Tyler Cowen will never have the opportunity to ask me his question “What is it you do to train that is comparable to a pianist practicing scales?” but I will answer for the programming realm in my world.
I once programmed for a living, but now spend more time building teams and guiding others in their programming efforts. This means more time spent managing, translating between business and technology, and designing and assessing system architectures. Yet staying in touch with the basic concerns of programmers requires some amount of programming. I don’t believe one can maintain that contact without practice.
As someone steeped in programming on UNIX systems, I write shell programs as my practice. Most programmers I know see this as pointless. They look at shell as an arcane anachronism today. So why bother?
Building small utilities and arranging them in a constellation that solves a problem is a common practice in UNIX-style programming. And shell programming, especially the use of filters and pipelines, supports a simple version of that practice. Implementing pipelines to process data forces you to keep the architecture very simple, modular, and composable, important qualities even today.
When you program in shell you constantly make use of existing utility programs written in completely different languages. Often you don’t need to know the implementation language of a utility, just its behavior. This acts as an antidote to single-language-only programming fetish one sees everywhere these days, in which all aspects of a program from the actual data processing to its build system must be implemented in the same language. Building a shell program often branches out into other languages for utility implementation. But it starts with shell and command-line thinking and tinkering.
It’s fun, it’s simple, and it’s instructive. As a technologist it’s my way of practicing scales. I would have enjoyed the question more had Cowen asked “What do you do to train that is comparable to a composer practicing species counterpoint?”