For those of you who aren’t familiar, Advent of Code is a coding version of an Advent calendar. Each day in December until Christmas, a new programming task is published and competitors rush to solve it.
The funniest part is that I usually hate programming riddles, but the Advent of Code is different. Here are 3 reasons why:
Reason #1 - a distinct type of tasks
What I particularly like about it is that those tasks are about solution rather than efficiency or even code itself. You know the input data upfront, so you can feel that this could be solved even manually with pen and paper, but the dataset is simply too large to do it in reasonable time.
You can finally use a computer for the purpose they were initially invented - to speed up computations.
And to be honest, it feels great!
Reason #2 - Private leaderboards
There is a global leaderboard, where everybody in the world competes to be first to solve the problem in a given day.
But to me the actual fun part are private leaderboards. You can invite your friends and compete with them alone, which makes you more motivated to solve the tasks!
Even though there is a small disadvantage for “night owls” from Europe, as the new task is announced at 6am, it’s usually not a matter of who is faster, but who keeps going where others have dropped out.
Reason #3 - Motivation to try something new
If your only goal is to compete with others, you are probably using Python. However, the Advent of Code is very often a fantastic motivation to try out something new.
This year I’m going with Go to learn it from the side I might not have used that frequently at work. But others have many, many various ideas.
You can check them out on Hacker News or Reddit. One of my favorites is a 3D visualization of the solution (link).