Let Me Write the Loop
Give me a grid of squares and the problem of cutting a maze through it. I’d quite like to write that loop.
Imagine a cursor moving from one square to the next, marking where it has been. It knocks through a wall to reach an unvisited neighbour. At a dead end it has to go back until it finds somewhere else to go. There is enough here to get wrong, and enough to look at while working out why.
An AI assistant could take over the interesting part before I had properly started. That would be useful if I needed a maze for something else. For this little project, I want to keep the movement and the remembering to myself.
I don’t think that is a particularly difficult preference to explain. The awkwardness comes when finishing quickly becomes the assumed purpose of sitting down to write a program. Then every part you choose to do yourself starts to look like a delay.
Christopher Phiri’s presentation on recreational programming describes something that gets lost in that view: writing a program because the activity itself interests you. The examples go well beyond making useful little utilities. People explore unfamiliar languages or build a small version of a system just to see how it works.
I like that last possibility. The maze could be a poor game and still be worth making. Perhaps there is no game at all, just a way to pause the cursor and look at the squares it has visited. Adding a player, levels and a score could turn a pleasant small problem into a project I hadn’t wanted.
Ben Eater’s breadboard computer is a much more substantial example of choosing the work. He documents building a programmable eight bit computer from simple logic gates, including the clock, registers and control logic. The explanations are a large part of what makes the project interesting. A quicker way to acquire a computer would leave those out.
I don’t want to build every layer of every hobby project. There are plenty of details in even a small browser program that could use up the available evening without getting anywhere near the thing I came to do.
Some help would be welcome
For the maze, I could ask an assistant to draw the blank grid and put a button beside it. Or ask how to slow down the display so I can see each move. If my interest is the search through the squares, I don’t need to make browser event handling the price of admission.
The boundary could change. Halfway through, the drawing might become more interesting than the search. I might decide I want coloured trails, or several cursors getting in one another’s way. At that point, handing over the original algorithm could be a reasonable way to keep going. A hobby does not need a permanent policy on which lines may be generated.
There is a good account of this other kind of enjoyment in Simon Willison’s conference schedule project. Working on his phone, he used AI tools to extract the schedule and build a more useful interface with calendar export. He plainly enjoyed making it happen. The account also includes false starts, incorrect dates he supplied and later fixes for excessive image downloads and accessibility. He credits his existing web development experience. It is a useful example of one person’s project, rather than a promise about what a new programmer will find easy.
That sounds like a worthwhile way to spend some time too. The particular pleasure is getting an idea working with the tools available. I don’t see much value in telling someone who enjoyed that process that they chose the wrong hobby.
A reader on GeekNews describes making a calculator for fun, then adding enough that it became a statistics and graphing project. They say AI let them try things they had previously only imagined. I haven’t inspected the software, but the reason they give for making it is clear enough.
The problem is asking the tool to do everything by default, then trying to find something satisfying left to do. I’d rather decide what I want to work on before handing the project over. That may be a very small piece of it.
There is an audience sometimes
One objection in the Hacker News discussion of Phiri’s talk deserves more than a cheerful reminder that nobody is stopping us. Some people enjoy showing what they made. If the audience assumes it was generated, or is less interested because similar things are easy to produce, something they valued has changed. Other commenters welcome the extra possibilities. A discussion cannot tell us how widespread either feeling is, but those are different concerns.
I don’t have a tidy answer for the person who misses that recognition. Sharing the decisions or the unfinished attempts might give someone more to engage with than a finished screen. It might not replace the response they used to get. Calling the activity a hobby doesn’t make that loss irrelevant.
There is also nothing wrong with being tired of programming. An evening spent away from the keyboard needs no defence. Phiri’s presentation is an invitation to people who want to explore, not a reason to turn leisure into another professional obligation.
For someone who does want to make the maze, though, the next step can be quite ordinary. Open a file, decide where the first square is, and work out what has to be remembered when the cursor moves. If help with the page would get that started, I would ask for it fairly specifically:
“Draw a blank grid on a canvas and add a button to clear it. Leave the maze generation empty. I want to write that part.”
Comments