To many people, coding is about precision. It's about telling a computer what to do and having the computer perform those actions exactly, precisely, and repeatedly. With the rise of AI tools like ChatGPT, it's now possible for someone to describe a program in English and have the AI model translate it into working code without ever understanding how the code works. Former OpenAI researcher Andrej Karpathy recently gave this practice a name—"vibe coding"—and it's gaining traction in tech circles.
The technique, enabled by large language models (LLMs) from companies like OpenAI and Anthropic, has attracted attention for potentially lowering the barrier to entry for software creation. But questions remain about whether the approach can reliably produce code suitable for real-world applications, even as tools like Cursor Composer, GitHub Copilot, and Replit Agent make the process increasingly accessible to non-programmers.
Instead of being about control and precision, vibe coding is all about surrendering to the flow. On February 2, Karpathy introduced the term in a post on X, writing, "There's a new kind of coding I call 'vibe coding,' where you fully give in to the vibes, embrace exponentials, and forget that the code even exists." He described the process in deliberately casual terms: "I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works."

While vibe coding, if an error occurs, you feed it back into the AI model, accept the changes, hope it works, and repeat the process. Karpathy's technique stands in stark contrast to traditional software development best practices, which typically emphasize careful planning, testing, and understanding of implementation details.
Doesn't this just mean you need to have the AI write the library too?
/s
Hoo boy. Well, no.
The code runs, or it doesn't. Or it runs, until it doesn't. Or it runs, but it creates the same directory 200 times instead of 200 directories. Or it runs, but it creates the directories but doesn't unzip the files. Or it runs, and it creates the directories, and it unzips the files, but not into the directories (good luck cleaning up the mess). Or it runs, and it creates the directories, and it unzips the files into them, and then it deletes a random file somewhere else. Or it runs, creates the directories, unzips the files, then orders 500 rolls of toilet paper from Amazon...