Triangles all the way down
So how do ✨you✨ learn a new programming language? Or library? This is a set of exploratory projects, using the task I've repeated for years to muck around with new languages.
If you've wandered very far into coding, I'm sure you've met SO MANY versions of "Hello, World" out in the wild. I tire of them, my friends. They usually leave me with one of two problems: either they're too simple to teach me anything, or I tweak them minutely and pointlessly because copying and pasting someone else's code gets bo-o-oring.
So, rather than gold-plate the poor thing into oblivion or breeze through it without learning much, I give myself a task I first met in a college digital art class: make some version of the Sierpiński triangle. It's a fractal built by carving an equilateral triangle into smaller and smaller copies of itself (you'd be forgiven for mistaking it for the triforce). Most of what's below gets there with a method called the chaos game: pick three corners, start anywhere, then hop halfway toward a random corner and drop a dot where you land, over and over. It's, ah, point-less for a while, and then the fractal falls out of the noise.
This task has enough meat on it to teach me something, it makes room for recursion (a fine way to find out whether you can crash your system with memory errors), and it doesn't risk ballooning into a full application. Each language or tool below solves the same little problem its own way, which gives me an excuse to pick up that language's idioms as I go. It's dangerous to go alone. Take this fractal.
See also: my portfolio · my github i guess