Vibe Coding
Overview
Vibe Coding is a term coined by Andrej Karpathy (former Tesla AI director and OpenAI research scientist) to describe a new paradigm of programming where developers describe what they want in natural language, and AI tools generate the code. The term captures the more fluid, high-level approach to software development enabled by large language models.
Etymology
The term “vibe” suggests a more intuitive, feeling-based approach to coding - as opposed to the precise, syntax-focused traditional programming. It’s about describing intentions and letting AI handle implementation details.
Key Principles
- Describe Intent, Not Implementation: Focus on what you want, not how to build it
- Iterate with Feedback: Use AI output to refine and improve
- Embrace Emergence: Let complex behaviors emerge from simple prompts
- Human-AI Collaboration: Human provides direction, AI handles execution
Comparison with Traditional Coding
| Aspect | Traditional Coding | Vibe Coding |
|---|---|---|
| Input | Precise syntax | Natural language |
| Iteration | Manual edits | Prompt refinement |
| Focus | How (implementation) | What (intent) |
| Skill Required | Syntax knowledge | Prompt engineering |
| Best For | Performance-critical | Prototyping, MVPs |
Evolution of AI Coding
- Autocomplete (GitHub Copilot): Single-line suggestions
- Code Generation (Cursor, Claude Code): Function-level generation
- Agentic Coding (Claude Code, Codex): Multi-step autonomous agents
- Vibe Coding: High-level intent description
Best Practices (from YC Guide)
- Write detailed plans in Markdown before coding
- Use Git strictly; don’t rely on AI undo
- Prioritize end-to-end tests over unit tests
- Create instruction files (cursor.rules, claude.md)
- Use multiple tools for different strengths
Related Concepts
- Agentic Engineering: Next evolution - using AI agents for autonomous task completion
- Spec-Driven Development: Writing specifications as the communication medium between human and AI
- Compounding Engineering: Each completed task makes subsequent tasks easier (Kieran Klaassen’s concept)
Key Practitioners
- Andrej Karpathy (coined the term)
- Kieran Klaassen (Every, uses Claude Code extensively)
- Many YC founders and independent developers
Source
YC Vibe Coding Guide Vibe Coding Experience