Vibe coding is a new approach to software development that leverages artificial intelligence (AI) to generate code based on natural language prompts, allowing users to create software without extensive programming knowledge. Vibe coding, also known as vibecoding, was introduced by Andrej Karpathy, a co-founder of OpenAI, in February 2025. The concept allows individuals to describe their software needs in simple terms, and AI models, particularly large language models (LLMs), generate the corresponding code. This method shifts the programmer’s role from manual coding to guiding, testing, and refining AI-generated code.
Vibe coding is an AI-driven evolution of pair programming where a developer teams up with an AI assistant, shifting from manual coding to guiding the AI via natural language prompts to create, refine, and debug applications.
Vibe coding enables even those with minimal programming experience to create functional software, as it relies on intuitive prompts rather than detailed coding knowledge.
Learn from YouTube
Here is a video called Vibe Coding Fundamentals In 33 minutes. There are principles of vide coding: thinking, frameworks, checkpoints, debugging and context. Here is a mnumonic: The friendly cat dances constantly. These five are the fundamental skills needed. It’s highly recommended to create a Product Requirements Document (PRD).
Thinking
You write at least one paragraph describing the product. We’ll call it the Product Overview. You would include what it is and who would use it. Include it’s purpose, benefits or results. You could include when it would be used. You could describe the type of user that would use it.
Analytical thinking involves the skills required to do the project. It would include programming languages, integrated development environments, version control (git) and so on. This could also include domain knowledge. This is specific knowledge in a topic such as health care, business, economics, food, travel or anything else. You also want to include the type of front-end and back-end you want to use.
For Computational thinking we would include, in the PRD, a key features section. The features are the ways that we accomplish our key benefits that lead to the objectives of the project. In this section we can create timelines or milestones. We could simply call them Milestone 1, Milestone 2 and so on. We add complexity and features along the way. Think about project management and Agile.
Procedural thinking is the highest level of thinking ad constantly asks how we can make it better. Is it easy to use? Is it intuitive. Are we using godd User Experience (UX) design? And so on. Here is where we really go into detail as to who the user is and how they will want to use it and why. We can get very domain specific. We can get ime specific, data specific, visual appeal and color specific, and so on. The reason that we get into so much detail is because AI will produce better results the more detail you provide. You want a clear vision of what you want at the beginning. The time spent defining at the beginning of the project will save you time in the long run.
Frameworks
Learn your frameworks. Be open to learning about these different frameworks and how all of these components fit together With vibe coding it’s not necessary for you to exactly know how to implement each of these things yourself but it’s still really important to have an understanding of the structure of what it is that you’re trying to build. Build, develop, change and learn all at the same time. Be open and flexible.
Checkpoints
The next principle of vibe coding is to always have checkpoints and version control Things will break. You can use git.
Debugging
When it comes to things going wrong and not working, it’s about when, not if. AI will help with that. ChatGPT was able to guide me through the steps needed to fix the error. Often i would just copy and paste the error into ChatGPT and it knew what to ask me to do. Software engineers spend a lot of time studing this topic and may employ unit testing in their projects. You don’t need to be an expert in this topic because you have an AI assistant. Be methodical, logical and thorough. You will get better over time. Be patient. I find that many times the problem is caused by inconsistent naming of objects.
Context
The more information and detail that you can provide to your AI to your LM the better the results are going to be and context can come in a lot of different forms. It could be that the original prompt or the PRD that you’re inputting has a lot of details in it. You can even provide it with mockups of what exactly you want it to look like or you can be providing it with examples or extra data that can help it build the application.
Ed Donner’s AI Udemy Course
Below is a summary of a video by Ed that ChatGPT summarized and I modified slightly. the course is called The Complete Agentic AI Engineering Course (2025).
Vibe Coding: A Fun and Productive Way to Code with AI
“Vibe coding” is a term coined by Andrej Karpathy to describe a playful, creative, and fast-paced way of working with large language models (LLMs) like ChatGPT or Claude. It’s about collaborating with the model — letting it generate small pieces of code, tweaking them, iterating, and quickly building momentum as you explore new ideas or frameworks.
As Ed Donner explains in his Udemy course, vibe coding can be both highly productive and a lot of fun. But it can also lead you astray if you’re not careful. He offers five practical tips to help you get the most out of this way of coding — keeping it efficient, accurate, and frustration-free.
1. Good Vibes
Start with a great prompt. The better your prompt, the better your code — and you can reuse it many times. Remember that LLMs tend to produce long, over-engineered code with unnecessary exception handlers and verbose comments. Keep things concise and current.
- Ask for short, clean, and readable code.
- Include today’s date and request APIs that are current as of that date.
- Refine and reuse strong prompts across projects.
2. Vibe, but Verify
Never rely on one model alone. Ask the same question to multiple LLMs — for example, ChatGPT and Claude — and compare their responses. Often, one will be clearer or more accurate than the other.
- Cross-check answers from different models.
- Look for clarity, accuracy, and completeness.
- Learn from the differences between outputs.
3. Step Up the Vibe
Don’t generate hundreds of lines of code in one go. That approach often produces messy, buggy code that’s hard to fix. Instead, generate small, testable chunks — about 10 lines or one function at a time — and verify each piece before moving on.
- Work in small, independent steps that can be tested easily.
- If you can’t break a problem down, ask the LLM to do it for you.
- Have it suggest 4–5 small, testable chunks, then generate code for each one.
4. Vibe and Validate
After you receive a code snippet from one model, use another model to review it. Ask the second LLM to confirm that the solution is appropriate, efficient, and bug-free. This “manual evaluator–optimizer” pattern helps ensure quality and maintainability.
- Use one LLM to generate, another to validate.
- Ask if the code could be made cleaner or simpler.
- Catch subtle bugs or redundancies before testing.
5. Vibe with Variety
Ask the LLM to produce multiple solutions. For example: “Give me three different approaches to this problem.” This encourages creative exploration and helps you understand why one method might be better than another.
- Request two or three variations of the same solution.
- Ask the model to explain its reasoning behind each one.
- Compare options and pick the most elegant or efficient design.
Final Thoughts of Ed
Vibe coding is a powerful, fun, and highly engaging way to work with AI. But it’s most effective when you combine creativity with discipline. Always keep your code understandable, verify results across models, and build in small, testable increments.
As Ed Donner puts it, think of this as your “survival guide to vibe coding” — a way to balance experimentation and structure, while enjoying the productive flow that comes from coding side by side with your AI assistant.