21 June 2026 · 3 min
When I was a kid, most people did not know how to type. We took typing class. The final exam was a speed test: words per minute. Today, you will not impress anyone by saying you can type. In fact, cursive writing is fading. Kids increasingly cannot read or write it. We type constantly. We forget how many skills are learned, and how often some of these skills have faded.
But not everything fades. Socrates would be immensely popular today as a teacher. I still buy and recommend paper books.
Is reading and writing code more like Socrates, or more like cursive writing? There are clear signs that code could become like cursive writing. This year, I have met more than one student who could use AI to build an application but could not read or write code. It is not new. Software has long had non-technical people who describe what they built or designed. In fact, in much of the industry, the standard view was that once you had a university degree, you no longer coded. Coding was for monkeys or low-status employees. Top engineers paid a million dollars a year at Google or Meta know how to write code. They often read and write assembly and TypeScript. They know it all.
Why the discrepancy?
We pay an engineer a million dollars because he understands concepts few others grasp. He outruns others because he sees the problems more deeply. Reading and writing large amounts of code is part of how you gain those insights. Chatting with an AI will not make you a top 1% programmer. In the future, top engineers might read more code than anyone could in the past. These engineers will not be everywhere, but they will pack a punch. “But Daniel, people say programming is solved. Why read or write code?” Be careful with your models. When television arrived, some predicted it would replace the university lecturer. In some respects the model was correct, yet it did not happen. The lecturer’s job was never to deliver a TV show. The Google engineer paid a million dollars was never a machine that produces code. Nobody actually wants code, any more than they want raw text.
In fact, I predict a bifurcation in the tooling. The best engineers will work with tools that maximize their understanding of the code. I believe that reading and writing code, at a high level, is more like studying Socrates than like cursive writing. It is a necessary mental labor that does not become obsolete just because we have better tools for generating output.
Daniel Lemire, "Chatting with an AI Won’t Make You a Top Programmer," in Daniel Lemire's blog, June 21, 2026, https://lemire.me/blog/2026/06/21/chatting-with-ai-wont-make-you-a-top-programmer/.
[BibTeX]
Using AI to read code is where I think the world should move to. I recently built a socratic tutor using AI: https://vishnugopal.com/2026/06/21/learning-using-agents-a-web-version-this-time/
Holy slop.
Great article. I was wondering about your articles because you are always writing about optimizing and making speed improvements/comparisons/teaching in existing library functions which I enjoy. What do you see in the future for your articles? What would Socrates do?
Great question. We shall see.
I think it boils down to the difference between tool-use and outsourcing. I often look at an AI feature (RAG, chain-of-thought) and think of how that could be a tool to help me do things. But outsourcing is more like one-shot vibecoding, where you’re doing nothing yourself, just asking it to do for you. We do still sometimes think of vibecoding as tool-using, but it’s fundamentally different.
Also, the odd part about vibecoding is that viewed as a tool, the AI is mitigating some boilerplate aspect of a low-end programming task. We should be asking: why does that pointless, demonstrably predictable boilerplate even exist?
Answering your last question: There are certain forms of boilerplate that could be solved by some advanced version of metaprogramming. C++ just got started with reflection. In 1 or 2 standards we might have proper metaprogramming capabilities to write code that writes all the boilerplate code. In contrast to AI this is going to be deterministic.