Know the Code, Write the Spec

ETH Zurich had 100 students build apps by prompt alone. Computer science knowledge predicted results best, writing skill added its own share, and frequent LLM users scored lower.

Know the Code, Write the Spec β€” AI
πŸ“Œ
TL;DR

Setup. Three 15-minute app builds with Claude Sonnet 4 and the code hidden, plus tests of CS knowledge, writing and general reasoning. Preregistered, published at CHI ’26.

Strongest predictor. CS knowledge, r = 0.39. It held after controlling for general reasoning.

Writing. r = 0.29, and it adds to CS rather than overlapping with it. About half of that link ran through prompt quality.

Frequent LLM users. Lower vibe-coding and writing scores, no difference in CS knowledge or reasoning. A correlation, not a cause.

Related work. Coding agents changed already-correct code in 36.5–68% of runs. Mostly junior engineers who learned a new library with AI scored 17 points lower on the follow-up quiz.

The study

ItemDetail
Paperβ€œComputer Science Achievement and Writing Skills Predict Vibe Coding Proficiency”. Sverrir Thorgeirsson, Theo Weidmann and Zhendong Su, ETH Zurich. CHI ’26, Barcelona. Preregistered.
Participants100 students from ETH Zurich and the University of Zurich. All had completed an introductory CS course and had used LLMs for programming.
Vibe codingDescribe the program in natural language, judge it by what it does, iterate. No direct edits to the code.
TasksThree builds, 15 minutes each: recreate a meal planner from a sample, add features to a course-registration app, recreate an abstract app whose labels give nothing away.
EnvironmentChat on the left, live preview on the right, rollback. Model: Claude Sonnet 4. The code was blurred; nobody could read or edit it.
Other measuresCS knowledge: SCS1, a language-independent pseudocode test. General reasoning: ICAR16. Writing: a 20-minute essay explaining a technical concept to a non-expert, scored by two raters. LLM use: self-reported frequency, 1 to 5.
ScoringGraded blind, feature by feature, 0 to 1. Average 0.45. The abstract app averaged 0.34.

What predicted success

MeasureCorrelation with the scoreControlling for general reasoning
CS knowledger = 0.39Still significant, partial r = 0.28
General reasoningr = 0.35The control itself
Writingr = 0.29Not significant, partial r = 0.19 (p = .066)
Prompt quality, graded blindr = 0.48Not reported
LLM-use frequencyr = βˆ’0.26Not reported
  • CS knowledge and writing are separate skills. They barely correlate with each other (r = 0.13).
  • With both in one model, CS carries about twice the unique weight: 12.5% of the variance on top of writing, against 5.9% for writing on top of CS.
  • Writing also overlaps with general reasoning (r = 0.37). With reasoning controlled, its link drops below significance.
  • About half of writing’s link to the score (52%) ran through prompt quality. Better writers wrote better-rated prompts, and better-rated prompts went with better apps.
  • On the meal-planner task, which needed loops, totals and thresholds, CS counted more (r = 0.32) than writing (r = 0.20).
  • The CS test was pseudocode: tracing, definitions, completing code. Concepts, not the syntax of any one language.
  • Together, CS and writing explain about 21% of the variance in vibe-coding scores. The rest is something else.

Theo Weidmann, one of the authors, to ETH News: β€œGood computer scientists can plan an app’s structure more precisely and debug potential errors faster.” And: β€œPeople who formulate clear and structured prompts achieve better results, while unclear or imprecise wording is more likely to lead to defective software.”

Frequent LLM users scored lower

LLM-use frequency againstCorrelation
Vibe-coding scorer = βˆ’0.26 (p = .010)
Writingr = βˆ’0.28 (p = .005)
CS knowledger = 0.00
General reasoningr = βˆ’0.07

Frequent users were not weaker at CS or reasoning. The gap shows up in writing and in vibe coding.

The authors’ three possible explanations:

  1. LLMs weaken students’ ability to express themselves.
  2. Students who write less well use LLMs more.
  3. Both.

Not established: the direction. The data are correlations from one sample at one point in time, with LLM use self-reported on a five-point scale.

Other evidence

SourceDesignFinding
ETH SRI Lab, March 2026Coding agents on 200 SWE-bench Verified issues whose bugs were already fixed. The right answer was to change nothing.Unnecessary changes in 36.5% (Gemini 3 Pro) to 68% (GPT-5.3-Codex) of runs; Sonnet 4.6 at 65%. An explicit β€œfix or abstain” instruction lifted correct abstention to 80.5–88.5% in the three setups tested.
Anthropic, January 2026Randomized trial. 52 mostly junior engineers learning an unfamiliar async library (Trio).Follow-up quiz: 50% with AI, 67% without. Largest gap on debugging. Time saved: about two minutes, not significant.
METR, July 2025Randomized trial. 16 experienced open-source developers, 246 tasks in their own projects.Tasks took 19% longer with AI. The developers had expected 24% less time and afterwards believed 20% less.
METR, February 2026Follow-up with newer tools.Task time down 18% for returning developers and 4% for new ones; both intervals include zero. METR calls its data very weak evidence: many developers declined to work without AI.
Zi et al., FSE 202532 students in an introductory CS course, 160 task instances.32.5% success at understanding and judging LLM-generated code.
Lucchetti et al., NAACL 2025Beginners prompting for code, with a causal test on vocabulary.Vocabulary only correlated with failure: swapping in precise terms barely helped. What the prompt said predicted success, and a change in meaning, such as β€œprint” for β€œreturn”, hurt.

The common thread:

  • Judging output takes knowledge. Agents change code that was already correct, and beginners misjudge generated code.
  • Content beats wording. What a prompt specifies matters more than how technical it sounds.
  • Handing over the thinking has a cost: less learning, and a poor read on your own speed.

What to do with it

RuleEvidence
Keep studying the fundamentals: data structures, control flow, decomposition, debugging.CS knowledge was the strongest predictor and survived the controls.
Write the spec before the prompt: inputs, outputs, states, edge cases, what β€œdone” means.Prompt quality carried half of writing’s link to the score.
Add information, not synonyms.Content predicted success. Precise vocabulary barely helped; a wrong verb hurt.
Ask for the explanation with the code, and debug the first failure yourself.Anthropic: conceptual questions and code-plus-explanation scored 65% or more; delegated debugging scored under 40% (small groups).
Allow agents to change nothing, and put a check that can say no on every change: tests, a second model, a person.SRI: most models patched without confirming the change did anything; β€œfix or abstain” lifted correct abstention to 80.5–88.5%.
Measure speed; do not estimate it.METR: tasks took 19% longer while developers believed AI had cut their time by 20%.
Keep regular work without AI.ETH: frequent LLM use went with lower writing and vibe-coding scores (correlation). Anthropic: the AI group scored 17 points lower on the quiz (trial).

How I apply it

  • The spec and the architecture come first. Agents build from them.
  • One model writes, other models review it independently, and the decision stays mine.
  • When all three assistants hit their limits at once, those days go to work without them.

What is not known

  • Students, 15-minute tasks, a lab. Professionals on real codebases were not studied.
  • The code was hidden. Workflows where people read and edit it may give different results, as the authors note.
  • One model, Claude Sonnet 4. Newer models were not tested.
  • Several participants ran out of time close to a working app.
  • The writing test is new. Rater agreement was 0.735, under the preregistered 0.75 target.
  • Everything in the ETH study is correlational, and LLM use was self-reported.

Sources

πŸ’¬
Working with a team that wants to adopt AI-native workflows at scale? I help engineering teams build this capability β€” workflow design, knowledge architecture, team training, and embedded engineering. β†’ AI-Native Engineering Consulting
πŸ“–
Related Reading

Human Language Is the Best Programming Language β€” precise language as the interface. This study adds that CS concepts still carry the most weight.

Spec-Driven Agentic Development β€” collect, structure and freeze the spec before agents build.

The Verification Gap β€” why β€œthe model tested it” is not the same as verified.

3 AIs Hit the Limit β€” what the days without assistants are for.

Brain Rot Is the Default Setting β€” what the research says AI does to the skills you stop using, and how to keep them.