Over Thanksgiving, a fellow suggested I take a look at writing some bit of software to do with juggling voxels. I explained that there are three general kinds of programming that are specifically not fun for me: compilers, user interface, and drivers. Doing lots of math and spatial geometry in an attempt to squeeze out a little bit more performance feels, to me, kind of like a combination of all the trickiest bits of UI (graphics rendering, most especially) and device drivers (lots and lots of just-barely-above-the-metal instructions to a coder-abusive toolchain, where writing and debugging probably goes smoother if you’re just staring at hex). This is probably unfair, so maybe I will take a look, but that’s where my biases are.
The other day, a friend opined that they didn’t like Advent of Code because it’s a competition and not just coding for the sheer joy of learning. I see that, for sure. In years past, I’ve tackled it to practice various aspects of Swift programming: using different editors, different build methods, getting familiar with various libraries. But I’ve always dropped out after a short while, as at some point the problems just start seeming like obnoxious homework, and I’m not even getting a grade on this stuff. This year, I hit that point midway through day 3 — a new record! The second puzzle for day 3 is, essentially, “build a stack processing state machine.” That smells like a compiler to me.
Some people love doing this kind of problem analysis and then writing implementations of their solutions. Bless ‘em, we wouldn’t have compilers without these folks, and far be it from me to tell someone who’s having fun that they’re doing it wrong. But this year, I don’t need to practice this particular bit of development and it’s not fun for me. So I’ll be doing something else.
I am spoiled by ruby (and regex, kinda)! I struggled with day 3 part 2 for a while and then I looked at reddit for clues. Basically the subject line “beware new lines” – and then I fixed the line of code I’d botched and my solution worked.