7 Reasons to try Advent of Code
These days, the Advent of Code challenge is running, with people (and AI) all around the world trying to solve 24 programming exercises of increasing difficulty. The 25th challenge, released on Christmas Day, is usually easier to allow Christians to properly observe this important day without having their brains on fire.
I personally only completed the challenge in 2020, and it took me a few extra days to finish all the exercises, but I was happy to conclude before 2021. It’s quite challenging to handle the last days of work alongside a full-time software engineering career.
There are many reasons why people participate in this game:
- Achieve the best computing performance for each exercise. Some participants focus on achieving peak performance by using compiled languages and clever hacks. However, regardless of your approach, completing AoC requires a basic understanding of algorithm performance (remember Big O?), as certain exercises simply can’t be solved with a naive brute-force method.
- Do pure programming once a year. CPU, memory — that’s it for AoC. No need for frameworks, microservices, network I/O, databases, or any of the technologies commonly used by software engineers. Unless, of course, you want to use them.
- Learn a new language. AoC is a great way to apply new knowledge in Rust, Go, or Zig. That said, it’s hard to beat the practicality of JavaScript or Python for this kind of challenge.
- Learn programming from the ground up. AoC is perfect for students to learn the basics of computing and algorithms in a fun way.
- Compete on resolution time. There’s a global leaderboard with superhuman (and AI-assisted) resolution times each day after the exercise is published. For regular humans, you can create a private leaderboard to compete with friends or colleagues.
- Take on a completion challenge. Set yourself the personal goal of solving all the exercises from start to finish without any external help (aside from your favorite programming language’s documentation). That’s how I did it in 2020, and it brought me a lot of satisfaction every day and at the end.
- Write idiomatic code. Try to write the most readable solutions while taking full advantage of your programming language’s features. Turn your code into a work of art.
I encourage any programming enthusiast to try AoC. It’s true that the problems can feel repetitive from year to year, but the first year is a lot of fun. Reserve some time in advance 🙂
By Thomas Martin
Follow me or comment