The computer only does exactly what you tell it to do
Programming is less about writing code and more about precisely specifying what should happen
The Computer Does Exactly What You Tell It To Do, Nothing More, Nothing Less
The fundamental truth about computers is deceptively simple: they execute instructions with perfect, literal precision. Nothing more, nothing less.
The Illusion of Intelligence
When we see a computer "misbehaving," our first instinct is to think it's broken or buggy. But the computer isn't wrong—it's being perfectly obedient to the instructions we gave it. The bug isn't in the machine; it's in our communication.
What We Call "Coding"
If computers only execute exact instructions, then what we traditionally think of as "coding" is actually something entirely different:
- 90% Specification: Understanding and debating what the system should and shouldn't do, and why
- 10% Expression: Translating those decisions into the computer's language
The hard part isn't learning syntax or frameworks. The hard part is figuring out what to tell the computer to do.
The Specification Problem
Most software problems stem from unclear specifications:
- Ambiguous Requirements: "Make it user-friendly" means nothing to a computer
- Missing Edge Cases: What happens when the user inputs nothing? Or everything?
- Unstated Assumptions: We assume the computer knows what we "obviously" meant
Why This Changes Everything
Understanding this principle transforms how we approach programming:
Debugging Becomes Translation
Instead of asking "Why isn't this working?", ask "What exactly did I tell it to do?"
Requirements Become Paramount
The quality of your specification determines the quality of your software, not the elegance of your code.
Communication Is Everything
Programming is fundamentally about precisely communicating intent. The computer is the most literal listener you'll ever encounter.
The Practical Implications
When you're stuck on a problem, step back and ask:
- What exactly do I want to happen?
- What exactly did I tell the computer to do?
- Where do these two things diverge?
Most of the time, you'll find the gap isn't in your implementation—it's in your specification.
The Humbling Truth
The computer's literal obedience forces us to confront the imprecision of human thought. We discover we don't actually know what we want as clearly as we thought we did.
This isn't a limitation of computers. It's a feature. They force us to think clearly, completely, and precisely about what we're trying to accomplish.
The computer is the ultimate truth machine: it shows us exactly what we said, not what we wished we had said.