Ruminations on excerpts of research papers, blogs and books

Things to hand-code in this era

This is a small list of exercises, interesting and learning centric things I'd do to continue to enjoy programming, the way I learnt before 2022. These aren't strictly supposed to be "useful", but they are satisfactory in another sense.

  • Toy implementation of any concept you find interesting. Always fun to do, and is really the essence of the programming/cs philosophy. Learning to convert intent to code by hand has to be fun. It need not be fast, efficient or even useful. Write it because it's an art.

  • Write small compilers/transpilers in order to get my hands on with language theory and DSLs. These are rather useful tools and something (the last i tried) LLMs aren't great at. DSLs are laden with human intent on every step, something which becomes troubling to encode using agents. The recent project, Vera, which is a language meant to be generated by LLMs, is a good example. Reading it's Why/FAQ section, it really shows how much thought it goes into creating a language, and clear human intent.

  • Games. Coding up games was a huge reason for people to get into programming, and it's probably the least affected by coding agents. Games are purely made for humans, and cannot be easily replicated (what's the distribution for "fun" ?) and game programming still seems like a cool and complex skill to develop. Creating small scripting games in python, to using Unity/Unreal, it's still the best genre within programming right now.

  • Templates for new, weird ideas. The fuzzy ideas, though they can be implemented easily by LLMs, cannot be made without the LLMs making a lot of assumptions, or writing tests or writing code in a manner which is unnecessary for the small/weird idea you'll have. Write it by hand, and maybe after continue using the agent. Basically when it comes to niche ideas (or concepts new to use) we should flip the scripts: instead of agents writing the boiler plate code and tweaking later, we should hand write the template and use the agents later.

  • And lastly, a very oddly specific thing: learning to write dependently typed languages, or higher languages. Even though LLMs are now spitting Lean4 as if it's python, it's still beneficial to understand the language, and prepare to learn higher level languages, as it's a very interesting application of programming, and really worth exploring. There are a lot of other niche languages, and it'll be fun to sit and learn these, while the agents write js and py for us.

Hosted on streams.place.