The first definition of a programmer’s job had no typing in it. Seventy years of typing later, it is due for a rewrite.
TL;DR: In 1954, Grace Hopper defined a programmer as someone who prepares a plan, and left the code to a separate job: the coder. Compilers merged the two jobs for seventy years; prompting is splitting them again, and the precision that writing code demanded is moving to the plan and the proof. AI’s inconsistency is fixable: identical answers are a design choice, bought with speed. Whoever owns the judgment and the checks (tests, acceptance criteria, reviews) is programming, in any language. My draft definition: a programmer decides, directs people and agents, and answers for the evidence. Rewrite one role around the outcome it verifies, then find the checks nobody owns.
In 1954, Grace Hopper explained that “a ‘programmer’ prepares a plan for the solution of a problem.” Turning that plan into machine code was a separate job, “the task of the coder.” The programmer planned. The coder typed. Today, engineers are arguing over whether telling an AI what to build, in whatever language you speak, counts as programming. Skeptics say programming is precision, and human language has never been precise about anything. For a CEO, the answer decides what you hire for, what “senior” means, and who answers when generated code ships broken.
Job titles tend to outlive the jobs under them. During the war, the agency that later became NASA hired Dorothy Vaughan as a computer: a person who calculated by hand. Then the machine arrived and took the word. Vaughan could have spent her career insisting that real computing meant pencils. Instead, she learned to program the machine that now carried her title, and became an expert at it.
Over the following decades, compilers folded the coder’s job into the programmer’s. Coding got cheap enough for one person to do both, and the dictionary followed: today a programmer is “a person who prepares and tests programs for devices (such as computers).” The merger built an industry. Prompting is taking it apart.
The case against prompting is strongest on logic. A compiler translates a precise language deterministically: give it one program twice, and you get identical output each time. A model takes the loosest language we have and can answer one request two ways. Edsger Dijkstra, a computer scientist with no patience for fashion, argued decades ago that the ease of our native tongues is mostly the ease of saying things whose nonsense is not obvious. (The skeptic is winning this paragraph. Let him.)
Determinism, though, is a design choice, and it has a price. Ask a model one question many times at the setting meant to remove randomness, and by default you get a crowd of different answers, because the server’s arithmetic varies slightly with how busy it is. Engineers can remove that, and every answer comes back identical, at the cost of running slower. Newer “decision models,” built to pick from a fixed set of options, drop the injected randomness and return a probability with each choice: closer to a compiler, and still a judgment. Compilers made their guarantee so long ago that we mistake it for a law of nature.

Prompting does not remove the formal language. It moves it into judgment and checks: the tests, the acceptance criteria, the review. Hopper’s programmer handed a plan to a coder. Today’s AI-native programmer hands it to a machine, then does the part Hopper left unsaid: proving the result does what the plan said. Skip the checks, and you are vibe coding: building while forgetting the code exists. On human language, Dijkstra was right. That is exactly why the plan and the proof now carry the precision.
I should declare a bias. I build mobile apps with an AI co-creator, and in the latest update of one of them, I didn’t touch a line of code. It took a few days, not a few weeks. My job was reviewing what two automated audits, one for quality and one for security, had found. Last year I wrote that the human stays essential “not as a typist, but as a director.” By Hopper’s definition, I was programming the whole time. And yes, I wrote this essay with an AI co-creator too, so I am in the dock twice.
Every role on your team that is named for a task faces the same split. So rewrite one role description around the outcome it verifies, and drop the verb it performs. “Writes code” becomes “owns that the billing service behaves as specified, and can show it.” Then look at what falls out: tasks that no longer need a human, and checks nobody owns. Cut from the first list before you fill the second, and the savings arrive a quarter before the incident. Hold a role’s definition loosely and its outcome tightly. Your own AI deserves the same rule: before it writes anything, it should ask what would prove the work was done right.
Dictionaries move slowly, so here is a draft entry for 2030:
programmer (n.) One who prepares a plan to solve a problem, and judges how the solution will change the larger system it joins. States that precisely enough to be checked. Directs the people and AI agents who build it. Answers for the evidence that it works as specified. Compare coder, now mostly a machine, and computer, formerly a person.
It has one weakness I cannot fix. The machines may soon write the checks too, and then the title moves again. Definitions belong to the people who use the words. Leave your redline in the comments, or hit reply.

Food for your AI
To make your own AI ask for the check before it does the work, go to orionplaybook.com and paste the prompt at the bottom of the page into the AI you use most.
Sources
Dijkstra, Edsger W. “On the foolishness of ‘natural language programming’.” EWD 667, undated. https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667.html. Accessed 2026-10-17.
He, Horace, and Thinking Machines Lab. “Defeating Nondeterminism in LLM Inference.” Thinking Machines Lab: Connectionism, September 10, 2025. https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/. Accessed 2026-10-17.
Hopper, Grace Murray. “Automatic Programming: Definitions.” In Symposium on Automatic Programming for Digital Computers, 1–5. Office of Naval Research, Department of the Navy, May 13–14, 1954. Washington, DC: US Department of Commerce, Office of Technical Services, 1954. Transcription: http://bitfragment.net/notes/proglang-src-hopper-automatic-1954/. Accessed 2026-10-17.
Merriam-Webster. “Programmer.” Merriam-Webster.com Dictionary. https://www.merriam-webster.com/dictionary/programmer. Accessed 2026-10-17.
NASA. “Dorothy J. Vaughan.” Updated June 28, 2024. https://www.nasa.gov/centers-and-facilities/langley/dorothy-j-vaughan/. Accessed 2026-10-17.
Hanselman, Scott, and Mark Russinovich. Scott & Mark Learn To…, “SemanticStart.” October 7, 2026. https://www.youtube.com/watch?v=HyFRt3CJplw. Accessed 2026-10-17.
Originally published at www.orionplaybook.com.


