
Karen Brennan.
Photo by Grace DuVal
‘Vibe coding’ may offer insight into our AI future
Learning tech expert says it may take over writing software. Our job? Imagine possibilities, articulate what we want, evaluate.
It’s no longer necessary to know how to code to design a website or an app. Describe in plain English what the program should do, and an AI agent will do its best to enact the vision — a process termed “vibe coding.” The end result may have plenty of limitations, but it will be far more advanced than what someone without fairly significant technical skills could produce.
Among those exploring the new practice is Karen Brennan, Timothy E. Wirth Professor of Practice in Learning Technologies at the Harvard Graduate School of Education, who taught a six-week course on vibe coding beginning late last fall. In this edited interview, Brennan details what she tells students and insights she’s gained about what our future with AI may look like.
What is vibe coding, and what was your first experience with it?
Vibe coding is creating software with the assistance of AI — and specifically, creating software where you don’t necessarily understand the code that’s being produced. (“Vibe coding” is a term popularized by computer researcher Andrej Karpathy in February 2025.)
Responsibility for understanding the underlying code differentiates professional software development, which is also increasingly AI-assisted, from vibe coding. As a term, vibe coding can be positive or pejorative, either celebrating the freedom from having to understand code or underscoring the risks of setting aside that responsibility.
My first experience with vibe coding was in December 2024. Through a Harvard Initiative for Learning & Teaching-funded research project, I had been studying how students were using generative AI in self-directed projects, and one of the students introduced me to v0 (an AI-powered tool for building web applications and sites).
When I later needed to build a website for the same research project, I used v0 to build it. I was amazed by how quickly I was able to create the site and by the quality of what was created.
You’ve taught a course on vibe coding, with no prior experience with AI or coding required. What was your hope for the course, and how did it turn out?
My doctoral student Jacob Wolf and I designed a six-week course about vibe coding that we taught in late fall last year, which was supported by a phenomenal teaching team. Our hope for the course was to explore this particular sociotechnological moment, where anyone can (in theory) create software in collaboration with AI.
The central question motivating the course was: How do we think about AI as a creative partner? We had a different theme each week (build something that tells a story, that makes your life easier, that invites play, etc.) and tried different vibe coding tools each week (e.g., Replit, Figma Make, Claude Code).
“The central question motivating the course was: How do we think about AI as a creative partner?”
The course was explicitly not about building professional software; we were focused on experimenting with new creative possibilities.
An important part of the course design for us was pairing hands-on creation with a critical perspective. Each week we read one classic text from computer science (to remind ourselves that people have been thinking about the opportunities and challenges of AI for several decades) and one more contemporary critical piece (to defend against AI hype).
We asked students to put their hands-on experiences and the readings in conversation with each other in a culminating position portfolio. Now that they’ve had all of these experiences, how do they feel about creating with AI? What do they want to say about it?
I loved the experience — both for what our students were able to create and critique and for having the opportunity myself to create together with the students. Ninety-two students participated and based on the course evaluations and our meetings with them, students appreciated both the opportunity to build things for themselves and the critical frameworks we brought to that work.
This was a giant experiment, and as with any first-run course there were many things we were figuring out in real time, especially given ongoing technology changes. But I feel that the positive feedback we received from students affirmed that it isn’t too soon to try teaching this in a university setting at a school of education.
What are some of the promises and limitations of vibe coding?
The core promise for me is democratization of creation. Vibe coding makes the production of software, the output of code, accessible to more people. You can have an idea and realize that idea without having a degree in computer science or hiring a team of developers. And so it is changing the economics of experimentation: to understand a thing, you often have to build a thing, and now you can build that thing very quickly. That rapid iteration and tinkering is one pathway to generating more ideas and unlocking creativity.
Being at a school of education, there’s also a learning dimension that I find exciting. Even though vibe coding can be a way of avoiding CS content knowledge, many of these tools create opportunities for you to inspect and examine the implementation, the code. You can peek under the hood!
And you can also ask the AI to explain what you’ve created together at whatever level of detail you feel most comfortable with, from a more technical explanation to asking it to explain it to you like you’re a first grader.
There are, of course, a number of limitations. Environmental impact and cost were two of many concerns we grappled with. And as a creator, you are limited by your ability to express your ideas in natural language. Students with CS knowledge or design backgrounds can go further because they can more explicitly describe what they’re hoping for.
We saw students get stuck in frustrated loops: prompting AI for something, AI producing something not quite right or something that felt generic, and then students being unable to fully articulate the problem and what to change. Vibe coding privileges people who are strong verbal communicators, which is an important equity consideration.
How does vibe coding differ from conventional software engineering?
Vibe coding is wonderful for quick prototyping and personal projects, which professional software engineers also do.
But I think a major difference concerns responsibility. When I think about my own preparation in computer science, there were very good reasons we were required to take courses on the social impacts and ethics of computing. Vibe coders don’t typically need to concern themselves with the same types of questions that professional software engineering teams are considering, such as reliability, safety, security, and maintainability.
“Vibe coding is often optimized for how much wow can I get in the next hour, rather than for the quality of what’s created or for the people who might depend on it.”
Vibe coding is often optimized for how much wow can I get in the next hour, rather than for the quality of what’s created or for the people who might depend on it.
As someone with a background in computer science, how does your experience with vibe coding differ from someone who has never coded before?
Content knowledge has its advantages! You might have a different sense of what is possible to create. You can more explicitly describe what you’re hoping to create and more easily recognize when something has gone awry and how to fix it. I think there are also habits of mind cultivated through the discipline (i.e., persistence and willingness to iterate) that feel especially helpful when vibe coding.
But more than the differences, what I noticed in the course was how much we had in common, no matter one’s prior experience and expertise. There is something profoundly joyful about having an idea, bringing it into the world, and sharing it with others — and experiencing that surprise and delight together.
How do you see vibe coding evolving moving forward?
I hope that more people have opportunities to experience vibe coding, creatively expressing themselves and opening up new opportunities for learning. I especially hope that we’ll see it more in schools, though there will be challenges due to cost, resistance from lack of familiarity, and understandable concerns about potential impacts on cognition and critical thinking.
Vibe coding doesn’t exist in a vacuum — its uptake in schools (and beyond) will be shaped as much by politics, policy, and people as by the technology itself.
I think the central practices we develop when vibe coding — thinking creatively about what we want to make, composing and iterating on prompts, critically evaluating what is produced — are going to become central life practices. Maybe it’s less “vibe coding” and more “vibe everything.”
If the technologies that surround us will be able to do an almost limitless number of things for us, and we just have to know how to ask, then being able to imagine possibilities, express clearly what we want to see in the world, review what we create, and iterate, will be incredibly helpful capabilities for all of us to develop.