Computing on the Mind

What is programming like? This is me speaking from the construction of the website, its supporting tools, a bunch of little games and scripts from back to the 8th grade, and ten million stupid little Matlab exercises from engineering school.

My laptop and my software notebook.

Organizational chops

Programming is probably the most flexible craft made by humanity. You can solve a problem in an whatever way using whatever set of abstracting tools. Any given process is easy to solve at least to a minimally functional level. That part is some tool knowledge and maybe some math chops. Any given (non-trivial) program is made of sub-processes and sub-processes and companion processes triggered between different conditions timed between each other and pointing to everything else. The hard part is the organization, comprehending all these pieces, sticking them together, keeping them inline and boiling off the redundancy until the whole thing can be a relatively cohesive unit. It feels like being the big mob boss and the little processes are your idiot goons.

If the problem becomes that big and zoomed out, the code just looks like colorful shapes. The idea as a whole is in plain english. Solving a problem for the first time means charts and documentation that get revised and replenished as the code does.

Nearly illegible flow charts made to work out a function for my static site builder.

I got good at this method from engineering class. We loved complaining about this level of formality.

Nearly illegible flowcharts made for an engineering school matlab project. Made in microsoft word.

A lot more papers full come out of me now. Most of them these sloppy to-do lists and notes, anything to keep the structure from falling into a wash of letters and parenthesis.

The first page of my software notebook planning my static site builder.

Losing perspective

Shoddy UX flow diagrams used to redesign this site.

Programming has a lot of craftwork and nuance, but its also the thing where principle of operation can be most separated from experience. You can’t tell how your programs work by looking at them; You don’t need to care about what a program does to work on it. They call it ‘front end’ and ‘back end’. The divorce makes two problems: programs that feel good but run like hot garbage, and programs that run good but feel like hot garbage (most web apps and most Linux apps respectively). The former is just regular consumerist wasteful abundance squandering. The later is ‘technologist brain’: the obsession with tools and mechanisms, their tight inner workings with their purity and power to the extent that when we take off our navy blue jumpsuits and zoom out— we never considered what the machine does.

The unhelpful technologist mindset is process and paraphernalia, not for some intrinsic joy, but for a quest of abstract detached quality. These are the guys who made and bought cryptocurrency, and a similar affliction takes our Linux bro friends.

The blue collar is only as good as the white collar is only as good as the system is only as good as the blue collar. Their severance is doable and hideable, but not good.

I don’t want to be a programmer because that title seems deeply incomplete and what they do seems deeply superfluous.

Computing as meditation

Not just programming, but using a computer (at least a good one like mine) can be damn peaceful. I focus on pressing the keyboard with as little force as possible, I use inputs that keep my hands still and relaxed. The screen falls out of favor. Every mechanism literally happens at subvisible scale. Perception of the machine is limited to tools of the machine. The scenes become cloudy and the imagination becomes sharp, using the computer means developing a working model for what its doing. Bug fixing is bringing that model back to reality, drafting theories and sending out probes to see this untouchable object.