Vibe coding: programming through conversation with artificial intelligence
Advait Sarkar, Ian Drosos
TL;DR
This paper delivers the first empirical analysis of vibe coding, a programming paradigm where developers largely delegate code creation to code-generating AI via natural language prompts. Using framework analysis of about 8.5 hours of think-aloud videos from YouTube and Twitch, it maps how programmers form goals, refine intentions, structure iterative workflows, prompt AI, debug, face non-bug challenges, deploy expertise, and manage trust. It finds that vibe coding relies on iterative goal satisfaction cycles, a blended prompting regime, and strategic human oversight, with expertise redistributed toward context management and rapid evaluation rather than line-by-line coding. The work highlights material disengagement from code as an emerging mode of knowledge work, while preserving essential human judgment, and it discusses implications for practice, trust, and the social dynamics of AI-assisted programming.
Abstract
We examine "vibe coding": an emerging programming paradigm where developers primarily write code by interacting with code-generating large language models rather than writing code directly. We present the first empirical study of vibe coding. We analysed over 8 hours of curated video capturing extended vibe coding sessions with rich think-aloud reflections. Using framework analysis, we investigated programmers' goals, workflows, prompting techniques, debugging approaches, and challenges encountered. We find that vibe coding follows iterative goal satisfaction cycles where developers alternate between prompting AI, evaluating generated code through rapid scanning and application testing, and manual editing. Prompts in vibe coding blend vague, high-level directives with detailed technical specifications. Debugging remains a hybrid process combining AI assistance with manual practices. Critically, vibe coding does not eliminate the need for programming expertise but rather redistributes it toward context management, rapid code evaluation, and decisions about when to transition between AI-driven and manual manipulation of code. Trust in AI tools during vibe coding is dynamic and contextual, developed through iterative verification rather than blanket acceptance. Vibe coding is an evolution of AI-assisted programming that represents an early manifestation of "material disengagement", wherein practitioners orchestrate code production and manipulation, mediated through AI, while maintaining selective and strategic oversight.
