It's that time of year again, when all good little developers count down to the festive season with the Advent of Code.
It's a gloriously simple concept. Much like the Advent Calendar, each day in December, up to and including the 25th, contains a treat.
However, rather than pictures or vaguely stale chocolates, each Advent of Code day presents a coding challenge that needs solving.
Although the creator insists that a background in computer science is not a requirement, problem-solving skills certainly are, as is some experience in a programming language (although a specific language is not required). "Every problem has a solution," explained creator Eric Wastl, "that completes in at most 15 seconds on 10-year-old hardware."
Except installing Windows 11. Good luck trying to do that on 10-year-old hardware.
The Advent of Code has been running since 2015, with participants attempting to gather stars, of which two are made available per day. Complete the first puzzle to unlock the second one (and the second star). Fifty are on offer during December.
Each puzzle (usually themed) takes the form of some written text explaining a problem. Without wishing to spoil things, this hack's approach is usually to try to break the problem down into more manageable elements if the solution is not immediately evident. It's a lot of fun, although we draw the line at trying the Christmas Day puzzle. There are mince pies to be eaten.
- All change at JetBrains: Remote development now, new IDE previewed
- PHP Foundation formed to fund core developers, vows to pay 'market salaries'
- We're making F# more normal as a language, says its creator
- Microsoft previews Visual Studio 2022 for Mac, but why bother when VS Code runs just fine on Apple hardware?
Posting on Reddit, the Advent of Code's creator explained that "making puzzles is hard" and the work of beta testers was useful in scoring the difficulty of a given puzzle.
However, that score is not entirely reliable. "Even things like average leaderboard times aren't a good measure," he said. "That just tells you how long the fastest super-competitive people took (and thus suffers very severely from survivorship bias)."
Still, as a rule of thumb the difficulty ramps up over time, although plenty of tips can be found within the Advent of Code community.
This year, our language of choice will be Rust. However, that selection will be augmented by another calendar that promises a different beer for every day. How that will affect this writer's puzzle-solving abilities will be all too obvious by his absence from the leaderboards. ®