Cthulahoops

Sometimes, you have to turn off the LLM.

One thing I believe about about programming with LLMs is that sometimes, you have to turn off the LLM. Specifically, for learning. In particular, for understanding.

On one project, recently, I'd just added a lot of features to a code base I didn't understand particularly well to start with. I didn't write the early versions, and I hadn't worked on it for a couple of months. I was badly in cognitive debt. The solution was to turn off the tools and just spend a couple of hours with the code the old fashioned way. Moving things around, making small refactors, rebuilding my intuition for the code. This done, I could return to the tools, reviewing their work with confidence.

Maybe you don't need to turn everything off. In this case I could do my small refactors with a little help from co-pilot and still gain the understanding I needed. It's different if you want to internalise syntax. Last weekend I was teaching myself about CSS layers and I wanted the syntax to stick - that means no autocomplete.

A recent paper on cognitive debt is getting a lot of attention, and I think the most important part of the study isn't getting enough. In that study moving from Brain to LLM was really effective, and the other way is really ineffective. If you take the time to carefully understand what you're doing first, then LLMs are a super-power. The other way around is hard; the brain likes to be lazy and switching back to brain-mode is hard work. In the real world, we'll have to move back and forward, and we can't even try to understand every layer of complex software systems all at once. We have to choose, and the best we can do is to be aware of the difference between these two switches.

The key is to be deliberate about which tools you use, why, when. And to value understanding.