
Hi. Me again. It feels like I come to blog these days mainly just to bemoan the state of the world, tell you what I’ve been reading or watching, and talk about AI.
Well, today’s an AI day again. 🙂
I’m still plugging away at the iOS app I’m trying to make. As of today, I’m on my fourth major attempt at the thing. In other words, I’ve started over fresh four times now.
On the one hand, you’d think that I’d be getting tired of realizing how much I didn’t understand of what I was trying to do. Well, you’d be right on that point. Many experienced coders make fun of the sort of “vibe coding” I’m doing, and speaking from experience now, they have every reason to do so. You can sit back and bark directions at AI, and it will do a passable job of creating something. And that something will generally kind of look like something someone might make if they were trying to do the same sort of thing you were trying to do.
It just won’t be all that dependable. When I was first starting out, I was the little pig trying to make his house out of straw. It didn’t do that great of a job when it came to standing up to real world environments.
So I learned! I began again. I upgraded from straw to sticks, and I felt like I was really making progress. Until the winds came and I saw the way the walls were rattling, and I realized that I needed to go back to the drawing board again.
This is something I don’t think many vibe coders really want to do. The whole attraction for many of them is how easy this process could be, theoretically. But that’s just not where AI is yet. (Note the “yet” there. The biggest limiting factor for AI is how constrained it is in how much of a project it can look at at once. With a narrow scope, it continually forgets what you have and haven’t done. That will change as it gets better and cheaper, and then who knows what will happen.)
As I’ve used AI more and more, the comparison I come up these days to talk about how to use it is to think of it like a personal trainer and a fully equipped gym. If you want to get fit, you go to the gym. However, simply being in the gym surrounded by all that equipment doesn’t, sadly, get you any closer to being fit. Likewise, going up to a few of them at random and just kind of making exercise-y movements with them also doesn’t do much to help you reach your goal.
However, there’s someone in the gym who actually knows what they’re doing, and if you ask that person (the personal trainer) for guidance on how to use the equipment to become fit, then you’re off and running. Potentially. It’s up to you to take what the trainer told you and to actually put it all to use. To follow the plan dutifully. To go back to them for clarification if and when something doesn’t make sense. And if you do all of that, then you can eventually become a real power house. (Or so I’m told.)
Using AI to code (or do any other task you’re unfamiliar with) is similar to this. Just adding AI to the mix won’t magically make you better at something you don’t know anything about. It’ll make you feel like you’re better, but it won’t ultimately amount to much. But you can ask AI to give you a roadmap to success. You can tell it all about what you want to do, and it will give you a step by step plan to get you where you want to go.
When I started my app over for the fourth time, I did so by following this path first. I developed about twenty documents (with the help of AI) that describe exactly what I want my app to look like and what I want it to do. Then I used those documents (and AI) to create a master plan. A 56 step program to get me to a complete, fully functional app. I refined everything a few times, asking different AIs for input, to try and be sure it was as solid and well-rounded as I could make it.
And then I started.
I just finished step 15 yesterday. It’s taken me three days to get there, working on it in my spare time. I’m seeing how much behind-the-scenes structural work I should have been devoting to my app before I began making the front end. I hit dead ends now and then, but each time I complete a step, I save the progress. That way, if and when a dead end comes, I can just go right back to that save point and start over.
Much of the work flow is very different than what I’ve been used to my whole life. My natural instinct when I’ve been working at a problem for a long time is to keep plowing forward. I don’t want to give up all of that effort by just starting over. But with AI, you can Groundhog Day your way to success. You can find out what you were doing wrong, and then instead of trying to hammer it into shape, you can just start over and avoid stepping in that water-filled hole in the first place. (It’s a doozy, after all.)
Now, is my app complete? Nope. Not yet. So there’s definitely the chance that I still don’t understand what it is I’m doing. But keep in mind what my development schedule on this app has been. January 8th, I decided to learn how to code in Swift so that I could make it. January 28th, I decided I didn’t like learning how to code in Swift, so I wanted to see if I could just use AI to do the whole thing. Here I am 70 days later, and I’ve come a very long way.
I keep checking in with AI, having it look over the app as it currently stands, asking it if there are weaknesses. It assures me I’m doing great, but it might be lying. Then again, I imagine personal trainers might do the same sort of thing sometimes: encourage their clients to keep pushing forward, even if the progress they’re making isn’t nearly as big as their clients might wish it to be. Is that a bad thing?
Not in real life. And in terms of this project, I’m definitely learning more about how to work with AI, so it’s a win no matter what happens.