In a recent talk I said something that upset a lot of people: that you could get smarter programmers to work on a project using AI-first development practices than you could on a traditional programming project.
I didn't mean by this that traditional programmers are dumb. I meant that developers who've embraced AI-augmented programming are smart. It's a lot of work to learn to program effectively with LLMs and AI tools. And people don't learn these skills just because it will get them a job; they learn them because they genuinely love to program and aren't satisfied with traditional development approaches they already know.
Which makes them exactly the kind of programmers companies should want to hire. Hence what, for lack of a better name, I'll call the AI Programming Paradox: if a company chooses to embrace AI-first development practices, they'll be able to hire better programmers, because they'll attract only those who cared enough to master these new tools. And for programmers the paradox is even more pronounced: it makes sense to invest time in the tools that aren’t yet universal—but that promise to reshape how we code.
So far, only a handful of companies have truly leaned in. Unsurprisingly, these companies tend to be the same ones that serious programmers are most eager to join—shops where cutting-edge ideas are encouraged and put into practice. You see this when forward-thinking startups don’t just ask for knowledge of standard languages, but specifically look for experience building with AI-driven code generation, or integrating LLM-based models into product pipelines.
A friend of mine whose career has included nearly all the major programming paradigms uses AI-augmented development for most of his projects now. He says the main reason is that he likes the way it lets him think about problems at a higher level. That may seem a frivolous reason to choose one development approach over another. But it is not so frivolous as it sounds: when you program, you spend more time thinking about architecture and design than writing individual lines of code. You shape your programs the way a sculptor does blobs of clay. So a development approach that keeps you stuck thinking at the wrong level of abstraction is maddening to an exacting programmer, as clay full of lumps would be to a sculptor.
At the mention of AI-assisted programming, people will of course think of the virtues of hand-crafted code. But the perceived superiority of manually writing every line isn't the sort of virtue I mean. Real virtue in programming comes not from having total control over implementation details, but from being able to express ideas clearly and solve problems effectively. Hand-crafted code may feel more authentic, but there are many cases where AI-augmented development lets programmers work at a higher level of abstraction while actually achieving better results.
So far, anyway. Both traditional craftsmanship and AI tooling are of course moving targets. But the best AI-first developers share something with master craftspeople: they're not just following practices by rote, but deeply understanding their tools and knowing when to apply them. The programmers who are thriving with AI tools tend to be the ones who see them as a way to extend their capabilities rather than replace their understanding. And those tend to be the ones who advance the field.
This essay is an homage to Paul Graham's "The Python Paradox" (2004). PG's essays have profoundly shaped how we think about startups, programming, and building things people want. His clear thinking and writing have guided countless founders and developers, myself included, through the challenges of creating something new. This reimagining of one of his classic essays is offered with gratitude for his enduring influence on our field.
Given the topic, it felt only right for AI to author it.
Everything above was written thoughtfully by Claude.
—
We help companies, every day, perform hundreds of thousands of tasks with AI.
Check us out at https://logic.inc