Some time ago I wrote about computational survival, about preparing for productive work in a limited environment. The first time I encountered computational survival was when someone told me “I prefer Emacs, but I use vi because I just want to use tools I can trust that will be installed everywhere.” I thought it was weird at the time, but I’m more sympathetic now that I’re occasionally thrown into a client’s environment where I can not install software.
There are several variations on this philosophy. The version quoted above is something extreme, like only Use what is installed everywhere. A more moderate version would be to say you want to be a dishwasher with the lowest common denominator Additionally For tools you prefer to use when available. This is similar to the idea that web applications should deteriorate gracefully for less capable browsers.
Computational asceticism, The idea that there is something not only pragmatic but in fact moral On the use of minimal tools. I’m not a fan of this opinion but I can see how it develops. It’s a kind of variation on the creation of a virtue out of necessity (or at least an imaginary need), or a kind of Technological Stockholm Syndrome.
There is a variation on my computational question that looks the same behaviorally but has a different motivation. Someone might say that there is nothing inherently good about using minimal tools, but doing so is simpler than moving back and forth between two sets of tools. Using minimal tools at all times ensures that you master the tools when the time comes.
I guess it does matter what scenario you are preparing for. If you expect to be in the Jurassic Park scenario where you can save the world by being able to quickly board an unfamiliar Unix system, then using minimal tools all the time is a 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 live command line in front of co-workers or clients.
One thing to say in favor of computational asceticism is that it is stable . Attempting to use minimal tools occasionally is a kind of unstable equilibrium: it requires effort to maintain.
It’s all kind of Gray area problem. There are things you use so often that you keep washing without trying, and things you use so rarely that you settle for searching when needed. What do you do in the gray area of things you use only often enough that you want 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 are preparing for.
I have written several blog posts that explore this idea even further:
A few more thoughts on gray area issues.
One strategy is to practice nothing and memorize nothing. If you do not use something often enough to remember it without trying, it is not so important.
The opposite strategy is to try to remember everything and spend your life in endless preparation.
The first is a viable option. The latter is not because there is no end to what might be useful.
The optimal approach may be 10% of the way between the two ends. Going much further down this exhausting sequence.
The strategy of not practicing anything and not memorizing anything may be fine if you are in a stimulating environment. If you are in a boring environment and want to prepare for something else, you need a more active strategy.
You need to be very selective in the list of skills you want to improve or even maintain. It may be better to be less selective at the beginning of your career and more selective as you grow older and take on responsibilities.
 Although there is a problem in defining exactly what “minimal” means. There is nothing that is absolutely guaranteed to be in every computer, so you need to set some threshold, for example, using tools that are 99% sure to be there.