Computational asceticism
A while back I wrote about computational survivalism, being prepared to work productively in a restricted environment. The first time I ran into computational survivalism was when someone said to me I prefer Emacs, but I use vi because I only want to use tools I can count on being installed everywhere." I thought that was odd at the time, but I'm more sympathetic now that I'm occasionally thrown into a client's environment where I can't install software.
There are several variations on this philosophy. The version quoted above is somewhat extreme, wanting to only use what's installed everywhere. A more moderate version would be to say you want to be fluent in with lowest-common-denominator tools in addition to tools you prefer to use when available. This is similar to the idea that web applications should degrade gracefully for less capable browsers.
Computational asceticism, the idea that there's something not just pragmatic but actually virtuous about using minimal tools. I am not sympathetic to this view but I can see how it develops. It's sort of a variation on making a virtue out of necessity (or at least an imagined necessity), or a kind of technological Stockholm syndrome.
There's a variation on computational askesis that behaviorally looks the same but has a different motivation. Someone could say there is nothing inherently virtuous about using minimal tools, but doing so is simpler than moving back and forth between two sets of tools. Using minimal tools all the time guarantees you're fluent in the tools when the time comes.
I suppose it matters what sort of scenario you're preparing for. If you anticipate being in a Jurassic Park scenario where you can save the world by being able to come up to speed quickly on an unfamiliar Unix system, then using only minimal tools all the time is good preparation.
Most of us will never have to be productive on a time scale of seconds. But more will want to make a good impression, or at least avoid embarrassment, if they have to use a command line live in front of coworkers or clients.
One thing to say in favor of computational askesis is that it's stable [1]. Trying to use minimal tools occasionally is sort of an unstable equilibrium: it requires effort to maintain.
This is all a sort of gray zone problem. There are things you use so often that you maintain fluency without trying, and things that you use so seldom that you're content to look up when needed. What do you do in the gray zone of things you use just often enough that you'd like to be more fluent in using them but not so often that you remember them without trying? It all depends on your threat model," what you're preparing for.
I've written a couple blog posts that explore this idea further:
UpdateSome more thoughts on gray zone problems.
One strategy is to practice nothing and memorize nothing. If you don't use something often enough to remember it without trying, it's not that important.
The opposite strategy is to try to remember everything and spend your life in endless preparation.
The former is a viable option. The latter is not because there's no end to what might potentially be useful.
The optimal approach might be 10% of the way between the two extremes. Going much further down that continuum is exhausting.
The strategy to practice nothing and memorize nothing may be fine if you're in a stimulating environment. If you're in a dull environment and want to prepare for something else, you need a more active strategy.
You have to be very selective in the list of skills you want to improve or even maintain. Maybe it's best to be less selective at the beginning of your career and more selective as you mature and gain responsibilities.
[1] Though there's the problem of defining exactly what minimal" means. There's nothing that is absolutely guaranteed to be on every computer, so you have to set some threshold, say, using tools that are 99% sure to be there.
The post Computational asceticism first appeared on John D. Cook.