Advent of Code

Short note about one programming challenge I have found on the Internet. Actually, a set of challenges that lasts for 25 days.

General idea

.. is quite simple: have fun solving problems. Sometimes fun it is not enough, so more elements were added. Competing with others. Passing time. Commitment for 25 consecutive days. Levels of complexity and skills set that both varies. Probably some more.

Most challenges (if not all) are based on wide known programming / algorithmic problems. Of course, all could be solved on paper, but sometimes I could take days. Even years. No point. We master machines to do the work for us ;)

Details

The competition starts 25 days before Christmas. Every day a single puzzle is published to all around the world. Each puzzle is a problem presented as a separate story. All put together could be published as an adventure book. The author is IMHO quite talented :)

Story usually contains some example data as input and output. Mostly a series of inputs separated by line. Output is always a single value that contestant has to submit. Contestant means you ;) One think to remember, each contestant gets his own custom set of inputs. Output is custom as well, so there is now way to find the right answer in whatever search engine you use :P

If the answer is wrong, you can submit multiple times. Although, brute force measurements have been implemented; some time interval between submits AFAIR.

If the answer is right, a second part of the puzzle is revealed. Usually it only takes to change one or two things in your previous solution. But sometimes you have to rewrite, or even rethink the whole idea. Depends on how properly you approached the first part of the problem. No programming language is forbidden. It is up to you.

In case of some difficulties with any puzzle, it is advised to the get to a dedicated reddit channel where people publish their solutions. Some ask questions. Some for guidance. Some ask why their code is not working as expected ;)

Results

Those who submitted correct answer as one of the fastest 100 get points. Each day best are listed in a Leaderboard table. All days scores summary is available there as well … and I guess that is the most I-wanna-be-there list :) Having said that, one can solve puzzles not competing with anyone. I haven’t. Mostly because puzzles were revealed when it is 6 a.m. at my place ;)

Those who are not the fastest also get a reward: stars. One star for each puzzle part. There is a list with a number of stars for each day and the number of people who solved day 1 puzzle from 2016 edition is around 13 thousands. So quite popular.

What’s more, some people push their solutions to the Github. Some even wrote bots to check list of scores for each day and if it is full - has one hundred rows - bot pushes current day changes to the public. Pretty clever :)

How I found out?

Well, I have got a bunch of feeds in my RSS reader. Luckily, on the first day of the 2016 edition someone posted a video on which one guy was solving the day 1 puzzle in PHP. That guy was Gary Hockin AFAIR. I liked the idea right away. I took part, so now I encourage you to at least try :)

What is it dude?

Advent of Code is what this post is all about. All aforementioned views are linked out there. Don’t thank. Sign up and have fun :)

Did I make it?

I was trying. At least for the first 12 days. Puzzle from day 11 just blew my mind. Also I had to finished one project, so unfortunately after day 12 I had to gave it up. This year plan is to finish all the 2016 edition puzzles, so that I can start new one and finish it on time. You can check out my solutions written in Javascript on Github. No pull requests, please ;)

P.S.

I liked the challenge website design as hell :)