JetBrains and UPenn Studies Identify Negative Expertise in AI-Assisted Coding
Empirical studies from JetBrains and UPenn reveal that unconstrained AI assistance causes novices to skip planning and score up to 17% worse. The most successful developers cultivate negative expertise—the ability to actively reject unhelpful AI suggestions.

Impact: Medium
Why it matters
You can improve code quality by practicing negative expertise: explicitly planning system architecture before prompting and filtering out low-quality AI suggestions.
TL;DR
- 01Unguided AI code generation can reduce true comprehension and caused a 17% drop in UPenn learning benchmarks.
- 02Cultivate 'negative expertise' by actively reviewing, challenging, and rejecting low-quality AI suggestions.
- 03Lock down architecture and planning manually before asking an LLM to generate implementation code.
Key facts
- UPenn Study Size
- 1,000 students
- Unguided AI Learning Deficit
- -17% vs textbook learning baseline
- Core Success Factor
- Negative expertise (ability to filter unhelpful suggestions)
The Inverted Learning Trap
Interacting with LLMs in software engineering often creates an inverted learning model where an inexperienced developer must guide a non-judgmental model across unfamiliar domains. When developers lack domain expertise, prompt-sensitive models frequently lead them toward superficial implementations.
Key Findings from JetBrains and UPenn Research
- Skipped Planning: Developers relying heavily on Copilot bypassed problem decomposition and jumped directly to generated code.
- Recursive Error Fixing: Novices relied on the LLM to fix bugs introduced by earlier AI prompts, losing track of their mental model.
- 17% Performance Deficit: In UPenn's controlled study of 1,000 students, unguided generative AI usage reduced learning outcomes by 17% relative to textbook baselines.
- Illusion of Competence: In both studies, participants using heavy AI assistance consistently believed they were performing better than their unassisted peers despite lower actual comprehension.
Building Negative Expertise
The JetBrains study highlighted that top performers maintained strong fundamentals by treating AI suggestions with skepticism. Rather than accepting generated code wholesale, developers who succeeded used AI only to accelerate pre-planned architectures and systematically rejected unhelpful diffs.
✓ When to use
- Designing critical software architecture and learning new programming paradigms.
- Reviewing and verifying complex AI agent output across production codebases.
✕ When NOT to use
- Automating repetitive, well-defined boilerplate where the solution space is fully understood.
What to do today
- Write out a clear interface specification or task plan before initiating LLM code generation.
- Perform line-by-line manual code audits of AI-generated diffs to spot subtle architectural regressions.
Sources