Swiss Cheese Heuristic for LLM use

Best: In the cheese

The knowledge in my head (especially when it comes to code) is a lot like Swiss cheese. There's things large-and-small that I don't know, but what I do know almost...surrounds these pockets of ignorance, and I get by the best I can.

When I'm in the cheese, the LLM and I are an amazing team where our strengths and weaknesses compliment each other. I both know what to ask for, and am an decent judge of what the LLM gives back.

I love LLMs. And when I'm using them to augment things I already kinda basically know, I'm in the cheese. Happy place.

(Another heuristic for whether you're in the cheese: If the LLM disappeared, could you keep working?)

Second-best: On the Cheese

This is where the rectangle of what I'm asking the LLM for is partially grounded in what I know. I'm at the edge of my abilities, and using the LLM to...learn/keep going.

This is the danger zone.

As a junior dev in the dawn of LLM-coding I have been a regular here.

Charitably: this is a place of learning. Your slice of cheese expands over time. Working on the cheese lets you do things you wouldn't have been able to do otherwise, so that must be good right?

Uncharitably: You are at least a little bit worse at both asking the LLM for things and evaluating what you get back. It feels like learning...but how would you know? You are at the edge of your intellectual abilities. What a beautiful, vulnerable, exquisitely human part of the human condition. And you're asking a computer for advice, hoping it isn't full of shit.

Worst: On the News

You don't know what you're talking about, so you're gonna ask for unspecific, vague things. And then you're not gonna be able to meaningfully judge what you get back. But actually it's worse than that. Even if the LLM gives you back the "right" answer, you're out of your element. You're like a dog chasing a car. You're gonna end up on the news .

(and absolutely no shade to that guy, or anyone who has ever had an experience like that. We're all figuring it out)

Concrete Things I've Changed (in how I work)

I used to hardly look at docs. I'd kinda ask the LLM for the docs, and then re-prompt over and over again when things didn't work. I now look at docs more. And I think about them differently. I'm kinda not going to the canonical docs to answer specific questions, but instead going to the docs for the opinions of the opinionated experts.

Like, I go to the docs to see what I should learn. What are the central concepts? And then when I think I have something like a skeleton of whatever the thing is, I go nuts with the LLM.

Still figuring it out. Still iterating.