Does AI Actually Slow Down Junior Developer Learning?
One study found a 4.15-point quiz gap after AI-assisted coding. See what it measured, what it did not, and how to use AI without delegating the learning.
In one unfamiliar-library experiment, randomized AI access produced lower immediate test performance: 4.15 points lower on a 27-point quiz. It did not show that delegation caused the gap; usage-pattern clusters were exploratory groups of 2–7 people, and it did not test juniors generally or learning over months.
Using AI for unfamiliar code is like following a satnav through a new city: you may arrive faster and still be unable to draw the route tomorrow. Asking why each turn matters builds the map in your head too.
AI access reduced immediate test performance in one unfamiliar-library experiment. The experiment did not show that delegating reasoning caused the gap: that idea comes from exploratory clusters of two to seven people and remains a hypothesis to test. It is not evidence that every junior who uses AI learns less, nor that the effect lasts for months.
What the study actually found#
Shen and Tamkin’s 2026 preprint randomized 52 people into AI-assisted and no-AI groups. Each learned the unfamiliar Python Trio library by completing two tasks in at most 35 minutes, then took a 14-question, 27-point quiz without AI. The quiz tested conceptual understanding, code reading and debugging immediately after the work.
The primary paper reports a difference of 4.15 points on a 27-point quiz. Expressed against the available score, that is 15.4 percentage points. The authors describe it as a “17% score difference”; later coverage often rounded the group scores to 67% and 50% and called that a 17-point gap. Those phrasings are not interchangeable. The defensible result is the paper’s raw gap, and it was statistically significant (p = 0.01). Task completion time did not improve significantly on average.
This was not, despite some coverage, a study made up mostly of junior engineers. Only four of the 52 participants reported 1–3 years of coding experience; 29 reported seven or more. What made them novices was Trio: everyone had more than a year of Python experience, used Python at least weekly and had never used this library. The result applies most directly to experienced programmers learning an unfamiliar tool, not to junior developers as a class.
The quiz followed the tasks immediately. The experiment did not measure retention months later, performance across a job, or whether a habit changes with sustained use. Even “learning” needs care here: the measured outcome was immediate understanding and test performance after one short new-library exercise.
The useful clue lies in the paper’s exploratory review of tiny behaviour clusters, not in a second randomized comparison. Three high-scoring patterns averaged at least 65% and kept the participant cognitively engaged: asking conceptual questions, asking for code and explanation together, or generating code and then questioning it. Three low-scoring patterns averaged below 40% and handed over code generation or debugging. Each cluster contained only two to seven people, so treat the pattern as a mechanism to test, not a universal threshold.
METR measured a different question#
METR’s 2025 randomized trial involved 16 experienced open-source developers completing 246 real issues in repositories they already knew. With early-2025 AI tools allowed, they took 19% longer. That is a productivity result, not a learning result, in almost the inverse setting: experienced maintainers, familiar codebases, real issues, and elapsed time as the main outcome.
Putting the numbers beside each other does not produce a law that AI slows developers by some blended amount. It produces a better question: what is the task asking the human to acquire? If the answer is “nothing new,” assistance may simply remove work. If the answer is “the mental model needed to diagnose this system next time,” completion and learning are separate outputs. The site’s guide to measuring a factory honestly covers METR’s productivity result in its proper context.
Check what you delegated#
Tool choice is a weak proxy for learning. The sharper distinction is whether the tool removed typing or removed the decision you needed to practise. Classify five real prompts, not five prompts you wish you had written.
Five recent AI turns
What did the tool do with the thinking?
For each of your last five useful prompts, choose the closer description.
Classify all five turns to see the pattern.
This is a reflection aid, not a validated assessment. It describes what your prompts delegated; it does not measure skill.
Predict, then reveal
Step through the Trio bug
Commit to what the API sees before revealing the patch. This is the decision a complete generated fix can hide.
Choose a prediction before revealing the first observation.
- Failure: calling
fetch_one(user_id)immediately creates a coroutine object. Trio needs an async function plus its arguments, so it raises aTypeError. - First fix: use
nursery.start_soon(fetch_one, user_id). The tasks run, but the returned list is still empty. - Complete fix: start a small
storefunction that awaits each fetch and stores each result by user ID. After the nursery closes:3 users: 7, 11, 42.
The prediction makes you retrieve the function-versus-coroutine distinction. Accepting a complete patch can make the same program pass without practising that decision.
This is a reflection aid, not a validated assessment; its result is a prompt for reviewing your own transcript, not a skill score.
A practical rule follows. Before asking AI, write one prediction: what is failing, where, and what evidence would change your mind. Ask for the smallest answer that lets you test it. After the fix, close the transcript and explain the mechanism. That is the learning version of keeping deterministic steps separate from AI steps: you decide which part must remain reproducible in your own head.
The same bug, two conversations#
Suppose a new Trio user has this 6-line function. It raises a TypeError, and even after that is fixed it still returns an empty list.
DELEGATION
start_soon accepts.QUESTIONING
fetch_one(user_id) return here?”start_soon expect as its first two inputs? Do not rewrite it.”Both routes can end at the same implementation. The nested store function gives each child task an explicit place to put its value, while start_soon receives a callable and an argument rather than the coroutine produced by calling it early.
The test uses three IDs, waits for the nursery to close, and checks all three returned values rather than merely checking that no exception was raised.
The questioning route forces three retrievals: a coroutine is not an async function; start_soon receives the function and its arguments separately; concurrently started tasks need an explicit place to put results. The learner makes the edit and can later reproduce why it works. The delegation route optimizes the current ticket. The questioning route also leaves something behind.
A harder market raises the stakes#
SignalFire’s June 2026 talent report says entry-level tech hiring continued to contract while employers favored experienced individual contributors. It also says engineering hiring remained slightly below its 2019 pace and describes an unusually large supply of experienced candidates per opening. Its proprietary dataset tracks 650 million-plus people and 80 million-plus organizations, but the published report does not isolate AI as the cause of fewer junior hires.
That market context changes the cost of the habit, not the evidence about cognition. A junior developer needs shipped work and the judgement to defend it. AI can help produce the first while quietly withholding the second. The distinction matters because the move from junior toward senior is not measured in code volume; it is measured in the decisions you can make while the answer is still open, as the seniority guide shows.
IF YOU REMEMBER ONE THING
Use AI freely to remove work you already understand. When the task contains a concept you need tomorrow, make the tool answer questions and keep the decision with you.
Questions people also ask
6 QUESTIONSDoes GitHub Copilot or ChatGPT hurt junior developers' learning?
One short randomized experiment found lower immediate quiz performance when AI was available. It did not randomize how people used the AI: small exploratory clusters associated unexamined code generation and AI-led debugging with lower scores, but cannot establish that those styles caused the gap. The result concerns an unfamiliar library under time pressure, not junior developers generally or a permanent effect.
Should a junior developer turn AI off while learning?
Not for every task. Turn it off, or restrict it to hints, when the point of the task is to acquire a concept you cannot yet explain. Use it more freely for familiar boilerplate, then review and test the result. The useful boundary is unfamiliar reasoning versus already-understood execution, not study time versus real work.
How can I use AI without becoming dependent on it?
State your prediction before asking, request one clue or explanation rather than a complete patch, make the edit yourself, and finish by reproducing the fix from a clean file or explaining it without the transcript. Dependence becomes visible when the code works but you cannot predict its next failure.
Why can't I explain AI-generated code five minutes later?
Reading a plausible answer can create recognition without recall. You saw the reasoning but did not have to retrieve it, choose among alternatives, or use an error to revise your own model. Close the answer and reconstruct the control flow, assumptions, and failure case before keeping the code.
Is vibe coding making entry-level engineers worse at debugging?
The study found its largest group difference on debugging questions, and its small qualitative clusters linked AI-led debugging with lower scores. That makes delegated debugging a credible risk, not a settled verdict on every entry-level engineer or every AI workflow.
Are companies hiring fewer juniors because AI can do junior work?
Entry-level hiring has contracted, but the evidence here cannot assign one cause. SignalFire's 2026 talent report describes fewer early-career seats alongside a broad post-2023 hiring slowdown and a larger supply of experienced candidates. Its market data provides context, not a causal test of AI replacement.