Solving my Problems at the Wrong Level of Abstraction

Published: 1/16/2023

Buy my book: Exponential Growth for Babies

Why do I have a blog? I want to express and develop my ideas. I want to share them with people. I want to make friends. But if those are my goals wouldn't I accomplish them better by simply talking to people? Blogs have some advantages. They're:

But are those advantages that real? The internet is a crowded and noisy place and my blogs drop like stones to the bottom of the ocean. Seldom disturbed. And if my goal is to make friends they have a number of disadvantages:

But actually the situation here is worse because I didn't simply go one level removed from my real goal, make friends -> write blogs. I've gone up another level write blogs -> write blogging software. Now I've got my own custom static site generator. For which I have my own flavor of markdown and templating language. Which I've figured out my own hosting and deploy solution for. Why [1]? I've often justified this strange situation in the name of learning.

Learning

Doing things to learn is the epitome of what I'm talking about here. Trying to learn rhymes with trying to be happy. I want to spend my life learning and happy but as soon as either becomes the principle goal of a pursuit I've got to start wondering whether I should be doing something else. Sometimes people argue for learning as a kind of terminal goal but I tend to be suspicious. It seems like a kind of Stockholm syndrome from too much time in school.

I've certainly learned a lot writing this site. Some of which actually was useful later. But I would have learned a lot pursuing any goal. So it's not a good justification for having done something. It's a sort of booby prize you get at the end of pursing the wrong goal or failing to achieve a goal.

Working

Going up or down a layer of abstraction from where your problem lives can be helpful. My real problems are "I need to eat every day" and "I don't want to sleep outside" but instead of learning about farming and construction I go up a layer of abstraction "I need to make a lot of money" and then down one "I need to write a lotta code for these people paying me". There's no need to meet all your problems head on in the natural way they arise.

The real danger is when you switch your goal subtly and the new approach actually can't satisfy your original goal. This broadcast method of communication literally can't make friends. Maybe it can spur conversations which can lead to friendships. But you can spend a long time talking to an empty room on the internet.

Tools

There's a meme of a person who is really into note taking but never produces interesting ideas or a person who is really into vim but never writes great code. I'm a little skeptical this archetype of person really exists. Or if they do exist are very common at all. But maybe I'm in denial because I am the second type of person having accumulated a ton of esoteric vim knowledge and written two vim plugins. And while I'm an okay engineer I can't help but think I would have been better served focusing on making something while I was learning that stuff. It's hard to say. I do think I am starting to be a lot faster at certain tasks because of the skills learned. Programming is just a specialized form of text editing. Though that formulation is the acme of solving your problems at the wrong level of abstraction.

On note taking I've never fallen down the note taking/tools for thought rabbit hole. I actually do use my two vim plugins to take notes along with Anki. But I've never taken flash card making that seriously. My use case is basically "When I google something and think it'd be nice to remember, or I've already googled it twice I write it down". And mostly I only use my notes to write todos. Though since August every week I've been writing down what I did last week, what I plan to do next week and some core stats around heart rate and mood and time spent coding. I've found it to be at least therapeutic.

Until next time:

Father, give us courage to change what must be altered, serenity to accept what cannot be helped, and the insight to know the one from the other.

- Winnifred Crane Wygal

[1] I think this situation isn't too unusual for devs. As they say but I cannot attribute the modal tech blog has three posts, a third of which are about their own hosting. I guess I don't have that problem as I've written 78 posts and only a small number have been about how I build/host the site. I've actually been meaning to post an update to this post for years but at this point there are maybe too many changes. Ah well. UPDATE (sorry for the excessive footer): Dan Luu didn't exactly say it but I was thinking of this blog.