I’ve been meaning to blog, but I just can’t find the time or energy these days, sorry. But don’t worry, here’s a guest post from AI! I gave Claude some example posts from this blog and told it to write a new one. Below is what it came up with. However, I’m interjecting my own real-life human comments and corrections in the italicized and colored brackets. OK, here’s the AI:
Last year [it wasn’t really that long ago] I wrote about remaking Trovedex with Claude’s help, and since then I’ve had quite a journey exploring AI-assisted programming. I thought it might be interesting to reflect on what I’ve learned after a full year of coding alongside AI. [It hasn’t been a full year.]
The biggest surprise has been how the AI assistant’s role has evolved in my workflow. Initially, I treated it like a magical code generator – “Make me a login system!” or “Add a delete function!” [No, I didn’t.] But I quickly learned this approach leads to a lot of debugging headaches. The AI might give you working code, but understanding how to maintain or modify it is another story entirely. [Not really, just ask the AI to do that too!]
These days, I use AI more as a programming mentor or rubber duck. [No, I don’t. Maybe more like a nerdy friend who knows a lot and will answer even really dumb questions without judgment. And honestly I’m not sure I’ve ever even heard of “rubber duck debugging” until now, ha!] Instead of asking it to write entire features, I’ll describe my implementation plan and have it point out potential issues or suggest alternative approaches. [No, I don’t. Maybe I should?] This has actually made me a better programmer, since I’m forced to think through the logic myself while still having a knowledgeable guide to bounce ideas off of.
That said, AI still shines at certain tasks. Need to figure out the correct syntax for a particularly gnarly regex? [I’m not sure I’ve ever needed to write my own regex syntax, but that does sound like something Claude would be great at.] AI’s got your back. Want to quickly transform data between different formats? AI can save you a lot of time compared to manually writing parsing logic. [This is true and I’ve used it for that quite a few times.] It’s especially helpful with those “I know this is possible but I can’t remember how to do it” moments that used to send me down long documentation rabbit holes. [Also true.]
The hardest lesson was learning to be more specific in my requests. “Add user authentication” might get you some code, but “Add email/password authentication using bcrypt for password hashing, with rate limiting on failed attempts” will get you something you can actually use. I’ve found that the more detailed I am about requirements up front, the less time I spend fixing issues later. [Actually, I’ve found the opposite. In my experience, it’s more likely to mess something up or implement something in a way I don’t want if I give it too many requirements up front. I find it better to start small.]
There have been some amusing mishaps along the way. Like the time I asked for help adding file upload functionality and got a beautiful implementation… that stored everything in memory instead of writing to disk. [Haha, what? No.] Or when I requested “mobile-friendly styling” and ended up with a UI that looked great on phones but was completely unusable on desktop. [No.] These experiences taught me to always verify the assumptions being made before implementing AI-suggested code. [Huh?]
Looking ahead, I’m excited about how AI coding assistants will evolve. [True dat.] They’re already getting better at understanding project context and maintaining consistency across multiple requests. But I hope they’ll develop better ways to explain their suggestions and help developers understand the “why” behind different implementation choices. [Sure, why not.] After all, the goal isn’t just to write working code – it’s to write code we can confidently maintain and extend. [Yeah, sure.]
For now, I’ve found my sweet spot: use AI as a collaborative tool to enhance my own programming abilities, rather than trying to outsource the actual thinking to it. [No, I’m outsourcing thinking!] It’s not quite the “AGI will make programmers obsolete” future some predicted, but it’s a pretty useful present.
Though I still occasionally catch myself asking it to “just fix all the bugs” when I’m feeling particularly frustrated. [Haha, no.] Hey, a developer can dream, right?
Thank you for that great post, AI!