Vibe coding isn’t bad. Stopping learning is. I recently vibe coded a retro game with AI, and it got me much closer to an idea I’d carried for years, as long as I kept reading and questioning the code it wrote.
Why did I vibe code a retro game?
I’ve loved the idea of making games since I first heard about PyGame and SDL, years ago. Making my own game was a dream: choosing the sounds, designing the sprites, imagining the storyline, defining the gameplay, deciding how enemies attack, how the player wins and why they lose.
I learned a lot from open source projects. I studied their concepts, classes, architectures and implementations. But none of them had exactly the concept I was looking for, or matched what I had imagined.
Is vibe coding bad for your skills?
Vibe coding can weaken your skills, and I’ve felt it. I’ve lost some of my ability to code from scratch. I no longer spend days digging through documentation, reading references or debugging obscure problems. But that’s not AI’s fault.
When I started learning to code, there was no Stack Overflow and very little well documented technology. I had to read header files, study libraries, follow references, figure out which arguments to pass, and spend a huge amount of time and energy just to make simple things work. I learned a lot from that process.
Then coding slowly became copy, paste, Google, Stack Overflow, and move on. That’s where the real problem started. I stopped learning. I became lazy. I became a package tester and a consumer instead of a developer.
How does AI fit into the evolution of programming?
AI is the latest step in a long climb toward higher abstraction. When I started with the first versions of Node.js, I handled HTTP calls directly and debugged objects to understand loops, parameters and queries. I was using Node.js almost like PHP.
Then Express appeared. Go became popular. Flask and FastAPI made web development easier. Developers naturally started working at a higher level, and AI feels like the next move in that direction. If you want to see how I think about a fast-moving stack, my post on Nuxt 3 and how it differs from Next.js 14 follows the same idea.
How does AI help you build faster without giving up learning?
AI removes the friction between an idea and the first working prototype. I can prototype, test quickly, throw something away, try another approach and iterate without hours of boilerplate.
The important discovery is that after AI generates the first code, I still have time to read it. That’s where learning happens:
- Analyze what it did and ask why it chose one approach over another.
- Ask it to explain a concept you’ve never used.
- Ask for a different implementation and compare the trade-offs.
- Challenge its decisions and argue about best practices.
- Change the architecture or update the original idea if it doesn’t fit.
The code is still there. I still have to understand it, review it, modify it, debug it and decide whether it’s good enough. The difference is that I don’t burn all my energy just reaching the starting line.
What did vibe coding change for my retro game?
It let me focus on the game itself: the mechanics, sounds, sprites, enemies, gameplay and the experience I wanted. AI got me much closer to what I had imagined for years, and most importantly, I learned a lot along the way.
Maybe the real danger of AI coding isn’t that AI writes the code. Maybe it’s that we stop being curious about the code it writes. As long as I keep reading, questioning and experimenting, vibe coding doesn’t feel like the end of programming. It feels like another way to learn, build and turn ideas into something real.
If you want to go deeper on the fundamentals AI can’t replace, try a hands-on topic like Python string manipulation or TypeScript functions, and then ask your AI assistant to critique your solution.
See ya!