Advent of Code 2020: Days 7-infinity

The wrap-up

I meant to make this post a while ago, but I didn’t think it was too important. As you may have guessed by my lack of posts, I fell off the AoC train. Having made it to day 16, I’m pretty happy with how far I got, and in general, I had lots of fun doing the problems and learning OCaml along the way.

I stopped for a couple of reasons:

Reason #1: The problems became very time-consuming

I knew this was going to happen all along, since the difficulty tends to ramp up. In general, I’m okay with dedicating around 90 minutes a day to AoC, and after that it starts to feel like too much. On harder days, the problems can easily take me over 3 hours, so I have to set limits for myself.

Reason #2: I wasn’t learning anything new anymore

My main goal with AoC was to learn OCaml, and I accomplished that (at least to a basic level). There’s only so much you can learn about a programming language by solving these kinds of puzzles, and I think I came close to that ceiling. Around day 10, I was just reusing the same knowledge over and over.

Reason #3: Some of the problems were not enjoyable

This one is certainly subjective, and maybe the problems I hated were others' favourites. It sounds dumb, but I don’t like when the problems make me think too much. As I said above, my main motivation for participating was learning a new language, not to write clever algorithms. When brute-force solutions are no longer viable, it feels like grinding LeetCode to me, which I don’t plan on ever doing again.

Overall, I had a great time with AoC this year. I feel pretty comfortable with OCaml now, and I have some tentative plans to build something real with it. It was made even better by the community in the Julia Zulip chat, where we discussed the problems every day (despite me not doing the problems in Julia). I’ll definitely participate again next year, and again, I probably won’t finish! But hopefully I’ll learn something else, and have just as much fun as I did this year.

You can see all of my AoC code here.