I’ve been coding ever since I taught myself BASIC when I got my first computer at age 13. I even entertained, at one point in my life, the idea of becoming a computer programmer. But, despite my love and my studies of the subject, I haven’t actually written that many computer programs.
I don’t regret the time spent on the subject in the least. It’s one reason, I feel, that I’ve always understood computers. I know how they “think”. Or at least I know enough about how they work “under the hood” to have a “feel” for them.
But coding, while creative, is tedious. Rather like writing—another thing I love, or, rather, love having done… I can’t, in all honesty, say that I often love doing it.
Which, oddly, is almost exactly what I say about confession: I hate confessing, but I love having confessed. Perhaps, if confession is “good for the soul”, one might say the same of writing, and maybe even of computer programming—if to a much lesser degree?
At any rate, the reality is that while I teach computer programming and have even gotten good enough to experience the “flow” state that real programmers sometimes enter when they’re highly engaged in a program they’re writing (very similar to what I’ve experienced in some of the few video-games I’ve really gotten good at), I haven’t often found that I’m able to justify sitting down and spending a lot of time creating and implementing my very own computer programs.
Part of this, I suppose, is simply that there are so many better programmers than me out there: with such an abundance of software to choose from, why would I need to spend all that time creating my own?
This is, of course, a variant of the classic programmer’s problem immortalized in xkcd:
In my defence (besides the above!), I do have an awful lot of other things that I’m interested in, which is why I recently posted the following note:
Anyhow, as someone interested in AI (since the days of ELIZA—or at least ELIZA as ported to BASIC) and in programming, I’ve been meaning to try this new “vibe coding” thing since the term was coined last February.
But, as usual, I found it difficult to get around to—or even to figure out what I might want to code with AI (other than the TRS-80 Color Computer BASIC computer game I’m still working on porting to PicoMite BASIC and that AI still can’t seem to port for me!) until I presented to a grand total of three audience members at an educational technology conference where every session with the acronym “AI” in the topic was packed out.
It was there, while listening to other presenters ramble on about the wonder and joy of AI, that I began some creative AI “doodling”, starting with using AI to code an interactive lesson on the binary and hexadecimal number systems. Since I’ve written about that experience at some length on my brand-new code.eh3.ca website, I won’t repeat that story here, except to say that my experience of fiddling with various AIs to experiment with creating interactive educational applets brought back to me both the agony and the joy of coding.
But it was perhaps the experience of cooperating with GitHub Copilot’s AI to create the main website (well, web-sites, actually) that actually brought me back to the “flow state” of coding that I so enjoy. As I mentioned way back when I first started here on Substack, I particularly enjoy publishing, which was why I first became enamoured with HTML—but then I’ve never really been fond of that new-fangled CSS. I understand the need to separate HTML’s semantic markup from the look of things, and the power of using cascading style sheets to do so, but I never really got the hang of CSS and simply despise all the time it takes delving into the Byzantine nuances of the language just to get things to look the way I want them to. And, just as I found when I finally used ChatGPT to create a CSS style sheet for my long-neglected ehewlett.net site, my experience of offloading the web-design and CSS onto GitHub Copilot reinvigorated my joy in creating and coding a brand-new web-site!
Does this mean that AI created my new “AI & AI Applets” site for me? Not exactly. But it does mean that I had, well… a copilot that helped me with the parts of coding that I kind of hate (recalling all sorts of arbitrary details and figuring out how to put them all together), allowing me to focus once more on the things I love about coding for the web: the creative selection and customization of a look and feel that suits and best presents the site’s content without the distraction of delving into the intricacies of CSS—and even the hand-coding of the site’s content into the underlying HTML.
I know full well that coding is not for everybody—and even that it’s not always for me. I’m also well aware of the many problems and challenges presented by the development and rise of AI—or, even more basically (pun intended), of the computerization of society that we find ourselves inextricably ensconced in. That’s a big reason why I’m doing the World of Code podcast. But there’s also beauty “when a plan comes together”: when the machines that we make actually serve the purpose for which we have made them and enable us to do even better that which we love to do. Which, in my case, is to discuss, to create, to present—and to program and to publish without getting bogged down by a gigabyte of gratuitous details.
AI is not perfect, even as a copilot, but I’m thankful that, at least for a moment, it gave me back my joy in code.
This was my experience building with Cursor's Agent. It actually helped me remember what I loved about programming in the first place - creating, building, experimenting, and experiencing that Frankenstein moment: "It's alive!!!"
I'm fiddling around a lot more now. I thought of a funny idea, and built it with AI in a matter of minutes, then launched it to Reddit, and have plenty of folks engaging with the dumb thing I built. As a professional programmer, it's helped me return to a state of play.
Here's my post if you're curious - the most convoluted AI module that helps AI agents when they need to know if a number is even: https://www.reddit.com/r/mcp/comments/1ktu7zg/i_made_an_mcp_server_that_tells_you_if_a_number/