Skip to main content

Vincent's Website

Things I Like (TIL) #13: Advent of Code

What is this? I’ve liked many things throughout the years. While some have fallen out of my attention, others remain firmly cemented in my memories and feelings. So, I’ve decided to start a mini-series where each week (hopefully), I pick something random that I like or have liked and discuss it, why I like it, and its impact on me. These things can be varied, and range from more trivial matters such as my favourite animal, to books, games, and movies I’ve liked, to topics that have shaped who I am as a person. The posts, accordingly, will vary in length. See my rating system here.

Welcome back to the next installment of TIL.

It’s the end of November, which means December is right around the corner. One of my favorite pastimes for the past few years is to participate in something called the “Advent of Code”. It’s basically an Advent Calendar, but for programming. Every night in December at midnight Eastern US time, a new programming puzzle with two parts is released. People then race to complete it in whatever manner they choose for a spot on the global leaderboard or their friend leaderboard. It’s a no-holds-barred puzzle, so any tools to solve it are allowed. Many people choose the venerable Python programming language, while others go crazy and use Microsoft Excel to compute some of the puzzles, or even Minecraft’s command language.

The event held its first iteration in 2015, while I first participated in 2016. This year is the 6th annual Advent of Code. To date, I have attempted all of them to varying degrees of completion, all of them (save for 2015) “live” as the problems were being published daily.

At the time of writing, here’s my status:

  • 2015: Attempted after the fact in Rust, complete.
  • 2016: Clojure, nearly complete (missing two days)
  • 2017: Rust, complete
  • 2018: C++, incomplete
  • 2019: OCaml, incomplete

This year, I’ve ambitiously challenged several of my friends to use pure C (not C++) to attempt the problems. C is known for being very barebones and down to the metal, so all of us should kiss goodbye to any hopes of being quick enough to get on the global leaderboard. However, it should be a fun and educational attempt at low-level programming. Our rules are here.

TIL Rating: 2. It’s a fun an enjoyable annual tradition, but I wouldn’t be too sad if it stopped being held.