In The Kingkiller Chronicle, Taborlin the Great was a legendary wizard whose power was quite simple. He knew the names of things, and in knowing their true names, he commanded power over them. He could call the name of stone and demand it split in two. He could step off a tall tower and call the name of the wind, and the wind would carry him to safety.
While AI sometimes feels like a superpower in itself, it can also be incredibly frustrating. An image that seems clear and simple to describe in your head comes out looking like an artistic war crime when the model tries to interpret your prompt. The feature that seems straightforward in your application does not function at all as expected after implementation.
Furthermore, it can often be hard to even describe what makes the first implementation seem so off. I find this similar to how I feel at a wine tasting. While an aficionado can tell you all about the balanced, layered complexity of the wine, I simply know, "yes, I like this," and struggle to say why.
I believe this is why different people have such different experiences with AI and why the term "vibe coding" has become so overloaded. To some, it means blindly prompting off pure vibes with zero engineering rigor. To others, it just means directing an AI in natural language instead of typing every line of syntax yourself. In engineering work, I commonly hear, "The architecture of the code it generates is garbage," which comes from confusing the two.
Sure, it takes the path of least resistance. If you tell it, "implement code that gets data from Service A, transforms it, and loads it into our data warehouse", you're likely going to get entirely imperative-style code that does those steps in a giant, 500-line single god-method that would horrify the Chandrian themselves. No abstraction. Direct inline calls to the DB. It will not track historical changes or trends over time.
If instead you tell it to isolate side effects behind DAOs and service client classes, utilize IoC and DI for testability, and structure the warehouse around a medallion data model using Type 2 SCDs to track change over time, you'll get drastically improved, more maintainable results without significantly more effort. This comes simply by knowing the names of these basic patterns and knowing when to use them.
This doesn’t apply just to code. If you can picture an art style but don’t know what it’s called, you might ask for something like "old-timey storybook" and hope the model interprets that the same way you do. Learning that the look you’re after is Art Nouveau gives you a much more specific starting point. Technical documentation stops sounding like it was written with the flourish of the Edema Ruh when specifying that it should be written in Simplified Technical English instead of a more vague prompt like "keep it concise and unambiguous."
What I find about my own AI usage is that I’m now spending more time understanding these sorts of fundamentals in areas I'm not very familiar with. I’m studying art styles in order to better generate images. I’m studying writing styles in order to better generate prose fit to purpose. AI guides that study to help me learn the basic names, as I can now simply drop an image in and ask questions about the artistic style in a way I could never do before.
Taborlin the Great became a legend by learning the names of things to wield their power. AI gives us this superpower for far less effort. Although I'm still searching for the true name of Book 3. "Write 'The Doors of Stone.' Make no mistakes." unfortunately did not work very well.
If you're looking for a starting point, check out Semantic Anchors, a cool project that attempts to capture the names of many patterns, styles, and concepts that are useful in your prompting.
Top comments (0)