Distraction!

These are just a few thoughts I had in response to the video below.

The speaker notes the advantages of reading, as it typically requires more focus.

While I agree with his point, I must digress with a complaint about the modern non-fiction book market: Unfortunately the majority (maybe around 80%?) of newly published non-fiction books (with perhaps some exceptions in fields like history) contain only enough substantial content to fill one or two articles, with the rest being pure filler. While padding books with fluff isn’t new, the rise of mass media and the internet has likely intensified this trend. These days, many authors approach non-fiction books primarily as marketing tools – essentially elaborate business cards to generate speaking engagements and consulting opportunities. While this makes perfect sense from a business and self-promotion standpoint, it results in books that actively work against sustained focus, wasting readers’ time instead of rewarding their attention.

The video also mentions the use of highly-distractable social media apps. Perhaps one potential antidote to our current attention crisis might be found in reimagining social media. I’ve been thinking about a social network specifically designed to eliminate instant gratification. Users would be limited to one post per day and would have to wait 24 hours before being allowed to post again. Comments would only become visible to the author after a 24-hour delay. The platform would deliberately exclude features like likes or popularity metrics, and there would be no real-time conversations. The core purpose would be to help users break free from the dopamine-driven cycle of constant stimulation that characterizes current social platforms. While such a network would probably struggle to find a wide audience, it’s an interesting concept that I’m considering developing with AI assistance.

Speaking of AI, I wonder if AIs like ChatGPT and Claude can help with focus? Searching around YouTube or Wikipedia to answers to computer science questions often risks getting distracted with bits of related but irrelevant information. Sometimes this may be a good thing, as you might discover something useful. But most of the time it’s just a distraction. Asking Claude questions, you get direct feedback without a bunch of related content competing for your attention.

Programming with AI: One Year Later (Guest Post)

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!