Vibe Coding - Beyond the Excitement - Part 2
- Massimiliano Turazzini
- Mar 23
- 14 min read
After Andrej Karpathy defined Vibe Coding, there was an explosion of definitions, ideas, speculations, and hype generation, which is rarely seen. I saw it happen live in the last weeks, and it was like witnessing the birth of a new world.
It was enough to give a name to the "possibility of creating code and managing it through Generative AI" for the world, not only the nerds, to notice this "new discipline " that has been interesting the most technical for many months.

Naming things is undoubtedly essential. It allows us to define, identify, and carve out a space for them in our minds. We do it all the time, with everything. It is something that we need as humans. These behaviors are studied extensively in cognitive science and psychology: simplifying helps us categorize the world into recognizable groups.
The problem is that this causes cognitive Bias.
This is why I am insisting on these psycho-things: Vibe Coding risks being one of those categories that pretend to simplify, but hide a universe.
On one hand, more experienced programmers see it as a game for those who understand nothing about computer science; on the other, the 'no dev' and aspiring ones see it as another superpower.
Who is right? Perhaps only AI, which has thus secured a new audience and new problems to solve.
Not just coding: the actual theme is Vibe Making
I want to tell you that Vibe Coding is part of something bigger: Vibe Making.
With the arrival of Generative AI we are using AI for tasks that, before, we did not know how to do well or at all, and we still feel like superheroes.
We all know how to write, but we are not writers, editors, or creatives
We all know how to paint but are not painters or artists.
We all know how to design a house (so say my architect friends), but we are not surveyors, architects, or engineers.
We all know (now) how to code, even if we're not developers.
Vibe Making is born right here when we all know how to do X, thanks to AI but we are not Xperts, when we don't treat AI like a guru rather than an intern, when we don't know how to judge the output.
And that’s not necessarily a bad thing: it’s a new way to push boundaries and push ourselves out of our comfort zone.
Trust me, code is the perfect playground to show you what really happens with 'Vibe Making'.
In the last post I told you a little about Vibe Coding and what some of the positive aspects are. Let's now look at the other side of the coin because the reality -as always- is a little more complex.
Trivializing a profession
Take a good look at this latest iceberg (by Rakesh Gohel): beneath the tip, there is a whole fleet of architectures, software layers and technical bureaucracies to handle with care.
There are years of study, experience, frustration, practice that, as in every profession, are known only by those who do that profession.

To say that 'programmers will disappear' is a somewhat cowardly and, at best, specious statement.
Not knowing and ignoring what lies beneath the surface means trivializing a very complex profession.
Not knowing what lies beneath is fine, as long as you are aware of it: it is a first step. If you are sincere, this awareness can become the key to starting programming – even if you are not (yet) a programmer.
So it's okay anyway: if we can try to play Van Gogh with AI, why not do it with coding too?
...yet let's clarify
Let’s get organized. Here’s a simple Vibe Coding map to see where you are today—and where you might be tomorrow.
Let's start with the tools and divide them into two large groups
Vibe Coding App – Platforms like Lovable or Replit are designed to be super accessible, even for those who have never written a line of code.
Classic Dev Tools – “Developer” tools, such as Visual Studio Code with Copilot, Cline, Roo Code which in turn use advanced plugins such as those seen in the previous post. They are the normal working environments perfect for those who already program.
On the other hand, we have two types of users ready to use them:
Dev – Anyone who already knows how to program (even those who stopped but aren’t rusty).
No Dev – Those who have no experience and are starting from scratch.
Both tools and users have a lot of nuances in between, I know. But I would like us to start from this widespread (and probably true) preconception: Devs are comfortable in their “classic” development environment and struggle a bit more with Vibe Coding platforms, where there is less control. No Devs, on the other hand, feel more at ease with the new Vibe Coding apps, because the road to writing even just a “hello world” in Python, without AI, would be all uphill.

🔴 A –No Dev with classic instruments: in the total Discomfort Zone
🟢 B – Devs with classic instruments: obviously in their Comfort Zone
🟢 C – No Devs with Vibe Apps: Discover an Accessible World
🔴 Q – Devs with Vibe Apps: Do they often feel limited or frustrated?
How do these two worlds fit together?
Devs will ultimately feel at home in both contexts: both with traditional tools and with Vibe Coding, although with the latter they have to be more careful about what the AI is doing so as not to lose control of the code.
No Devs find in Vibe Coding a gateway to the universe of development, managing to create things that until yesterday were unthinkable. But with the more technical tools, at least at the beginning, they come up against a nice wall of difficulties.
Dev or No Dev, everyone has their own path. But with Vibe Coding, the paths begin to intertwine.
The good news is that with time and the right curiosity, what today seems like a problem can become a gym. Areas of discomfort can become great opportunities for growth for both.
Does it make sense to you? I'll try to explain myself better
Expected quality and control capacity
One constant always holds: those with specific skills can better exploit advanced tools, further refining their skills. Those who already have their hands dirty with code can squeeze advanced tools much more.
The problem always comes down to this: when you want something done well, you hit a wall.

🔵 For those who have never programmed, the Vibe Apps seem like a walk in the park… until you need quality.
🟠 For Devs, classic tools remain the ideal home, but the effort increases as the bar is raised.
In both cases, there is a point where we hit a wall, where the difficulty increases. Only... There's a different wall for each.
With Vibe Coding Apps, getting started is easy: just type a prompt and get a result. Those with some experience know what to ask and how far they can go. Those new to the game will quickly notice that something is not right; the magic disappears, problems begin... and something starts to slip away.
And so, Dev and No Dev sooner or later find themselves stuck in unexpected complexity. 'AI will take care of it' is a promise that seems unfulfilled.
On the other hand, starting with Classic Dev Tools with their AI plugins requires more initial expertise and a more flexible mindset for those who have never programmed. The environment is more technical, the initial learning curve can be steep, and the illusion that AI does everything by itself quickly collides with reality.
For Devs, however, the path is different: they can go much further, using tools that multiply their productivity by knowing the depths of the sea better, what will happen next, and having experience. But they, too, sooner or later, will find a wall: that of the difficulty of control. Only further ahead and with more awareness.
Losing control is easy, anyway
The first thing that happens when working with these tools is that you have no control over what happens. Spoiler: you will lose control much faster than you think. AI agents are very fast at writing, programming, and opening files, and it is impossible to follow step by step what they do; just turn around for a moment or reply to an email, and the agent has rewritten your backend.
Of course, they ask us for confirmation of their actions, but this involves opening complex requests, looking at the code, understanding where and why the tool stopped, and trying to give a congruent and logical answer.
And if you know even one programmer, you know how much we hate reading (and understanding) code written by others. Let alone by an AI without briefing.
The no-devs have one advantage: they don't really understand what's going on, and if everything goes smoothly, they don't ask questions and can get away with it (for now).
The good thing for everyone? If the code is not documented, you can have it explained to you on the fly, in detail, and with patience (by the AI). Yet it is very easy to crash into an unexpected ramp of unproductivity that, sometimes, steals hours or days of work.
The Butterfly Effect in Prompting
Letting AI interpret an analysis (even if well-written) on its own and then generating thousands of lines of code often leads to unexpected, sometimes surreal, results.
"Oh, of course!" someone will say. The algorithm might not do exactly what we thought; it might make expensive decisions, approach the data wrong, or use 'strange' or no longer maintained libraries.
Sure, it's the effect of chaos laws and butterfly flutters, and you get the idea.
An example: I tried manus.im , one of the coolest tools of the moment for Vibe Making . And I made the request below with the aim of having a dashboard with all the options for an event that we will have to organize. I wanted to understand this thing 'for me,' to know how to organize an event I may have to do.
My intent? To understand costs, options, and variations.
His result? A site to sell events to the public. (in Italian, obviously)
Not quite what I asked for.

A non-trivial change of direction: from an internal tool designed to analyze costs to a sales tool.
The problem was in the initial prompt, which, despite the clarifying questions, was ambiguous. In the end, he made his own plan without involving me, without allowing me to intervene in correcting it, and took the wrong path at the very last moment.

Here, too, the usual theme returns: control, and, for those who are not experts, the difficulty of understanding what really happened.
From here, another chapter opens, which is much more important than it seems.
Can you write an analysis?
When I talk about Generative AI, the first thing I say is that it is important to know how to ask the right questions and to ask an AI what we want.
It is pretty challenging to do this to get complex results when these are textual.
When prompts have to be turned into code, things get complicated, primarily if you've never written an analysis for a new piece of software.
Writing a well-done requirements and specifications analysis is not an easy task. You can certainly get help from a Generative AI, but without experience today, you won't get very far.
And yes, the most important thing here is called only one thing: experience.
And then, a quick question: can you understand what it means to “let AI do” all the activities below?

Each line is an action that the AI can do without asking your permission, silently, without warning you.
What models do you use?
With Vibe Coding Apps, it’s hard to say. With Classic Dev Tools Plugins you can choose.
Sure, Claude Sonnet 3.7 is fantastic: he seems like the best programmer in the world. But he has a problem with the Context Window, which is not huge (if you don't know what it is, ask your favorite AI or write to me, and maybe I'll tell you about it soon; it becomes a long speech to address here) and the costs of use. An alternative is Gemini, which allows a context window of 2M tokens. This is very useful in some situations, but it offers worse performance (I don't like how it thinks and the solutions it proposes).
Cline and Roo Code give you control over how much they are using it and trust me, that makes all the difference.

What if you knead everything together?
Okay, you know how to do the analysis well, and you are very specific in the prompts. Despite this, it often happens that the 'assistant' does not understand what I am telling him.
Whether we are talking about the user interface or the backend, sometimes there is a problem with AI 'mental loops' that are very difficult to get out of. You know that feeling of... stuck and heavy confusion that sometimes assails you when you program?
The AI “assistant” often enters a sort of existential crisis. You report a problem, → the AI says, “All done,” → but it’s not true → you try again →, you get angry → and at the end, you argue with a machine that doesn’t move a millimeter.
And you try again...

What if everything changes by itself? Or worse, a comma?
Sometimes, these agents change their minds about their own decisions and decide to rewrite entire pieces of code after a simple blink of an eye. We need to supervise them, control them, and have a way to determine what they are doing.
This also applies to Vibe Coding Platforms: when they get tangled up, you will realize they can cause damage. Big. Are you able to protect the sources? Do you know what GitHub is? If not... expect some headaches.
And then there are the other problems. The hidden ones.
I'll leave you with a few questions to help you handle additional issues you may encounter. If you answer 'I don't know' to too many questions, expect some problems soon.
Do you understand how this software works? Can you explain it?
Will it be safe? Are you able to understand it?
What happens to this data? Really?
What cloud is the app hosted on? Is it secure?
Will IT embrace this way of working?
How much will it cost? (not just to create it, but also to maintain it)
Will everything be correct?
Will it scale?
If you don't know what you're doing, maybe you have some technical debt; if you don't know software architectures, or you don't know how to judge the quality of the generated product, sooner or later, you will encounter one of the problems above. And sooner or later one of these problems will come looking for you.

What does "doing things well" really mean?
Let me give you an example of what it means when Vibe Coding gets serious. I've been following a guy named Reuven Cohen who is doing incredible work in the agent world and is generating content that keeps me up at night. And he moves in a few days as fast as a big software house moves in a few years.
With Vibe Coding, he created (also) an app to check the security of GitHub repositories by perfectly imagining what could go wrong.
If you are serious about it, I suggest you read this post to get an idea of the complexity behind every well-done project.
Enough drama: let's get back to the excitement
However, I would also like to share some positive aspects:
Many more people than before will be able to become, if not expert programmers, at least 'amateurs' of coding and start doing, experimenting, getting their hands dirty.
The gap between 'technical' and 'non-technical' will become narrower and shallower, more manageable if the inexperienced understand what lies beneath the iceberg's surface. It used to be a canyon, but now it can become a step.
Among the skills of a manager or anyone who approaches Vibe Coding will now also be the ability to generate code on the fly to complete a task that is perhaps repetitive or simply difficult to do with the old Excel. Expect to see this term in resumes very soon.
Vibe coding also helps you analyze quantitative and qualitative data, perhaps using Generative AI for analysis (analysis of forms with open questions, for example, production of Dashboards for analysis of files that arrive periodically, etc.). I'm having a lot of fun. Every file that comes to hand becomes a dashboard; every table becomes an app. And ChatGPT or Claude is enough to understand what I'm talking about.
This is generating millions of new, increasingly powerful, and high-performance micro applications that will help practically anyone in many difficult situations.
A new type of pollution
The world will be filled with a new form of digital garbage: Disposable Software!
Software that will be developed only for tactical tasks used once or a few times, and then forgotten. T
he only consolation is that it does not end up in a landfill. I will undoubtedly return to talk about it: my Mac has become a dark forest of applications of all kinds that, after having generated, I often forget I even made.
Do Juniors still have a future?
In all this, I have spoken assuming that Developers are all experienced people. But of course, this is not always the case.
In a recent private conversation with a government official from a small European nation, I was told very clearly that education must move in the direction of producing people who:
Have a critical spirit
Be able to understand a problem thoroughly
Be able to explain themselves clearly
Make logical sense
Have a basis in psychology and philosophy
May they be able to learn to learn.
Everything else can be learned.
I fully share this vision. It solves one of the most critical questions that have been going around in my head for years.
How do we engage the 'new generation' in the workforce now that Generative AI seems to be doing more and more junior tasks?
Now that AI is a digital intern, what will we have human interns do?
Specifically, does it still make sense to learn programming in school and pursue a career as a developer?
Those who have the above skills will have no problems. Conversely, they will learn sooner, better, and with less effort than anyone else. They will do it in new ways, not yet codified, for any job, with the assistance of a generative AI as a tutor in excellent Vibe Making sessions
Therefore, new programmers will be born with an extra 'layer': thanks to the potential of Generative AI and Vibe Coding, they will be able to learn faster, better, and make fewer mistakes.
Requirement #1: You must have the ability, patience, and humility to sit down and read the generated code, explain it to yourself, try to modify it 'by hand,' and see what happens. For those who have followed my workshops, we are talking about FAFO 4.0!!!
And maybe the 10,000-hour theory to become an expert in a subject will become the 1,000-hour theory...
However, this topic is also immense and requires further reflection.
So What...
I know, I've written a lot. But the topic is vast and essential.
As I was saying at the beginning, if Generative AI is offering 'anyone' the ability to talk to AI models and do all the amazing things you see in Vibe Making, when you apply it to Coding, it means that 'anyone' can now approach the world of programming without necessarily being a programmer.
But the theme is clear: Vibe Coding is here to stay. It is most likely a new operational, cultural, and cognitive paradigm that redesigns access to software development and, more generally, to problem-solving in the workplace.
Nonetheless, this will require maturation, which will be obtained with experience, to 'dismantle the myth' by seeing its limits and traps. Without awareness, control, and experience, there is a risk of going backward, belittling the work of those who know how to develop, and scaring away young people who want to undertake this beautiful profession.
Vibe Coding is powerful, but it requires new responsibilities. The ability to ask questions, explain, and reason becomes the new fundamental skill.
Give it a try! Vibe Coding is just a prompt away!
See you soon!
Massimiliano
Comments