Zengineering

04 Sep 2023 - 12 Jan 2025
Open in Logseq
    • I'm someone who gets very emotional and stressed about code. Zengineering is an (extremely dumb and cringe) name I came up with for the cure – learning to not give a fuck, or at least not give useless and harmful fucks.
    • Most code is bad, that's all there is to it. A good engineer aims at clear, pristine, well-structured, and powerful code, but it's rarely achieved. The universe is janky and code is part of the universe, it isn't some ethereal formal abstraction. It's a human product. Even if you are capable and fortunate enough to carve out some islands of elegant order, it's only a tiny light in the darkness, soon to be extinguished and snuffed out.
    • Zengineering means facing this truth with equanimity and cheerfulness.
    • It means less focus on the outcome of an engineering project (which, admittedly, is contrary to the basic meaning of engineering) and more on the process, how it grows from idea to implementation. Software itself is not as interesting as the process by which comes to be.
    • If faced with a horrible mess, clean it up or live with it, don't hate it, don't despair. Clean it up or live with it. (This might be more Stoic than Zen)
    • Part of my problem is my training, I grew up on Lisp and Lisp Machines which were (and still are) models of elegance, clarity, and power. Almost all systems I have encountered since them have seemed clumsy and inadequate. This sucks but I'm tired of it causing me suffering.
    • Metaengineering

      • I might be wrong, dangerous to identify Zen and metaness -- but it also seems kind of natural.
      • That is to say, any software project -- any work project, really -- involves a sort of engineering of the self. Configuring your own machinery. And a knowledge of it. (This is starting to sounds like metarationality).