Build hands-on when the goal is to learn. Let AI build for you —- using tooling you’ve already learned —- when the goal is to use the thing.
I can't really get anything usable out of vibe coding. And when I can even get vibe-coded stuff to run, the security and data schemas are always so laughably bad that I could never release anything.
Now I'm trying to define inputs/outputs (OpenAPI spec, wireframes, etc.) and database schemas myself and have the model fill in the middle using the strictest language I can (usually TypeScript) so that some bugs will come out at compile time.
Regardless, every approach I've taken has required me to be an expert coder, and that's not going to change with LLMs.
How well defined are your requirements? Do you need/want a prototype to play around with to get a better perspective on your needs? What scale of project are you building? How novel is what you're trying to build - is it a technical play or is it more a marketing/sales play that just needs some software behind it?
Building prototypes with AI is very empowering. Rewriting large, technical codebases is a recipe for frustration. Shipping lots of "micro-SaaS" products using AI seems reasonable as long as you get value quickly and move onto the next one rather than going deep for years. They might also work well for smaller games.
A lot of people will say that you don't internalize what you've built when using AI. This has the potential to be true, but it doesn't necessarily need to be true. I was surprisingly pleased by how much deeper I thought about functional requirements after working with AI to create a functional spec., then a technical spec. from the functional, then an implementation plan from the technical. AI asked me numerous times for clarification in areas that, on first pass, I thought were clear, but had more issues than I realized. I do not think I would have gotten to as good of results had I just had the AI write code without planning, but there's nobody to stop me from attempting that.
Similarly, being able to build a working prototype in hours, not days, let me realize a lot of other issues much more quickly. There was functionality that sounded good on paper, but, once I got to actually play with it, was no good. This could've been achieved with a no-code solution, but building it with AI got me to effectively the same result without having to learn another tool and then translate designs from that tool into code.
All that said, it is practically guaranteed you will reach a point where, despite best efforts, using AI will result in some excess code complexity that might need to be triaged with a learned mind. The bar for when this occurs is certainly being raised as the tooling and methodologies improve, but it's still there. The more strategies you can employ to stave that off the better.
krapp•1h ago
That shouldn't stop you from learning or writing your own stuff, though, if only for personal enjoyment and education. Just understand those skills might not be worth what you expect to the marketplace.