The only way to learn a new programming language is by writing programs in it.
Coding Projects
Recent
litesite is a simple static website generator written in Python. It was a great way to dive in and start learning Python’s idioms. Back in the day I used PHP to stitch together my website; this time I wanted to write something others could also use, which forced me to think about how to leave choices open, and how to write legible rather than minimal code. The result no doubt violates the Zen of Python in many places, but it works as intended and I had a lot of fun making it.
Dill Thief will be a gentle browser game where you use light to dispel the darkness. I’m currently doing this one in Python, too, using pygame-ce and pygbag. Fun!
Ancient
In the last few years of the previous century I got paid to port and parallelize things in various flavors of assembly: the G.729A audio compression codec for IBM’s Mwave, the OpenGL 3D graphics API for BOPS’ ManArray.
Before that, in the mid-1990s, I added texture tiling to UNC’s Pixel-Planes 5. The codebase was in C and though it was a pretty minor code tweak, I was super worried I’d crash the whole system. (I didn’t.) It was pretty exciting; most of my time on the Architectural Walkthrough project was spent modeling Dr. Fred’s house in AutoCAD.
Later, in the mid-2000s, I wrote a few small PHP modules for osCommerce and its spinoff Zen Cart. I’d started my own webshop and wrote what I needed but couldn’t find: pdf invoices, iDeal payment method, on-the-fly invoice numbering, etc.
Also in the mid-2000s, I built a PHP engine to process natural language queries on a large company’s website. This was before the chatbot explosion, and I designed it from scratch. At the time, it added some welcome interactivity and naturalness to the visitor’s search for information, but it was a pretty simple program and in no way ‘intelligent’: much closer to ELIZA than to ChatGPT.