The usage of AI, especially in the software industry, has increased a lot lately, but everything has a downside — and that, is, excess. Excess of anything is bad, and that includes the use of AI. With that in mind, in this post, I explore the downsides of vibe coding and how to balance it.
Recently, Zen van Riel - a senior software engineer at GitHub, shared a linkedin post about the dark side of vibe coding. He describes a developer constantly trying to fix "simple things" using an AI model but, unfortunately, the AI model fails to do so every time. It's not only a waste of time, but a waste of money (credits) as well. Zen wonderfully describes this through an analogy of fast food (hence, the title of this post).
\
In my opinion, that's a brilliant analogy because it talks about balance. Let me draw some parallels between fast food and vibe coding.
When you send a prompt and see output in a matter of seconds, you feel good. It gives you a dopamine hit, a sense of accomplishment, but it's only a matter of time when it all fades away.
When the AI model starts making mistakes and no matter which prompt you give, it still doesn't work, that's when you start feeling I could have done it myself.
It starts becoming messy if you look at the bigger picture.
If you don't know what you are building, AI model can use whatever it thinks is good to build your application and sometimes it's not the best for your application and use case. And, it can be very hard to refactor later.
For you to be able to give enough context of what you are building and why, you need to be aware of the available tools and techniques needed to make that happen.
Once you get the taste of it, you stop asking the "why"/"how" question. Questioning what the AI model does almost feels like a second thought. And you know what it does? It drains your ability to learn and grasp new things.
That's the reason I never recommend beginners to rely solely on AI tools for coding/programming. Always questions things and ask the model why it did what it did.
AI tools might get you the exact thing you want, but if you look closely at the code, (if you have decent knowledge about programming) you start seeing inconsistencies and tech debt.
If you only vibe code, you never get to focus on the grilling part of programming, which is to sit patiently and think about the problem at hand. You never really learn how to dissect a problem and solve it incrementally.
Some of the best solutions to software engineering problems I had occurred to me when I was asleep, walking or just wandering around with an open mind. Sometimes, all it takes is to take a step back and relax.
\