I am hyped for Advent of Code every year. It's becoming one of my favorite holiday traditions. It's just really cozy being slouched over a laptop solving silly elf problems, while (hopefully) snow falls gently outside.
For the first time, this year I'm doing it in Rust! I have been absolutely loving Rust in my explorations this year, and I'm curious to see how it feel using it for these types of problems.
Normally, like other advent calendars, AOC runs from Dec 01 to Christmas. That's 25 days, many of which are filled with festivities such as eating and napping afterwards. This year, there will only be 12 days. In my most productive years, I've made it to day 15 or 16. After that, the problems get harder, and I find less time. I think 12 is absolutely perfect, and I feel pretty confident that I'll actually finish them all this year.
Also, the creator left a note about whether people should use AI to solve these. I absolutely love their response:
Should I use AI to solve Advent of Code puzzles? No. If you send a friend to the gym on your behalf, would you expect to get stronger? Advent of Code puzzles are designed to be interesting for humans to solve - no consideration is made for whether AI can or cannot solve a puzzle. If you want practice prompting an AI, there are almost certainly better exercises elsewhere designed with that in mind.
I think it's really refreshing to see a remaining true bastion of human problem solving. I feel really firmly that using any sort of AI auto-complete would truly rob you of solving the problem on your own. You don't get a chance to think, to consider. It sees the context, and will very likely give a good result right away. Sounds great at first, but wait, that's not the point! It's for you to solve the problem! Not so you can turn it in for school, or complete a JIRA ticket, but for fun. If you want to outsource your fun, your learning, however you think about it, go right ahead. I'm not interested.
All this being said, I can see the usefulness of using some sort of chatbot interface either in the IDE or in a browser, to ask about how to do X in this language, where X is something like "how to get the nth character in a string". This feels like it could be fair in some cases due to the ever decreasing usability of search engines for finding answers like this. Yes, you could just do it with the language docs, but this, or some sort of stack overflow browsing, feels very reasonable.
You can do advent of code with varying degrees of complexity/setup. While the core goal of: write program, run program, copy and paste result seems pretty simple, doing anything 1-25 times leads to some repetition — repetition you may want to reduce/improve in some way. If you want to go this route, there are tons of templates/starters available for every language. I chose to use Chris Biscardi's Rust template (which he discussed in this video). I've been super impressed by his constant content on Bevy and Rust, and wanted to see how he did things. Some of it is definitely more than I need, but I've already learned about some awesome tools:
If you're doing advent of code this year, have fun! If you're not, have fun too!
Regardless, happy holidays!
^^Previous: Create or Die