The Rise of Vibe Coding
Vibe coding, once a term of mockery, has become a norm among programmers, leading to a subtle alienation in the profession. This article sharply points out how AI-assisted programming diminishes the thinking process and weakens technical mastery, revealing a cognitive crisis behind the facade of efficiency.

On weekends, I sit at my desk watching new interns in my team frantically hitting the Tab key in their IDEs, with lines of code pouring onto the screen like a stream of light. Five years ago, I would have thought they were geniuses; now I just worry about how many logical pitfalls I’ll have to help them navigate during code reviews.
It has been two or three years since large models fundamentally changed the programming paradigm. Vibe coding has transformed from a joke into a standard practice, even becoming a form of political correctness.
We must admit that the thrill of this coding style is physiological. A vague thought in your mind can instantly manifest as a semblance of code on the screen. You don’t even need to articulate the requirements clearly; just provide a rough direction, and AI can fill in the details. This instant gratification is more intense than scrolling through short videos.
Previously, coding was like climbing a mountain; you needed to plan your route step by step, overcome gravity, and tackle tricky problems along the way to reach the summit and feel a sense of achievement. Now, coding feels like taking a cable car or even teleporting straight to the finish line.
The Disappearance of Process
The root of impatience lies in the disappearance of the process. We used to say that the essence of programming is not typing but thinking. Code is merely a vessel for thought. Before writing a line of code, you had to construct the state machine of the entire system in your mind, consider the data flow paths, and anticipate potential concurrency issues.
This process of building a mental model is painful and slow, but it is also the most rewarding.
Vibe coding skips this process entirely. It provides you with a seemingly perfect result, but your brain hasn’t undergone the model-building process. You look at the code, think it runs, and the logic seems sound, so you hit the accept button. At that moment, you feel hollow inside. Your grasp of that code is far less than when you typed it out line by line. This sense of emptiness accumulates, turning into anxiety and impatience.
Worse still, this model is destroying programmers’ ability to delay gratification. In the past, when faced with a bug, we might spend half a day troubleshooting, reading source code, setting breakpoints, and analyzing stack traces. During this process, our understanding of the system would increase exponentially. Nowadays, when an error occurs, most people’s first reaction is not to analyze but to throw the error log at AI and ask it how to fix it. AI provides a command, you copy and paste, and voilà, it’s fixed.
Problem Solved, But Learning Lost
The problem is solved, but you learn nothing. You become a skilled mover, a high-level glue operator. Your speed in handling issues increases, but your ability to solve complex problems actually deteriorates. Once you encounter a problem that AI cannot solve, or when AI starts giving nonsensical answers, you find yourself at a loss. It feels like being thrown into a desert with only a paper map after relying on GPS navigation.
This is why you feel impatient. Your subconscious is alarmed. It knows that your current high efficiency is built on a shaky foundation, and it knows you are losing your grasp on the underlying technology.
From the perspective of an algorithm engineer, there’s a deeper logic at play. Current Vibe coding is essentially based on probabilistic text generation. Large models do not truly understand logic; they merely predict the most probable next token.
This means the code they generate is likely mediocre, conforming to statistical norms. It can solve 80% of general problems, but when dealing with that critical 20% of complex, counterintuitive business logic, it often provides misleading answers.
If you approach coding with a Vibe coding mindset, relying on intuition, you’re in trouble. You won’t just miss its errors; you might be misled by it. The code looks too beautiful, with well-named variables, clear comments, and neat structure, creating a false sense of high quality that deceives your brain into thinking the logic is also high quality.
In one company, a team faced an incident involving core billing logic that should have handled extreme concurrency. The colleague used Vibe coding, and AI generated a very elegant locking logic. During code review, everyone glanced at it and thought it was fine because it looked so standard, almost textbook-level. However, once deployed during a peak traffic event, it caused a deadlock.
In the retrospective, we discovered that the granularity of the lock generated by AI led to resource contention under high concurrency. This pitfall was very subtle; if it had been written manually, the developer would have instinctively hesitated and considered whether the granularity was too large. But AI generated it confidently without hesitation, and human critical thinking automatically degraded when reading generated content.
Manifestation of Impatience
We have lost our reverence for details and sensitivity to complexity. We have begun to act like hands-off managers, thinking that with AI as a super contractor, we can just be architects.
In fact, the threshold has become higher, not lower. Previously, you were only responsible for the code you wrote; now you must be accountable for a bunch of code you may not have even reviewed closely. This requires strong code review skills, the ability to see through logical flaws in the code at a glance. The paradox is that this ability is precisely developed through extensive, painful manual coding.
If you start with Vibe coding, where will you accumulate this ability?
This is the biggest dilemma facing new programmers today. They feel that programming is too easy, with no real moat. They find it hard to settle down and study the underlying principles, operating systems, and compilation principles. They think AI understands these things and can provide answers, so why spend time learning them?
This mindset is spreading throughout the industry, leading to a superficial technical atmosphere. Discussions are no longer about elegant algorithm design or extreme performance optimization, but rather about which model is better or which prompt is more effective. Technical exchanges have turned into tool exchanges, and deep thinking has become skill sharing.
Don’t think I’m against AI. I use Gemini and ChatGPT every day; they indeed significantly enhance efficiency. Writing a backend management system used to take two days; now it can be done in two hours. This release of productivity is enormous.
The key is to recognize the boundaries of tools and our own positioning.
Previously, we were builders, laying bricks and mortar. Now we are supervisors; AI builds the walls, and we check if they are straight and sturdy. If you still think like a builder, believing that the wall being built means the job is done, you will certainly feel anxious. Because you don’t know if that wall will collapse.
You need to shift your mindset, extracting yourself from the false sense of achievement brought by speed of output. You must realize that writing code quickly does not mean the work is well done. The core competitiveness now lies in your ability to identify garbage generated by AI and to build real business barriers on top of the mediocre solutions provided by AI.
Another Source of Impatience: Fear of the Future
Watching AI grow stronger every day, seeing Gemini 3.0 handle complex logic increasingly close to human capability, and even surpassing humans in some areas, who wouldn’t feel anxious? When you look at the automatically generated code on your screen, you can’t help but ask yourself: What is my value in sitting here?
If your value is merely translating requirements into code, then you should indeed be worried. Because that aspect is being infinitely compressed.
But if your value lies in deep understanding of the business, control over system architecture, and the ability to deconstruct complex problems, then you have nothing to fear. AI can generate a million lines of code, but it cannot decide whether those lines should be written or for what purpose.
Many engineers and programmers feel impatient because they are unwilling to acknowledge a fact: programming used to be somewhat like craftsmanship, relying on skill and experience. Now that layer of craftsmanship has become extremely cheap. We are forced to move up, to do more abstract, macro-level work that requires decision-making abilities.
This transition is painful. Many are not ready or lack the capability. Thus, they can only cover their inner emptiness and panic by constantly refreshing tools and pursuing faster generation speeds. This manifests as impatience.
I even find the term Vibe coding itself ironic. Vibe, atmosphere, feeling. Programming is inherently a discipline that requires rigor, logic, and certainty. Computers operate in binary, in 0s and 1s; it is either true or false. Now we are trying to navigate it with a vague, intuitive approach. This is a regression.
We are turning engineering into mysticism.
You ask why the code runs? Because it feels right. Why choose this library? Because AI recommended it, and it seems good. This intuition-based programming can indeed get many things running in the short term, but it will sow endless pitfalls in long-term maintenance and system evolution.
True experts, when using AI, are extremely calm and even ruthless. They are not swept away by the speed of AI-generated code. Instead, they deliberately slow down. When AI generates a piece of code, they scrutinize it as if examining an enemy’s code. They question every line, clarifying boundary conditions.
They use AI to handle mechanical, repetitive tasks, channeling the saved energy into tackling the toughest challenges. They use AI to assist thinking, not to replace it.
So, if you feel impatient, my advice is to turn off Copilot, turn off all AI assistance, and spend a weekend building a wheel from scratch. Write a simple compiler, handwrite a red-black tree, or implement a mini operating system kernel.
In this process, you will encounter various compilation errors, memory leaks, and logical loops. You will feel pain and frustration. But when you finally solve these problems and see the program run seamlessly according to your intentions, you will regain that long-lost sense of control.
That grounded feeling is something no Vibe coding can provide.
This impatience is also part of the industry’s filtering mechanism. After the wave of AI passes, two types of people will remain. One is a very small number of true technical experts who master AI and use it to push system complexity to new heights. The other is a large number of low-end operators who are merely accessories to AI and can be replaced at any time.
Those in the middle, who used to get by on proficiency and are now addicted to the false efficiency brought by Vibe coding, unwilling to think deeply, will be ruthlessly eliminated.
Which type you want to be depends on how you confront this impatience now.
Don’t Let Code Flow Across Your Screen; Let Logic Flow Through Your Mind
Ultimately, this impatience is also a signal. It reminds you that your current learning and working modes may be problematic. You are consuming information at too low a density, and your output of thought is also too low. You have given the bandwidth of your brain to AI, leaving yourself in a low-power mode.
Long-term existence in this low-power mode will lead to brain degradation. You will find it increasingly difficult to concentrate on reading a long document and harder to deduce complex logical chains in your mind. That is the most frightening part.
Our generation of programmers may be the last to experience the pure manual coding era and the first to be completely alienated by AI. This turning point is happening now.
The only way to combat impatience is to return to the essence. Regardless of how tools change, the foundational theories of computer science remain unchanged; data structures and algorithms remain unchanged; the CAP theorem of distributed systems remains unchanged; the principles of high cohesion and low coupling in software engineering remain unchanged.
Settle your mind and tackle those unchanging concepts. Understand what happens behind the code generated by AI. Question, verify, and refactor.
Don’t be a Vibe coder who nods in agreement. Be a vigilant craftsman, hammer in hand, ready to strike the code. Even if that hammer is handed to you by AI, you must know where to strike and how hard to hit.
Thus, when you close your computer and walk out the company door, what you feel will not be emptiness and anxiety, but genuine fulfillment. Because you know the problems you solved today were resolved using your brain, not by luck or probability.
Comments
Discussion is powered by Giscus (GitHub Discussions). Add
repo,repoID,category, andcategoryIDunder[params.comments.giscus]inhugo.tomlusing the values from the Giscus setup tool.