I recall the summer of 1997 as the last one I spent coding. I had just finished my second year at university, during which we had been taught coding with Turbo Pascal. We spent that summer at my grandparents’ house because of some minor construction at home, and I needed to find a way to keep myself busy. So, I decided to code a Tetris game in Turbo Pascal.
Regardless of the outcome (spoiler: it worked!), I just loved the experience. To me, coding felt like solving a problem by breaking it down into elementary blocks that had to seamlessly fit together using efficient instructions. It combined problem-solving, logic, and tinkering – what else could an engineer ask for? But, for some reason, I never sustained that early passion after that summer: we didn’t have coding courses in subsequent years at university, Turbo Pascal was already pretty much obsolete (why the university taught an outdated coding system would make for a different post), and I didn’t have the time or patience to learn a more relevant language (C++) on my own.
Since then, the only time I’ve done anything close to coding was in my early years at Amazon (2014-2016), building occasional SQL queries to extract data and run basic business analysis. I still liked the logic involved in building queries and the underlying problem-solving it required, but I must admit it was less fun than I remembered from 1997. The context was radically different: there was a tighter time constraint which did not exist during my 1997 holiday, and a much larger knowledge gap to fill, both in terms of SQL language and the underlying data tables. This only increased my FOMO about whether I should (re)learn to code, at least as a hobby or maybe to keep up with an increasingly tech-driven world.
If any of the above resonates with you, I have some good news. Let’s fast forward to 2024.
Encouraged by a recent Amazon all-team event, conducted under the guiding principle of the company’s “Learn and Be Curious” leadership principle, and which included inspirational examples of how various Amazon teams had used (company-approved) GenAI tools to boost productivity, I felt it was time to overcome my personal FOMO about coding. I wanted to test how easy or hard it would be to build an executable piece of software (a game, in this case) using GenAI tools like ChatGPT or PartyRock.
The game is simple: as a player, your goal is to click inside a square that randomly moves every two seconds. To make it harder, as soon as you hover the mouse over the square, a new timer kicks in, and the square moves only a fraction of a second later, without waiting for the end of the full two seconds. If you're fast and manage to click on the square, you get a point. If you're not fast enough and miss it, you get no points and need to chase the square again to its new position. Total play time is 60 seconds.
Given my zero knowledge about coding (whatever I learned about Turbo Pascal 27 years ago is now both forgotten and irrelevant), building such an app from scratch would have taken me weeks. But with GenAI tools, it took me just three hours from start to finish, including all the inefficiencies along the way. Here’s how the process unfolded.
I started with PartyRock, using a very simple prompt for a basic version of the game: “I'd like to do a game. The goal of the game is to be able to move a pointer inside a square of 2cm x 2cm, and click inside it. However, to make it difficult, the square will change position in the screen 0.2 seconds after the pointer has reached inside it before clicking”. That prompt generated an interactive HTML5 canvas, a few plain-language code explanations, and some game instructions. Since I had no idea what an “interactive HTML5 canvas” was, I asked ChatGPT (“I have no idea of programming, but have generated an HTML5 canvas game. How can I try it?”), and got a simple answer explaining what it was and how to get the game running. The game wasn’t exactly what I’d asked for, as the square wouldn’t move at all until clicked on, but it was still impressive for just a few minutes of effort.
From there, getting to a finished version of the game took nine more iterations. I switched to ChatGPT 4o, as I found it easier to build on prior prompts. These iterations added features like a score counter, a success jingle for each point, a timer, and three levels of game complexity. They also helped with debugging, as the square would sometimes move before the two-second timer finished, even without a click. Debugging was probably the most frustrating part of the experience: I felt repeatedly misunderstood even if I described ChatGPT what was not right. It was just like when you try to get something fixed, and the person on the other side ignores what you want or simply does not get it:
“[…] The square movement is still not right. When the player successfully clicks in the square, the square will move (which is OK), but then will move again before the new, re-set 2-second timer is finished. That's not right. Please correct.”
“The issue remains. Please re-check!!!”
“Always the same problem. Please fix.”
Still, the larger chunk of the three hours was not lost in asking ChatGPT to debug, but rather in myself trying to read and understand the code, hoping that I would be able to debug myself. In hindsight, that was useless, inefficient, and wrong.
Needless to say, when the game finally worked, I was both amused and amazed. Amused because it had been a fun experience that reconnected me with the 1997 Tetris exercise. Amazed because of how quickly it all came together. It also sparked many questions about the future of coding. Chief among them: Is coding dead as a discipline?
I don’t know, but I don’t think so. Building my game was a very simple, isolated exercise. I can’t imagine an AI tool generating complex, high-value software based on prompts from a tech-illiterate person and having that result in a widely successful product. Not in the short or mid-term, at least. The large number of dependencies between disparate systems, increasingly complex security requirements, and the human need to “feel in control” make it unlikely that we’ll leave software building entirely in the hands of machines anytime soon. Even if counterexamples exist, I believe they’ll be the exception rather than the rule—they won’t be widespread enough to kill coding as a discipline. Instead, as I mentioned in this previous post, mediocre coders will have a harder time. They’ll face competition from less experienced but curious and resourceful individuals who can build their own applications with GenAI tools. Meanwhile, strong, experienced, high-judgment coders will boost their productivity further by using these same tools.
I’m clearly not the first person to try “coding” with zero knowledge using GenAI tools. The web is filled with examples (here’s one by tech entrepreneur Martin Varsavsky). If you haven’t tried it yet, I encourage you to do so, even with a simple application. In the meantime, if you’d like to test the game I built, below is the code. You can copy-paste it into a text file (txt), change the extension to .html, and double-click to play.
Have fun (non-)coding!
Thank you for sharing the experience! It's good to know one can built a simple game from scratch with no coding knowledge.
I don't think that software engineers will now become obsolete. Technically anyone can build a home, but the fact that you don't need to chop the wood by hand, but can buy prefab homes and put things together by hand on the weekend hasn't killed the construction industry.