Get Ready For Advent Of Code
As we get closer to December 1st, many families get themselves into the Christmas spirit. One way I intend to celebrate until I die, is with Advent of Code. One of my favorite holiday traditions and pastimes in general. I find it relaxing, incredibly satisfactory and a good conversation starter when talking with other programmers at school. I intend to just speak to a couple of challenges that I ran into and why Advent of Code is such a beautiful thing!
"The Pitch"
First is the incredible story telling, taking the reader through a whirlwind of emotions, and through the puzzles building emotional attachment to the all the elves who we need to help. Of course, I merely jest, the best part about Advent of Code is the puzzles. Puzzles, puzzles, puzzles. And oh how good they are. I often find myself just smiling as I read the problems and the different solutions come rushing to my head, a feeling any programmer who has done Advent of Code can attest to. Here is a small list of some of my very favorite puzzles that I've done. Not only are they incredibly fun to solve, but Eric Wastl did a fantastic job curating so many of these gems. (I've been doing puzzles from 2020 recently)
- 2020, Day 17: Conway Cubes
- 2020, Day 12: Rain Risk
- 2020, Day 7: Handy Haversacks
- 2022, Day 9: Rope Bridge
- 2022, Day 5: Supply Stacks
In case you don't know what Advent of Code is, it's best described on the Advent of Code Wikipedia page where the puzzle design is described:
"Puzzles consist of two parts that must be solved in order, with the second part not revealed to the user until the first part is solved correctly. Participants are awarded a silver star for completing the first part of a daily puzzle, and a gold star after completing the second.
Each puzzle contains a fictional backstory that is the same for all participants, but each person receives a different piece of input data and should generate a different correct result.
Puzzles are released on a daily schedule from December 1 to December 25 at midnight EST. There is no time limit to complete the puzzles, and puzzles from past years' events remain available to solve."
Why it's the best thing since Neovim
For me personally, I was introduces to Advent of Code (AoC) through an impromptu computer science teach in my High School. The real computer science teacher quit 3 days because school started, and they had to ask a member of IT to fill the role. Although not a trained teach and lacking the skills to lead a class, I still really enjoyed his class and got to know him a little better outside of class. He played movies like Weird Science), put on a live stream of ShmooCon some sort of hacking convention, and of course introduced Advent of Code. I fell in love with it and did as many of the 2022 problems as I could. Only making it to about day 9 before being unable to go any further. Since then I've improved significantly but also have become much more attached to Advent of Code.
The next year I became the president (technically co-president) of the programming club at my high school. If I was going to set up programming related events and activities, Advent of Code HAD to be one of them! So of course, the programming club hosted prizes for 1st and 2nd place in the programming club's private leader board. I even go to invite that IT department member to participate with us and he put me and a friend up to the challenge. We and my fiend would be up till midnight, waiting for the puzzle to drop, and once it did, scrambling to put together a working solution before the IT code wizard. There were times we were able to best him, and other times where we were totally squashed. But it was incredibly fun and challenging.
This year I hope to put together a lot more participation now that I'm in college. I've met a lot of people who enjoy computer science enough to want to do it for a living and I'm hoping to get a healthy participating leader board so I can converse, compare, and compete against a bunch of geniuses. Of course, I must put up a prize and I play to give out hand-written letters of invitation to the private leader board for the 2024 Christmas season. If your reading this and want to be included on the leader board, feel free to join with "2111709-786ea57b" at leader boards on the AoC website.
Whats in it for you?
The website describes it well in the about page, but AoC can be used for interview prep, to improve problem solving skills, learn a new language or tool. For example, I used Advent of Code to learn C++, and intend to do the same this year. I want to expand into the standard library more, use popular tools like std::string_view, the algorithms header and multithreading (even though it's probably not necessary). AoC helped me learn vim motions, and I'm pushing many to use this year's AoC to do the same (I'm not an elitist, I swear). The community is thriving too! Honestly it's the best when you finish both parts of the puzzle, and get to go to r/adventofcode and can understand all the references, memes and look at other implementations as well, second only to getting that sweet sweet gold star on the first try.
I think everyone who loves programming even half as much as I do should be vibrating with excitement on November 30th at 11:59 PM. If you want to talk about the puzzles, have questions about AoC or just want to talk, feel free to email me at hdiambrosio@gmail.com. Good luck and merry coding!
p.s. one day i'll get all the stars, you just watch