Introduction
First of all, this might be more of a skill issue than a real problem, but I want to share my experience with these tools.
As an active user of 𝕏 (sometimes way more than I should and would like to) and an “enthusiastic indie hacker,” I frequently hear phrases like ‘move fast and break things.’
Vibe Coding
It is common to use AI tools like Cursor to speed up all this “Fail fast, fix fast” in the development process. With things like “Vibe Coding” gaining adoption even among people who have never opened a terminal before, which is exciting.
The problem is, at least until now, these tools have limitations, and the bigger your codebase gets, the clearer those limitations become. Eventually, you will have to step in, debug, refactor, and clean up the mess. The problem? You didn’t write that code, nor did another developer, it was a machine. Sometimes I catch myself spending more time fixing these things (not to mention the time spent prompting the AI to generate the broken version) than writing it myself.
Code review was never an easy thing. It is not your code; the logic hasn’t come from your mind, even reviewing code that came from my own mind is tough sometimes, imagine from others’ minds. But AI-generated code (huge amounts of it), oh boy… it hits differently.
The slop generated by AI
Sometimes the AI is like an overconfident but inexperienced developer who writes something that works but makes you question every decision. The structure is often convoluted, abstractions are misplaced, and sometimes, the logic just doesn’t make sense. And yet, there it is, shiny, well-indented, and ready to betray you at runtime.
AI is here to stay, and it’s only going to get better. But for now, using it without caution can be a trap.
Your brain has a context window too.
All those overcomplicated structures can consume a lot of time to debug them; it takes time just to assimilate them. It is like your brain has a “context window”, where you can hold just a limited amount of information, as discussed in Cognitive load is what matters. And when you are working with AI-generated code, it often feels like someone just dumped 30,000 tokens of spaghetti into your project and left you to untangle it.
You end up spending more mental energy trying to understand what’s happening than actually solving the problem.
The Hidden Cost of AI Assistance
As someone who used AI a lot but is now trying to avoid those assistances, getting back to actually coding and searching just like in the “old days”. Sometimes, it feels like you are re-learning how to code again. You get so used to these tools that you don’t want to actually think through anymore, or search for things, making you lazy.
I think one of the most important skills for a developer isn’t coding, it’s searching. Developers are professional Google users. Knowing how to search, where to look, and which Stack Overflow answer to trust is an essential skill.
If you start relying too much on AI to hand you answers, you lose that muscle memory. Worse, you stop questioning things. Instead of understanding why something works, you just accept it because GPT said so.
Sometimes, writing the code yourself is just…faster and better
Doing the “artisanal” job of actually coding stuff, can be more enjoyable (in the present and the long run, reviewing the code), more productive, and faster than vibe coding. The amount of stress “whipping” GPT to give you the right answer, can be more than just Googling it.
So what’s the right approach? Balance. Use AI for the boring stuff, the repetitive tasks, and the scaffolding. But don’t be afraid to get your hands dirty with the complex, unique parts of your application.
After all, that’s what makes programming fun. And isn’t that why we got into this in the first place?