DEV Community

Cover image for What Socrates Can Teach Developers About Talking to AI
Maggie Zhou | AI SaaS Maker
Maggie Zhou | AI SaaS Maker

Posted on

What Socrates Can Teach Developers About Talking to AI

Most bad prompts are not bad because they are short.

They are bad because they ask the model to solve a problem the human has not understood yet.

That sounds harsh, but every developer has seen a version of it. Someone pastes a vague error into a chat window and asks for a fix. Someone describes a feature in three lines and expects production-ready architecture. Someone says "make this better" without saying better for whom, under what constraint, or compared with what existing behavior.

The model answers anyway, because that is what models do.

The result may be fluent. It may even be useful. But it often has the same problem as a confident junior developer with no context: it moves before the question has earned an answer.

This is where Socrates starts to look strangely modern.

He did not have a terminal, a codebase, or a context window. But he understood something prompt engineering keeps rediscovering: the quality of the answer depends on the quality of the question, and the best question is usually not the first one.

Prompting Is Not Commanding
A lot of people talk to AI as if it were a vending machine.

Input request. Receive output. Complain if the output is not what they imagined.

Developers know this pattern from software requirements. "Build a dashboard" is not a requirement. "Make it fast" is not a performance target. "Add AI" is not a product strategy. These phrases point toward a need, but they do not define the work.

A prompt works the same way. It is not just an instruction. It is a tiny interface between your intent and the system's possible outputs.

If that interface is sloppy, the model has to guess. It guesses the audience. It guesses the format. It guesses the edge cases. It guesses how much detail you want. It guesses whether "simple" means beginner-friendly, minimal code, fewer dependencies, or fewer concepts.

Then we act surprised when the answer is technically correct and still wrong.

Socrates would probably be annoying in a Slack thread, but useful in a code review. He would not begin with "here is the solution." He would ask what we mean by solution.

The First Prompt Is Usually A Draft Of The Problem
One of the best mental shifts for developers is to stop treating the first prompt as a request for an answer.

Treat it as a draft of the problem statement.

That changes the whole interaction. Instead of asking:

"Write a function that validates user input."

You might ask:

"Before writing code, help me identify what validation rules are implied by this form, what could be safely checked client-side, and what must be enforced server-side."

That second prompt is not longer for the sake of being longer. It changes the job. The model is no longer racing toward code. It is helping expose assumptions.

This is the Socratic move: delay the answer long enough to make the question sharper.

In practice, it saves time. Many bad AI outputs are not hallucinations in the dramatic sense. They are reasonable answers to underspecified questions.

Ask For Distinctions, Not Just Solutions
Socrates liked distinctions because distinctions reveal hidden confusion.

Developers should like them too.

When an AI answer feels mushy, asking for "a better version" often produces a more polished mush. Asking for distinctions produces signal.

What are the tradeoffs between these two approaches?

Which part of this code is domain logic and which part is UI state?

What assumption would make this answer fail?

Which requirement is missing?

What would a simpler implementation leave out?

Those questions force the model to organize the problem space instead of decorating the first idea.

The same habit helps outside code. If you are organizing a small audio project, naming files, cleaning metadata, or preparing tracks for publishing, the useful question may not be "fix my files." It may be "what information has to stay consistent so this library is easy to search later?" A tool like Free MP3 Tag Editor Online fits that kind of workflow because metadata is really a questioning problem: title, artist, album, cover, order, and context all decide whether future-you can find what present-you made.

That is not glamorous. It is also exactly the sort of detail that separates a pile of outputs from a usable system.

Good Prompts Create Boundaries
Developers spend a lot of time thinking about boundaries: modules, interfaces, schemas, permissions, test cases, API contracts.

Prompting needs the same instinct.

A weak prompt says:

"Build me a login system."

A stronger prompt gives boundaries:

"Design a simple login flow for a small Next.js app. Use email/password only. No social login. Explain the database tables, server-side checks, common failure states, and the minimum tests before showing code."

The second prompt does not guarantee a perfect answer. It does something better: it makes the model's mistakes easier to see.

Without boundaries, every answer becomes hard to evaluate. With boundaries, you can tell when the model added an unwanted dependency, skipped a security concern, invented a feature, or optimized for the wrong thing.

This is why "prompt engineering" is a slightly misleading phrase. The real skill is not finding magic words. It is designing a useful conversation.

The Model Should Not Be The Only One Thinking
The most dangerous AI workflow is the one where the human stops forming an opinion.

You ask. It answers. You paste. It breaks. You ask again. It answers again. Eventually the codebase contains six layers of decisions nobody remembers making.

That is not collaboration. That is outsourcing attention.

A better pattern is slower at the beginning and faster by the end:

State the goal.

Ask for missing constraints.

Compare two or three approaches.

Pick one intentionally.

Ask for implementation.

Review the result against the constraints.

This feels almost too obvious, which is why people skip it. But it is the difference between using AI as a text generator and using it as a thinking partner.

Socrates did not ask questions because he lacked opinions. He asked because questions make weak opinions visible.

Generative Tools Reward Clear Taste
The same lesson shows up in creative tools.

When someone uses an ai music generator from text with vocals, the prompt is not just a command for sound. It is a description of taste: mood, genre, tempo, vocal style, structure, emotional direction, and what should be avoided.

Vague input can still produce something interesting, but it is hard to steer. Clear input gives you a better first draft and a better way to judge the result.

That mirrors software work. A vague ticket can still lead to code. A clear ticket leads to code you can review.

The point is not that every prompt needs to be long. Some of the best prompts are short because the context is already clear. The point is that the prompt should contain enough judgment to make the output accountable.

If you cannot say what good looks like, the model cannot reliably aim at it.

A Socratic Prompting Habit For Developers
The simplest useful habit is to add one reflective step before asking for the final answer.

Before "write the code," ask:

"What are the assumptions in this request?"

Before "fix the bug," ask:

"What are the most likely causes, and what evidence would distinguish them?"

Before "improve this design," ask:

"What user goal is this design failing to support?"

Before "generate the content," ask:

"What would make this feel generic, and how can we avoid that?"

These are not fancy prompts. They are basic engineering discipline applied to a probabilistic collaborator.

The model becomes more useful when you make it explain the shape of the problem before it solves the problem. You become more useful because you have something to disagree with.

That disagreement is important. The goal is not to get the model to sound confident. It is to create enough clarity that your own judgment wakes up.

The Oldest Debugging Tool Was A Question
Software development has always been full of questions.

Why did this pass locally? What changed? What does the user actually need? What does this abstraction hide? What happens if the request fails halfway through? Why does this feel harder than it should?

AI did not invent that discipline. It made the cost of skipping it more visible.

When the answer is instant, the question matters more, not less. Speed can hide confusion. Fluency can hide missing context. A beautiful response can still be built on a broken premise.

That is why Socrates belongs in the AI conversation more than another list of prompt hacks.

He reminds us that intelligence is not only the ability to answer. It is the ability to notice when the question is not ready.

For developers, that may be the real prompt engineering skill: not writing longer prompts, not memorizing templates, not tricking the model into better behavior, but asking the kind of questions that make both human and machine less likely to fool themselves.

The future may be full of agents, copilots, and generated drafts.

The work still begins with a question.

Top comments (0)