

Reading this I had a small epiphany about something Iāve been observing for a really long time wrt. programmers. That term sounds like something I would use to describe a specific category inexperienced or experienced-but-terrible programmers before the entire LLM disaster. Like this very specific kind of coding based on not giving a fuck, where you haphazardly copy snippets from the internet, write no tests, debug based on divine guidance.
You might know the term āphilosophical zombieā. Its usefulness in philosophy aside, Iād call this kind of coder a āprogramming zombieā. For a programmer, the process of coding is a quite complex internal experience. We build large models inside our minds to capture the context in which we need to perform the task, often spanning multiple abstraction levels. When youāre working on a small project you have a quite detailed model of e.g. the current file youāre working in, but also awareness of the other parts of the projects and how they connect to the file youāre in right now. Everyone has this to some extent after some experience with coding. People who are really good at coding sometimes seem from the outside like fucking magicians, because youāll come to them with some small issue in one part of the codebase and in milliseconds theyāll be able to utter shit like āah, this is because of how module X interacts with this syscall in Y.cpp when youāre running an old version of the kernelā, and theyāll be right. In their head they have this intricate deep understanding of what theyāre working on and can pull connections and explenations seemingly out of thin air.
A programming zombie doesnāt have any of that. The moment something doesnāt work and their usual MO of copying or changing random things until it works doesnāt produce effects, theyāre completely stuck. Itās like they donāt have a way to reason about their program, they donāt have a mental model of what theyāre actually doing. This is what you get when you treat code as just some words on the screen. And itās something Iāve always struggled to understand and explain, because I donāt actually know how to teach someone to have that process. It seems like an intrinsic part of the job, when I tell you āIām programmingā I donāt mean āIām writing some funny characters on the screenā, I mean Iām designing a program, the same way an electrician isnāt just connecting random wires and hoping for the best but rather has some larger electrical network in mind.
In the before times, so far ago I wasnāt even born yet, it was probably quite hard to be a programming zombie because everything about programming was so much harder. I mean, a punchcard had to be a great filter against people without mental models of code. People on interviews started using FizzBuzz to try and weed out people who can write code, but cannot code, and it kinda worked for some time. But now? Weāre in the prime time of a vibecoder. You donāt have to know fucking anything now. If youāre a Blockchain Programmer then your code probably doesnāt even run anywhere. Itās all just vibes, man. Weāre pretending to be engineers by pretending to write code that we pretend we tested, and then our customers pretend to use it. In actuality itās code shat out by an LLM deployed to a site visited only by search engine bots, advertising an app with no real use, in service of a number going up somewhere. And whatās that number based on? Yup, just vibes.
Now I donāt know if this is true because Iām only definitionally a writer in that I write a lot of prose, but the point of āthis is what happens when you treat code as just textā seems to generalize to an eerie extent when weāre talking about LLMs. Cause thatās what they do, right? Writing is not just writing words, when you write an article you have a mental model of something more abstract that youāre trying to bring to life with the words. The structure and flow are something that originates from your inner understanding of what youāre trying to convey, itās just expressed by the language. As in, language is just a tool we use to convey abstract concepts, the same way programming languages are just a tool we use to express abstract functionality. The way LLMs are advertised and so often used puts this on its head, the text is the primary product and a goal in and of itself. Why does LLM poetry suck? Because itās just words. Thereās no poem there, itās just words arranged in a way to resemble a poem. Itās the same reason their prosaic writing sucks. The same reason its code sucks. Only if you perceive poetry as flowery words, prose as long passages of text, and programs as keywords on a screen, can you be fooled into thinking thereās any substance behind the LLM vibes.
Anyway, I kinda lost myself in my harrowing philosophical nightmare that is our tragic reality, in conclusion ye, just throwing random AI garbage into your code and seeing if it sticks is very much what Iād call vibecoding.
Yes I want to put my code into a container, and the dump it into the bloody sea thank you very much