Fewer people are signing up to learn programming. Undergraduate enrollment in computer and information sciences fell 8.4 percent at four-year schools this spring and 11.2 percent at two-year colleges, according to the National Student Clearinghouse. That happened while overall undergraduate enrollment grew 1.3 percent. At the graduate level, the fall 2025 drop was 14 percent.
Some of that is the job market. Some of it is a reasonable question a 19-year-old might ask: why spend four years learning to write code when Claude writes it faster? I don't think that student is wrong per se. The part that worries me is what comes after, when almost all the code in the world is written by AI and the number of people who can actually read it keeps shrinking.
Somebody has to check it, right? AI-written code isn't careful by default. When Veracode gave more than 100 language models 80 coding tasks with a secure and an insecure way to solve them, the code introduced security vulnerabilities in 45 percent of cases. The models failed to guard against cross-site scripting 86 percent of the time. Veracode's CTO, Jens Wessling, said "models are getting better at coding accurately but are not improving at security," and bigger models didn't do much better than small ones. That study is from 2025 and models have improved since, but nobody serious is claiming the problem is gone.
Today the checking falls to developers, and a lot of the job has already shifted from writing the code to simply reviewing. We wrote about that change in how the work moved from coding to checking. The catch is that reading code well is a skill you mostly build by writing it badly first. You learn what a SQL injection looks like by writing one and getting burned. If a whole generation skips that step, the pool of people who can spot the bad line gets smaller every year, right as the amount of code to review explodes.
The obvious answer is to have AI check the AI. That already happens. Claude reviewing Claude's code catches real bugs. But a second model trained on similar data tends to share the first one's blind spots, and you can't fully trust a model to explain its own work either. Anthropic's interpretability research found that Claude "sometimes makes up plausible-sounding steps to get where it wants to go." Asked how it added two numbers, it described carrying the one, while the trace of what it actually did showed a different method entirely.
The checks I'd trust more are: tests that have to pass, type checkers, permission rules that block certain commands, and sandboxes that limit what code can touch. They don't need anyone to understand the code to work. They still need a person who knows what the tests should check, though, and that person needs to understand software even if they never type a for loop.
People compare this to assembly language. Almost nobody writes it by hand anymore, and the world is fine, because compilers turn readable code into machine code the same way every time and they've been tested for decades. An AI model isn't like that. Ask it twice and you can get two different programs. That's why I don't think "nobody needs to read code" follows from "nobody needs to write it." If you're in that spot now, our guide to reading code you didn't write is a decent place to start.
Will AI invent its own programming language?
People are already building languages aimed at AI. In January, FreeBSD co-founder Jordan Hubbard released NanoLang, which Simon Willison described as "A minimal, LLM-friendly programming language with mandatory testing and unambiguous syntax." It compiles down to C. Willison had Claude write a program in it. The first attempt didn't compile, and Claude Code fixed it after looking at the project's examples. He'd argued a couple of months earlier that AI makes it easier to launch a new language, since the basics of most languages fit in a few thousand tokens that a model can read.
NanoLang is still meant to be readable by people, and its tests are mandatory. That's the healthy version. The version that would worry me is a language only LLMs can read, optimized so tightly for machines that human review stops being possible at all.
In a sense, something like that already exists inside the models. Anthropic's same research found Claude "sometimes thinks in a conceptual space that is shared between languages," a kind of universal language of thought that isn't English or French or Rust or Python. It's not a programming language anyone writes in, but it shows models don't need our words to do their work.
For now, AI has a strong reason to stick with the languages we already use: that's where its training data is. Claude is noticeably better in TypeScript and Python than in C and C++, which we covered in why Claude is great at TypeScript and shaky at C++. A brand-new language starts with none of that advantage. That keeps code in languages people can read, at least as long as there are still people who learned how.
Sources
National Student Clearinghouse Research Center: Computer science enrollment is cooling - Spring 2026 drops of 8.4 percent at four-year institutions and 11.2 percent at two-year colleges, overall undergraduate growth of 1.3 percent, and the 14 percent graduate decline in fall 2025.
Veracode: AI-generated code poses major security risks in nearly half of all development tasks - The July 30, 2025 study of 80 tasks across more than 100 models, the 45 percent vulnerability rate, the 86 percent cross-site scripting failure rate, and Jens Wessling's comments on security not improving with model size.
Anthropic: Tracing the thoughts of a large language model - Claude making up plausible-sounding steps, the addition example, and the conceptual space shared between languages.
Simon Willison: NanoLang - Jordan Hubbard's LLM-friendly language with mandatory testing that compiles to C, and Willison's test with Claude.
Simon Willison: LLMs for new programming languages - The argument that LLMs make it easier to launch a new language.






