What is WAY more difficult than you thought it would be initially?

I don't usually speak openly about this kind of thing, but enough people have assembled enough pieces of the design process that it's probably safe to discuss it a little. The short answer is that making puzzles is hard. The long answer is subtle and complex: I have the betatesters rate the puzzles in difficulty and I use that information (along with whether the puzzle falls on a weekend, whether the puzzle is close to other puzzles that require a similar skillset, whether the puzzle needs to come early because it's a precursor to a later puzzle, whether there are too many hard/easy puzzles in a row, what point in the month it is, etc etc etc etc etc) to decide the puzzle order. It's not meant to be a perfect monotonically increasing sequence. Plus, it's hard to predict how people will handle the puzzles; I try to enforce a minimum amount of adjacency-variety to counteract this. The same puzzle has been rated both "easy" and "hard" by different betatesters with different backgrounds. A single puzzle doesn't have one true "difficulty" score. Even things like average leaderboard times aren't a good measure - that just tells you how long the fastest super-competitive people took (and thus suffers very severely from survivorship bias), but totally ignores (for example) the amount of work beginners would have to put into a similar problem. Day 3 was a good example of this - people who wrote "a for loop that walks in a spiral" found part 2 very easy, while people who "did some math to find the answer" were forced to take a totally different approach for part 2. Day 7 isn't an intrinsically hard problem; most people have an intuitive understanding of "balance" as it applies to the physical world. However, day 7 was the first problem that seriously expected a recursive solution, and recursion is one of the major hurdles for beginning and even intermediate programmers. Day 8 was really easy for you; it was also easy for many other people, but not as easy as many of the earlier days. It was also quite challenging for some people. It introduced somewhat more persnickety string parsing and (as many people have already observed) introduces some fundamentals of virtual machine design. If you found it easy, that's good - it could mean that it was a breather puzzle and tomorrow's will be tricky again, or it could mean that it's a precursor and you're on track to handle a more complex version of the puzzle in a few days, or it could mean you just have an above-average grasp of the concepts presented in the puzzle, or it could mean that I meant for it to be harder and totally misjudged the difficulty, or any number of other things. (At this point in the event, I won't tell which it is.) Advent of Code tries to be a lot of things to a lot of people, and so not every puzzle will be just beyond your skill level or fit just on the edge of your wheelhouse. If you'd like those things to be true, I encourage you to come up with new variations on the solutions (faster solver, new algorithm, weird solution, etc) or new variations on the puzzle itself (what if there is no number 5? etc). If you do this, please post it to the subreddit so that other people can enjoy and learn from your work. Anyway, it might be intentional, it might be you, and making puzzles is hard.

/r/AskReddit Thread