If there is one thing I have learned in my years as an entrepreneur computer scientist, it is that 10x engineers exist and make a difference. People like Jeff Dean, John Carmack, Andrej Karpathy, George Hotz and many others can create code that goes much further than any CEO or product manager could imagine. They are the ones who invent the combustion engine when most people hoped to add a few more horses to their carts. The true inventors.

They usually start programming very young, like Mozart playing the piano. They are full-stack. They even know about electronics, they could program an operating system or a database from scratch and at the same time create a new front-end framework better than React. They visualize algorithms and data structures in their heads, like John Nash in A Beautiful Mind. They can do complex things because they know all the puzzle pieces. A computer science graduate is supposed to know all this, but it is impossible to assimilate so much in just 4 years with an average head. That is why most will dedicate their professional career to doing plumbing for the libraries that these people create.

The feeling that many of us have, perhaps already as old-timers in our thirties, is that with each generation there are fewer of this type of programmers. Perhaps because the new generations have grown up with computers and mobile phones that almost never break, and are irreparable. In addition to having a thousand more forms of entertainment that make almost none of them get bored enough to start learning to program a video game in assembly. However, the world needs 10x developers more than ever. And although there is all the money in the world to pay them, almost no one finds them!

Lately I spend many weekends absorbed in programming little things using Cursor.sh or Github Copilot. And I cannot stop thinking if AI-assisted programming will multiply the capabilities of average programmers by x10 or only x1.3 or x2. Or if the 10x will multiply by x100 or x1000. My thesis right now is that the gap between the 10x and the current average will become even bigger with AI. I will try to explain it.

The first obvious thing that AI already solves very well is gaining more flow programming without having to constantly consult the documentation of a library or syntax of the language itself. We increasingly develop on the shoulders of giants, almost all the wheels are invented and the creative part (for basic commercial software) is limited to connecting pieces. Even with no-code tools you can already do things that a few years ago required months and a handful of programmers. CRUDs are already starting to be a commodity with things like Flutterflow. I think that here many 10x programmers still have the advantage of simply having more experience from having put in more hours and more intuitions of how to work with often poorly documented libraries. So in this respect the gap with the average (regarding productivity) may become smaller.

But for it to help you autocomplete code, you first have to be clear about what you want to do, in a broader sense. And to be clear about what you want to do, you must understand very well what problem you are solving. Even if it makes sense to solve that problem. You even have to predict how the product might evolve in the coming months or years, even better than the business people. An architecture is only perfect for very specific requirements and time and money constraints. In theory, a well-trained AI will also be able to receive all this information as one or many prompts and take into account an infinite range of technologies, design patterns, etc. to propose a solution as boiler plate, or even perfectly functional by iterating on its own errors and human feedback on whether it is the result you expected or not. I have started experimenting with this using Open Interpreter from the terminal, and it is amazing the things it can do if you leave it in automatic mode.

Although if you want to create something truly new, and in an increasingly competitive economy only the differential can win, maybe an LLM (for now) alone is not as creative and winning as an expert human. For now these LLMs "only" feed on existing and public knowledge on the web. They are not agents interacting with the outside world, experimenting, creating new information, extracting that tacit info from other humans and with intrinsic motivations to achieve something. When that starts to happen with AIs, who knows what the world will be like...

In theory, anyone will be able to ask and re-ask an AI to learn as if you had a private tutor who knows everything available 24/7, practically for free and much more efficient than searching on Google. But ultimately, we humans have limits on how many questions and re-questions we can keep asking without getting exhausted. Our concentration has limits. TED talks last less and less. Knowing how to ask good questions will allow you to reach the solution sooner in fewer jumps. I think that programmers who are able to have better heuristics (due to a mix of their IQ, curiosity, previous knowledge and patience...) will win the game by a landslide assisted by AI over those who try to reach the solution by AI-assisted "brute force". In that broad spectrum of people diagnosed as autistic, to those who have ADHD, I think there are different types of programmers who shine more or less in some tasks or others due to their capacity for concentration vs creativity. And I think that 10x programmers are that rare bird with a great capacity for concentration and at the same time creative and curious.

Even so, average programmers should also be much more productive than they are now, but if they continue to self-limit themselves to translating well-defined requirements into code, I think they will end up crying as already happens to many translators with the latest AI models. AI should super empower us all. No one knows what will happen. Hopefully it will serve to create a generation of developers dedicated to solving truly important problems, and not so much to make people click more on ads.