Almost no skill required to cook a steak
Minimal Skill is Needed to Sear a Steak
(But that doesn't mean you can actually cook a great one)
Cooking a steak is, on the surface, incredibly simple. You toss a piece of meat into a scorching pan, wait a few minutes, flip it over, and eventually, you'll have something that is edible technically food.
However, there is a massive gulf between "edible" and a truly exceptional steak—one that is perfectly medium-rare from edge to edge, beautifully browned, seasoned with precision, and consistently delicious.
The AI Parallel in Software Engineering
Modern software development using AI is mirroring this exact trajectory. We are obsessed with the process, tinkering with it everywhere:
- During our morning commutes.
- While in the restroom.
- Possibly even in our dreams.
We build complex ecosystems: agents, harnesses, custom tools, refined prompts, and automated feedback loops. We construct elaborate workflows and feed them into a Large Language Model (LLM), hoping the output matches the vision in our heads—all while avoiding the need to understand the underlying mechanics.
The Quality Gap
We crave software that is polished, functional, and arrives exactly as envisioned. Yet, AI often delivers the digital equivalent of burnt charcoal with a garnish of thyme, insisting with absolute confidence that it is a perfect medium-rare.
| Approach | Effort | Result |
|---|---|---|
| Basic Prompting | Low | "Technically edible" / Buggy code |
| Tool Chasing | Medium | Expensive disappointment |
| Fundamental Mastery | High | Consistent, professional quality |
When the results fail, we try to buy our way out of the problem. We pay for "Pro" subscriptions, hire specialized agencies, or migrate to the latest framework that promises "professional-grade" AI results.
"The choice is simple: either we learn the actual craft of cooking, or we spend our lives paying for restaurant recommendations and bracing ourselves for the next overpriced letdown."
The Illusion of the "Digital Chef"
Most developers want to use AI to build things they are passionate about without getting bogged down in the "boring" implementation details. We want to treat the AI like a world-class chef in our own kitchen:
- Give the order.
- Walk away.
- Return when the meal is served.
But AI isn't a sentient chef; it's a machine. To get a great result, you have to manage the context window, the system wrappers, and the specific constraints.
# The "Hope-Based" Development Cycle
def generate_software(vision):
prompt = f"Make it look like {vision}"
result = ai_model.generate(prompt)
if result == "charcoal":
return "Pay for a more expensive subscription"
return result
If you don't translate your vision into strict requirements, concrete examples, and rigorous tests, the AI is blind to your goals. You might spend your time correcting the machine every thirty seconds until, out of sheer frustration, you decide to just "pay for the dream steak."
The Path to Actual Quality
Eventually, you realize that customers might tolerate clunky interfaces or strange bugs in a product they have to use, but you won't tolerate them in something you actually wanted to create.
This is the moment you go back to the basics. You pull the cookbook off the shelf and learn the why:
- Thickness: Why the cut of meat dictates the heat.
- Resting: Why patience is required before slicing.
- Timing: Why a stopwatch isn't a substitute for judgment.
The Role of AI in a Master's Workflow
Once you understand the fundamentals, AI stops being a "magic button" and becomes a powerful assistant. It can:
- Automate repetitive boilerplate.
- Provide a rapid starting point.
- Explain complex legacy code.
- Act as a sounding board for new ideas.
Conclusion: The Necessity of Knowledge
AI cannot define "quality" for you. It cannot weigh the nuanced trade-offs of a specific architecture, nor can it always sense when a solution is technically correct but fundamentally wrong.
We can express the relationship between skill and AI output as:
To build truly great software with AI, you must first understand software. You need the expertise to know exactly what to ask for, the discernment to judge the output, and the wisdom to recognize when the machine is simply serving you charcoal.
Stop hoping to stumble into success. Study the craft until you can produce the result you want every single time.