
What is Advent of Code?
Imagine an Advent calendar, but instead of chocolates, each day (at 06:00CET) gives you a programming challenge that could make even the coldest snowman sweat. You may wonder what's so funny about it, because from experience I can tell you that there are challenges that take hours and hours of your life like a dementor. Not to mention those moments of blocking in which you rethink if this programming is really your thing or if you would have been happier taking over the family business as your father or grandfather did... For me, personally, it has made me relive my student years, when programming was a bit like that, solving puzzles and using nested loops as if there was no tomorrow to solve the deliverable of the day. Those little competitions that we did every now and then in class where your only goal was to be better than your classmate Jose. Remembering with sweetness those years where everything was easier.
Basically, in the Advent of Code, you compete globally against other developers. You can also compete locally, in a private board that you access by invitation and your rivals are your co-workers, people in your area or that you have met on Reddit. The first person who solves the challenge of the day gets the maximum score (100 or less, depending on how many participants there are), the others who achieve the milestone add one point less until they reach 0.
Of course, the difficulty of the puzzles increases as December 25 approaches.

On a personal level the AoC has been a humbling experience, comparing your solutions with those of other internet users makes you aware of how much you still have to learn. In part you also come out reinforced, seeing that you have been able to solve a puzzle that resembles the one that a recruiter sent you years ago (which, at the time, you were not even able to understand) makes you realize how much you have advanced. You learn a lot of things, especially algorithms and data structures (Maximum Manhattan, Memorization, Dijkstra's Algorithm that I remember offhand), sometimes you don't end up needing them, but you read about them, use them as inspiration and learn in the process.
Part of the game is to read very carefully the statements that explain you what your code should do, otherwise you can go crazy trying to debug your creation only to realize later that you have been wasting your time...

And, among colleagues, it has been an activity that has given rise to many jokes, an ideal time to mess with JS, enjoy and laugh watching screenshots (own and others) with many exceptions, absurd execution times for using brute force and have fun with the memes that people upload on Reddit. If you like programming, you will definitely enjoy AoC.
After a few days, out of necessity, you end up limiting the hours you can dedicate to the puzzles because there are some that can easily take a day's work. I have made use of a 1h timer, but I admit that, at times, I have skipped it driven by the inspiration of the moment. When the difficulty reaches a level where it loses some of the interest and colleagues stop participating, the AoC ends up losing the fun. Everything is more enjoyable as a team and this is no exception.

In conclusion, the Advent of Code is more than just a programming challenge... it's an adventure that tests your skills, teaches you new techniques, and connects you with your peers. While it can be demanding and sometimes frustrating, it is also incredibly rewarding. It encourages you to excel and share experiences with others, whether it's competing in friendly competition or helping each other out of the mud.
If you have never participated, I invite you to try it next year, it starts on December 1st, some people start training in November or even in October. Not only will you improve as a programmer, but you will also be able to enjoy with your colleagues, as if it were a kind of «Team Building».
