It’s the time of the year when many people start to countdown with their advent calendars. For coders, there is a special kind of calendar that keeps us busy and help us prepare for the celebration.

Advent of Code presents a free challenge every day until December 25th. Each year there is a different back story. Usually, YOU are the coder hero and you need to save Christmas.

You do not have to have a CS background to participate, the challenges are solvable without extensive math/programming knowledge.

How it works

The main goal is to collect 50 stars. You get stars by solving the daily challenges. The challenges are personalized, every registered user gets a unique generated input for the underlying problem. The problems are separated into two parts. The second part becomes available when you submit your successful solution.

You do not need to solve the problems in the actual day. On your personal stats page you can see how long after the opening did you solve the challenge for the actual day. The challenges open at midnight EST/UTC-5.

The two parts use the same input but require a different solution. From the site itself, you can not know in advance what will be the question to the second part. For this reason, it’s usually hard to give a solution to the first part, that can be simply reused in the second part, you usually need to do some restructuring.

You get a smaller input to test out your solution before submitting. And there is an explanation for that input to clear ambiguities.

Each day has a hidden easter egg, some funny words or references, that are made visible at the end of the journey.

Community

They have a community forum on reddit at r/adventofcode. There you can ask for hints/help, post your solution to the solutions megathread, or post fun crafts that you made with the data or during the solution.

My experience with it

It has been around since 2015, I first encountered it in university in the exam season, it helped me keep my mind sharp and let loose from the stress of the final exams. I did not have too much time to take it seriously, but it was a fun thing that I kept following every year since then.

It helped me strengthen my python knowledge and get to know it better. Helped me to practice Typescript when I first had to learn it for my work. Also, I used it to practice golang when I started with it.

I post all my solutions into my advent_of_code github repo.

Disclaimer

I was not asked to create this post, and did not get anything for it, I just wanted to share how awesome it is and some of my experience with it.

Happy coding!