In the past, getting into IT looked something like this: you sit down, open a course, learn about variables, loops, functions, then arrays, then you “get” algorithms, then you start worrying about O(n²) and think ̶w̶h̶a̶t̶ ̶t̶h̶e̶ ̶h̶e̶c̶k̶.
And now what? You open Cursor, Claude, ChatGPT, or some other AI and you write to it: make me a bot that does a daily summary of the work chat using the OpenRouter API - voila, the code is ready.
Yes, it’s not always good. Yes, it’s not always safe. Yes, it’s not always how it should be. But the code works and runs. And what else do you need, you might ask?
Then many looked at this and said, “The IT bubble has burst,” “Programmers are no longer needed. Now you can just vibe code.”
Uh-huh. Sure.
Vibe coding is when you’re not really writing code in the classical sense. You’re more like directing a neural network: explaining what you want to get, asking it to fix things, asking it to add a button, then another one, then “make it pretty,” then “oops, everything broke, revert it back.”
And at the demo level, it’s magic.
In an evening, you can assemble what would have taken a week for a conditional senior. A landing page, a form, an API, a database, authorization, an admin panel, a Telegram bot, file processing, simple payments - all of this no longer looks like a quest with all the unknowns. Especially if you already understand a bit about what’s going on.
But the problem is that there’s a huge chasm between “building a demo” and “owning a product.”
And vibe coding doesn’t bridge that chasm by itself.
The AI can quickly write code, and that’s really cool. But it doesn’t understand your business, your product, your database, your money, your users, and your fire on the server at 3 AM (when the API crashes due to load).
It can generate a project for you. But if you don’t understand where the incoming request is, where the database is, where the settings are, where the logs are, where Docker is, where nginx is, where migrations are, where user files are, and why suddenly “500” - you’re not a product developer. You’re a passenger.
Moreover, a passenger in a car that’s already going somewhere, it has a steering wheel and pedals, but you don’t know where.
It seems to me that the new reality of development isn’t that now everyone doesn’t need knowledge. On the contrary. The set of basic knowledge has just changed.
Previously, a lot of attention was paid to whether you could write sorting, trees, queues, search algorithms by hand and not fail the interview. That hasn’t devalued and still matters. Algorithms are important, especially if you work in a place where you can’t feed the entire project to a neural network (and I’ve seen that).
But for creating a simple product, what’s important now is = do I understand the structure.
Do I understand how data flows through the system.
- The user clicked a button
- The request went to the backend
- The view/API accepted it
- The service processed something
- The database saved the result
- The frontend received the response
- The user saw a normal result.
IT hasn’t died; it’s just been reborn.
You might not remember or even understand every Docker command. But you should understand what a container is, where the volume is and why they should be monitored, why the database shouldn’t live inside a disposable container (lol), why you shouldn’t commit .env to GitHub, and why “it worked locally” doesn’t equal “it works on the server.”
And when you move from code generation to understanding the guts of your product, bro, that’s no longer vibe coding. That’s development.
The real skill isn’t typing 100500 lines of code without autocomplete. The real skill today is being able to make decisions.
Let’s say the AI offers you a structure. You understand whether it’s normal or a mess.
The AI writes code. You see where the dangerous spot is and why there are so many exceptions?
The AI adds a feature, fixes a bug, rewrites the project, and you UNDERSTAND what’s happening.
Because there’s a dangerous illusion: “if the AI writes code, then I don’t need to understand.” No. You can do that, but not for long. Until the first bug, the first migration, the first database loss, the first security hole, or the first user who saw someone else's data.
Another approach is surprising: the AI is evil, vibe coders are fools, I will write by hand until I’m blue in the face because I’m a “senior.”
You can spend years writing a project and release nothing. While others have built and tested your idea ten times over.
And yesterday’s vibe coder, after ten projects, will become just as experienced a developer as you (even without knowing all the nuances of OOP).
The solution should be in the middle.
The AI writes - you understand and control.
Yes, I’ll ask the AI to do authorization. But I still understand where the user is, where the session is, where the access rights are, and why you can’t just “pass user_id in the form, so it’s his data.”
This is the new IT.
Not “I remember all the framework methods” and decided to do 200 thousand LeetCode problems, but I understand how the system I created lives in production.
So vibe coding by itself isn’t a profession. It’s more like an army of juniors under your management (as one of my acquaintances said).
BUT, if you don’t have understanding, vibe coding amplifies chaos.
And if you have structure in your head, then it speeds up development.
My conclusion is short: everyone will prompt, and it’s inevitable.
When Google and a sea of information appeared, 99% didn’t become great scientists (even though it seemed like just take and learn, everything is available).
Then YouTube appeared, and nothing happened either. (Although I personally found and use incredibly cool free courses on YouTube across various disciplines.)
Vibe coding is good as a start. It removes the fear of the blank page and allows you to start doing something and quickly see results. It gives you the feeling: “Wow, I can build something.” And then you start digging into the nuances, structure, and specifics.
What can I say, I started learning JS that way myself. I always knew that for a full-stack, it was necessary, but I didn’t know how to approach it (after all, it’s the second language after Python). A task came up. A neural network came along. And off we went, I had to read and delve into the code. And there’s the structure, logic, and specifics of the new language.
I remember back in 2017 when I tried to get into C# to start making games. It was pain, tears, and torment, but I didn’t succeed. Now it’s super accessible for everyone. And where’s the army of successful vibe game developers?
So vibe coding isn’t the end of programming. Or, if you like, it’s the end of programming as it was before, i.e., endless manual typing of standard pieces without understanding the product.
And the beginning of another story, where what matters isn’t how fast you type code, but how well you manage it.