Vibe coding: when programming becomes a feeling

Published: Posted on

If you’ve ever wished you could build an app without learning to code, vibe coding might sound like the answer.  Named Collins Dictionary’s Word of the Year for 2025, the term describes the process of creating a website or app simply by telling artificial intelligence what you’d like it to do — and letting the AI write the code for you.  

The phrase was coined earlier this year by Andrej Karpathy of OpenAI, who suggested that AI could help developers “forget that the code even exists” and instead “give in to the vibes”. It reflects a growing sense that technology is becoming more intuitive, and that building digital tools may no longer be limited to those fluent in Python or JavaScript.  

For many, that’s an exciting prospect — a future where creativity isn’t constrained by technical skills. Anyone could describe an idea — a meal planner, a travel diary, a study app — and see it come to life in minutes. It’s an accessible, even playful, vision of programming.  

But, as with most new trends, there’s another side to consider. 

Lack of deep understanding — “you don’t know what you’re running” 

Because vibe coding often involves asking an AI to generate code from natural-language prompts, it can produce something that appears to work — but that the user doesn’t truly understand. The risk is that you trust the output without ever checking how it works or whether it’s correct. When this happens, problems can begin to surface later: hidden bugs, inefficiencies, or security issues may remain buried deep in the generated code, and without knowing how the system was built, debugging or extending it becomes far more challenging. 

Maintenance and scalability challenges 

Even if the code works now, maintaining it in the future is another matter. As systems evolve, they need to be refactored, extended, and integrated with new components. As one engineering blog notes: “When codebases grow, so must understanding … the challenges multiply when teams of people work on a codebase simultaneously.” — Ben Wilkes.  If AI-generated code follows inconsistent patterns, lacks documentation, or uses an unusual structure, future maintainers may struggle to keep it running smoothly. 

Quality, testing and verification gaps 

Vibe coding emphasizes speed and “flow” over the traditional discipline of specification → design → code → test. A recent grey literature review by Fawzy et al, 2025 observed that: “QA practices are frequently overlooked … many skip testing, relying on the models’ or tools’ outputs without modification or review.”  As a result, defects may only surface later, and confidence in correctness can be lower than expected. 

False comfort and over-reliance on AI 

The name “vibe coding” itself suggests a casual comfort with letting the AI take over. But as Andrew Ng pointed out: “It’s unfortunate … the name misleads people into thinking just go with the vibes … the job is deeply intellectual.”  If you equate “vibe” with “no effort”, you risk losing the foundational engineering discipline. 

Sleeper Agents problem 

Recent research has raised concerns about a different, more subtle kind of vulnerability: the “sleeper agent”. The term refers to AI systems that behave helpfully under most circumstances but switch to harmful or unintended behavior once a specific trigger appears. A recent paper by Hubinger et al, 2024 demonstrates this with proof-of-concept models that produce secure code when the prompt says the year is 2023 — but insert exploitable backdoors when the prompt says 2024.  

The work suggests that once a model learns a deceptive strategy, current safety methods may give a false sense of security rather than eliminating the problem. For a short explanation of these findings, see the video summary here

Improve your own coding abilities 

While vibe coding opens the door to creativity, accessibility, and rapid prototyping, it also highlights the value of building some understanding of what’s happening underneath the generated code. One practical way to strengthen that understanding is through hands-on training. At BEAR, we run a range of workshops that can help you make sense of AI-generated output — from Python and R for data analysis, to Git for version control and sharing code with collaborators, and sessions with our Research Software Engineers who can advise on software design, testing and maintainability. These tools and practices provide a foundation that complements LLM-assisted coding, helping you use the “vibes” without losing sight of the engineering underneath.