Posted on Aug 26
Being a Developer in the Vibe Coding Era
I was looking at results of the Stackoverflow Developer Survey 2025, and one aspect caught my attention: the percentages relating to developers’ confidence in the accuracy of AI tools.
As mentioned in the comment on the results related to this question, more developers do not trust AI tools than trust them. In my opinion, this is good news, although I am concerned about that 3% who have a high level of trust in AI tools. This is not to demonize AI tools, but rather to address the evolving role of developers.
Developers and Libraries
Some time ago, I wrote an article about whether using a library or framework exempts developers from understanding the specifics of the underlying tools and technologies. I addressed this issue by referring to the cult book Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig. Paraphrasing the book, I identified three types of developers:
- The classic developer, who cannot resist the curiosity to see how a tool works. If possible, they will even venture into modifying it. This is what we commonly call a hacker.
- The romantic developer, who just uses the library or framework as it is. He is more interested in achieving his desired result and appreciates the library more for how easily it allows him to do so than for how it works internally. The details of the tool are none of his business.
- The pragmatic developer uses the library to solve a problem but does not overlook the advantage of understanding how it works internally. They may not know all the internal details of the library, but they have a high-level understanding of its architecture and can delve deeper if necessary.
Looking at the data on developers’ trust in AI tools, I was reminded of that article. I thought that, nowadays, that classification and the need for pragmatic rather than romantic developers is even more relevant. If we want to translate this classification in terms of trust, the classic developer does not trust the tool; the pragmatic developer trusts it to a certain extent but tries to keep everything under control; and the romantic developer has blind faith in the tool.
If blindly trusting a traditional library has its drawbacks, then how can we trust code generated by an AI tool?
Towards a New Way of Being Developers?
With the rise of vibe coding, a new Romanticism of software development seems to have emerged, generating widespread enthusiasm. However, if code written by a developer is often unreliable, how can we trust code generated by an AI tool that has no real understanding of what it is doing? I am referring, of course, to tools based on LLMs, the current mainstream of AI.
The answer is that we should not trust it. Ever!
Should we give up on AI code generation tools? Absolutely not! We should use them because they can improve the quality of our code more than increase the production speed.
However, we should avoid becoming romantic developers who get excited because we can accomplish in a couple of hours what would have taken days or even weeks a few months ago. We must be pragmatic and verify that the generated code does what we expected. If we want to take it a step further and become classic developers who understand how the tool generated the code, even better. At the very least, it will help us formulate better questions.
The developer’s job is not—and never has been—to produce code. Their job is to provide a solution that works as expected. As a vibe coder, you are responsible for verifying the code generated by the AI tool. You must understand the code and modify it if necessary. Some of the time saved by using the AI tool will need to be spent reviewing the results.
In short, you should never trust what an AI tool proposes. You must always analyze and validate the results. This means that you cannot stop learning programming languages, their best practices, design patterns, and the technologies on which your application is based. You will also need to learn the new things that the generated code will probably include.
Keep in mind that if something goes wrong—rarely does everything go smoothly—you are responsible for the code generated by the AI tool.
The Developer Is Dead. Long Live the Developer.
To those who think that AI will replace developers, I would say that they are right. In a few years—or even months—there won’t be any more developers. There will be no more developers as we understood them until a few years ago.
Once the Romanticism of software development has passed, we will find that the role of developers has been redefined and probably expanded. We will likely have a new title, such as “code manager” or “coded solution provider.”
However, there will still be a need for technical skills in code review and validation: high-level skills that minimize bugs and security issues in code generated by AI tools.
We cannot afford to be romantic developers who blindly trust the code generated by AI tools. Professional developers should never accept code produced by an AI tool without question. They must question it, employing the critical thinking that many believe is threatened by AI. After all, the saying “Trust, but verify” still holds true.