Hello. Songkeys here~ :D

[Chinese] AdventOfCode


In 2017, I was in my second year of college. At this time, I had been studying computer programming professionally for less than a year.

Paul Dempster was one of our college teachers (after ten years at Nottingham, he now teaches at Lancaster). I still remember his enthusiasm in the classroom, accompanied by concise PPT layouts, and his proficient use of IDE and Terminal to teach us basic programming knowledge as clueless kids.

Compared to other computer theory courses taught by other teachers, I preferred his C language course. Because in my opinion, it was more practical and enjoyable. I remember the interesting and sometimes challenging weekly quizzes he gave us, such as completing linked list methods within a time limit, or formatting a disorganized C language source file within a time limit (at that time, I was foolish enough to manually format instead of using an IDE formatter). This interest allowed me to achieve a score of 99/100 in the final programming assignment.

My First AdventOfCode#

During the review season of the second semester of my sophomore year, Paul sent us an email introducing (I apologize for losing the original email because I can no longer log into my school email after graduation).

In the email, he introduced this website as a programming puzzle website, starting from December 1st until Christmas, with a daily puzzle consisting of two increasingly difficult parts. Completing each part would earn a star, and there were a total of 50 stars in 25 days. Many people around the world participate in it. People use it for speed-solving competitions, interview preparation, honing programming skills, competing with each other, or simply for entertainment.


Paul also created a private leaderboard for us to join and play together, although there were less than a dozen students who joined in the end.

I opened the website and completed the first day's puzzle in a few minutes, earning two stars. I was very excited.

One of my roommates, a top student, was also excited like me. We would eagerly wait for the puzzles to unlock every day at 1 PM (GMT+8, which is midnight EST), and then rush to solve them.

However, not every day went smoothly. The puzzles became more difficult as we progressed. We often submitted incorrect answers or wrote incorrect logic due to misunderstanding the question, which resulted in being frozen for a period of time. We also often had to wait a long time due to writing inefficient logic (once you play, you will see).

We clumsily wrote code, but were delighted to see it solve the puzzles. We worked hard to optimize the code, hoping it would run more efficiently.

Some days, I even created a visualization of the solving process.

In the end, we unlocked all 25 days.


We were very happy.

December Companionship Every Year#

Since 2015, every Christmas, AdventOfCode has had a background story that develops gradually with the daily puzzle updates, and it reaches its conclusion on Christmas Day. The participants in solving the puzzles have a happy and challenging month, leaving behind beautiful and profound memories.

And every year after that, I introduced this activity to different people - new classmates, new friends, new colleagues...


In the days leading up to 2019, I even tried to solve the puzzles using a different programming language every day (Songkeys/advent-of-code-2019).

Unfortunately, for various reasons, I couldn't make it past a dozen days and never managed to collect all the stars. I didn't have enough time to invest, and I didn't have the company of those classmates and friends anymore.

Let's Play Again#

In the blink of an eye, five years have passed, and it is now 2022.

I am no longer the clueless beginner in coding. Nowadays, the code I write is rarely for learning and interest, but more for work or project purposes. Although there is different enjoyment, it always feels like something is missing compared to before.

I have decided to set a goal - no matter what, I must collect all 50 stars on Christmas Day this year. And in the following days, I will slowly catch up on the puzzles from previous years.

If I have touched you, I'll be waiting for you on December 1st this year!


By the way, you can also explore these communities:

  • Discord: I have been playing on this Discord server for several years. It has the top 100 global experts, experts in various languages, as well as newcomers. People from different time zones often wait together for puzzle unlocks, discuss puzzles, help each other, and give hints.
  • Reddit: In this subreddit, you can see more activities (such as daily poems from a certain year), more amazing solutions from experts (such as someone solving it using Arduino, Minecraft, or a folding phone, or even writing a paper on today's puzzle), and many interesting memes.
  • Behind the scenes (videos): The author, Eric Wastl, has shared some behind-the-scenes stories in many occasions.

Let's play together.

Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.