One of the reasons I stopped participating was that as the second half of december was approaching I had less and less free time for solving the puzzles. So to me it is also a welcome change, I will try to finish it again this year.
I once has this half serious idea to do "Advent of Parenting", with one problem per month, and you start after Christmas. As in, youre so delayed you start in the New Year, and have time for one problem per month.
Question is, when you write down the numbers of excuses and the number of things you could so each month, as in your input .... How many months do you have less excuses available than problems you could solve? Part 2: The kids want to check whether your algorithm works correctly. For that they have devised a formula: Position of the month in the input, multiplied with the number of problems not excusable to not solve, summed up for all months of the year. What is the checksum of your excuses - problems - report?
This. The best I've ever achieved is maybe 15 puzzles on one year, with gaps for the days I missed. And this was when the puzzles were incrementally building upon implementing a bytecode interpreter, which was relatively little work per day.
Once I miss my first day, playing catch up is an effort in vain, as the puzzles start taking 4+ hours to solve each, solving multiple in one day is a full-time commitment.
Most advents of code I've fallen off sharply after day 7-10, if not sooner, and I'm pretty sure I'm not alone in this. I think this is a welcome change.
Yeah, totally this. I've had so much fun with AoC, learning nim, elixir at the same time.
I would normally tap out around the same place on the first dynamic programming puzzle which just takes me so long to wrap my head around each time (tips anyone? :)).
I welcome these new changes, and what ever the format are very greatful for all his hard work!
They're not as magical as they seem, you just need some practice. Read over the dynamic programming section in https://cses.fi/book/index.php (pdf link near the top is the free English version), then do a few on https://cses.fi/problemset/ . You'll be able to handle the AoC dynamic programming ones with _no_ problem at all.
Most years, I end up finishing the puzzles in January. Same reason- I end up missing a day due to schedule issues. Since it's just a 'for fun' challenge, it isn't the end of the world if you fall behind a bit. That said, this doesn't work if you are doing this as part of a group.
Same, I love AoC but I just never have time for them (December is always the busiest time of year in my job).
I would have liked if a puzzle was released every 2 days though so it still spanned the whole month. Would be more aligned with the advent calendar concept. In fact in previous years the puzzles have always had two parts so if that format is still being retained there will still effectively be 24 puzzles.
Then again who has the time in the latter half of December?
I completed AoC on time every day once and let's just say it wasn't a very pleasant experience. Very similar to sticking to a too ambitious, too rigid gym schedule. Still time well spent, but it sucks out all the joy.
I participated in the very first AoC and solved all problems, but the last 6 or 7 only way after Christmas, when I had more time, holidays, and I just wanted to complete the contest.
Then there was another AoC … and no, I didn’t solve all the problems, not even close. In most years I got 24 to 36 stars, 2018 and 2020 I did not participate.
Last year I was in a good place, wanted to practice a new programming language (Crystal). And I was determined to get every puzzle solved in 24 hours. And I did it, but for two or three puzzles it was oh so frustrating. With angry screams, searching help in the IRC, for two puzzles even not understanding for many hours how it works. And then at 1:52 AM (puzzles start at 6AM for me) I found the solution. It was liberating and gratifying, but at the same time so tiring and frustrating. The only reason I went along with was the overall goal, getting a permanent record of having solved every puzzle on the first day. And I am happy about it (in hindsight, it was the last opportunity for doing so with 25*2 puzzles), and now I never need or want to do it again.
Or do I? Only 12 days of trying to get solutions are much more possible.
Agree. It was getting in the way of me spending time with the family because I was distracted mulling over the puzzles.
I had thought last year that they could peak the difficulty around the middle of the month and bring it down a bit leading up to the 25th. But just finishing it earlier is probably better IMO.
You can see aggregated results on `stats` [1] for every year. In general, half the people drop in the first 3-4 days. For last year, by day 12 there is less than 1/5 of day 01. While the stats do count people that completed later, the shape appears to track well with what I saw during the events since 2021.
I stopped doing it because it felt like I was restarting every puzzle rather than building on top of something, and that's not all that interesting to me. I'm not judging the process, as that's just my personal perspective about what's interesting to me.
This is fantastic in every way. The hardest part of participating for me was finding more time closer to the holidays as the challenges got harder. Fewer, better challenges, with more space between them and the end of the year is a brilliant solution. So excited and grateful.
I don't see how less puzzles is an improvement - you always had the option to only do 12 puzzles and skip ones you don't find interesting. I guess just from a statistical perspective, you're probably more likely to find 12 puzzles you find interesting out of 25 vs. find all 12 puzzles interesting.
There's also nothing preventing you from doing more of them, or finishing in January... in fact, I know some people that space them out over the entire year, only doing a handful each time when they have lots of spare time.
I came here to say almost the same thing - except I don't think there's more space between the puzzles. From the post:
Why did the number of days per event change? It takes a ton of my free time every year to run Advent of Code, and building the puzzles accounts for the majority of that time. After keeping a consistent schedule for ten years(!), I needed a change. The puzzles still start on December 1st so that the day numbers make sense (Day 1 = Dec 1), and puzzles come out every day (ending mid-December).
Honestly, I prefer this. I've never had time to finish AoC because as we get later into December, I'm crunched with wrapping up work things so that I can do more family things and prep for the holidays. I look forward to this every year, and every year, I can see that I stop around day 11 +/- 1 day (except for 2021 when I somehow got to day 17).
I came here to say almost the same thing - except I don't think there's more space between the puzzles. From the post:
Why did the number of days per event change? It takes a ton of my free time every year to run Advent of Code, and building the puzzles accounts for the majority of that time. After keeping a consistent schedule for ten years(!), I needed a change. The puzzles still start on December 1st so that the day numbers make sense (Day 1 = Dec 1), and puzzles come out every day (ending mid-December).
Whenever there's a change like this, my gut reaction is to grieve and try to imagine ways that things could be kept the same.
After thinking, "maybe puzzles could be designed by a group instead of an individual and they could share the work," I then thought, "and couldn't an LLM help?"
And with that, I had to remind myself: Advent of Code isn't about there being 25 puzzles, and so maintaining volume at all costs has nothing to do with it.
And aren't we so lucky that it isn't! Aren't we lucky to have had the prior 500+ challenges given as gifts over the years! Aren't we lucky to have a great demonstration of humility and care! Aren't we lucky to have 12 new gifts to look forward to this year!
I think the easiest way to have 24/25 of something would be to have the "part 2" for each puzzle get released the next day. It would probably ruin the momentum about as much as having days off would (as another alternative to make the timing fit "advent"), but there could be a fun extra layer of puzzle with a hint of what the part 2 will be so people can try to speculate and modify their code in anticipation.
I am not aware of Eric saying something about that alternative, but this comment on reddit[1] makes a lot of sense to me:
> Given that part 2 is often a very simple modification of part 1, this could lead to many of the days being total letdowns. I can enjoy a simple puzzle, but I'd be a bit disappointed if one day is a single line change to the previous day.
I'd also add that not having to be worried everyday about something makes a lot of sense. He can have fewer days "on call" in December with.
I’ve been trying to design a puzzle for a game this year that humans can solve but LLMs can’t. I’ve come up with one, but it was hard work! It’s based around message cracking.
There was one in a previous AoC that I think stumped a lot of AI at the time because it involved something that was similar to poker with the same terminology but different rules. The AI couldn't help but fall into a "this is poker" trap and make a solution that follows the standard rules.
We all have our writing quirks, like how some people use shorthand for words where there is only a marginal difference (like "people" => "ppl"), or even people who capitalize the start of sentences, but not the start of their whole text.
There's plenty of prior work to go on. I mean, you could use a font ligature or one of the browser extensions (although I don't know if Chrome still lets you have a browser extension touch all text).
Change ChatGPT to 'my drunk uncle' while you're at it.
It affects a certain disposition for the writer; the information it contains isn't in the actual data they are expressing, but rather the state of mind that they express it from, which can be important context. Oftentimes it can indicate exasperation, which is an important social queue to be able to pick up on.
A little excerpt from Arlo Guthrie
"I mean, I mean, I mean that just, I'm sittin' here on the bench,
I mean I'm sittin here on the Group W bench, because you want to know if I'm moral enough to join the army, burn women, kids, houses and villages after being a litterbug."
Imagine that without the "I mean"s in it, and the importance of how they convey his stance on the situation.
They have hundreds of challenges that humans can solve in under a minute which LLMs can not. Seems the general trend is figuring out the rules or patterns of the challenge when there are few examples and no instructions.
Perhaps coding exercises that require 2d or 3d thinking, or similar. This is where I have seen LLMs struggle a lot. There are probably other areas too.
Hate to be the... whoever I'm being right now, but names have meaning. It's the reason to have them in the first place.
> Advent of Code isn't about there being 25 puzzles, and so maintaining volume at all costs has nothing to do with it.
It's the Advent of Code. Not "Random late year event with no religious / commercial tradition connotations whatsoever" of Code. The 25 is there in the name. It's the whole point :).
Advent does not mean 25. It just means 'the coming', so 12, 25, 1, 8 are all acceptable lengths. And if you reay need it to be 24 you can calm it 0.5 per day.
It's a reference to a German tradition of Advent Calendar with 24 small doors. Every day from 1st to 24th of December children would open one door and find a candy, a picture, a small toy, a quest etc. depending on calendar's theme
I get it, but Advent calendars are not just German. I am pretty sure they are common all over the western world where Xmas is celebrated. But Advent doesn't in any way mean 25.
They're definitely not German now. They may have been originally, but these days, they're first and foremost a commercial phenomenon, meaning they went global. Chocolate advent calendars. Trinket advent calendars. DIY advent calendars. ${insert your most hated kids toys franchise} advent calendars. And so on.
Really though, for Catholic and protestant churches, Advent starts the fourth Sunday before Christmas, so isn't always the same length. In Orthodox Churches, Advent is 40 days (starting Nov 15) just like Lent.
Right, mini-spoiler if you've never reached 50 stars for a year:
The 50th star is awarded for having the other 49 stars and then basically clicking OK I think. If you've been diligently solving them in order, it means you effectively get two stars for your final 49th puzzle of the year on Christmas Day, which makes sense because then the puzzles are very hard and a "normal" puzzle wouldn't leave much time for other Christmas Day activities. But if you're the sort of person who often gives up on a day and never comes back you may never have seen this because you never got to 49 stars.
You're not quite right that the Christmas Day puzzle is trivial - it's the first half of a maybe week 1 type difficulty puzzle, but there just isn't a second half:
Here's the puzzle text for last year's Xmas Day (if you are logged in you can play, but even without it will explain the puzzle it just won't give you an input to test your solution):
Advent comes from the Latin word adventus, which means “arrival” or “coming.”
It refers to the coming of Christ. There is no 4 in the name, no 24, 25 or whatever else.
And even in the places where it’s 25 days, there’s plenty of advent calendars that only have 12 doors - though they’re typically budget versions of expensive calendars (eg a dram of whisky behind each door)
This largely depends on who you're asking? I don't know anyone who wouldn't consider 24 the course correct number of Advent, simply because that's the common number here (we celebrate Christmas on the 24th). So 12 makes perfectly sense, just do every second day.
There are also many groups who don't start on the 1st of December, but on the first Sunday of Advent. And probably many others.
Christian holidays are not meant to be fun; literally, the whole theme is about sins, suffering and death (or in this case, being born into life of suffering and culminating with death).
If, as you claim, the association of 25 to "advent" is primarily commercial, that's much more of a reason to avoid that association. In any case it's very culture-specific. In many countries, including mine, Christmas Eve is the "main" event that people look forward to, and the number of "advent days" in calendars and such is 24. On the other hand, ecclesiastically there are four Advent Sundays, and the number of days is thus variable and also not really pertinent.
Technically the event needs to go for a certain number of days, but Advent doesn't mean puzzles must come every day. They can do puzzles every 2-3 days if they want to.
For Christian Advent to be exactly 25 days long, that would be a coincidence.
Advent is not the time from December 1st until Christmas, it starts on whatever days the fourth Sunday before Christmas happens to fall on that year. This way, there are exactly four Sundays in advent.
If Christmas itself should fall on a Sunday one year, it doubles as the fourth Sunday of Advent, i.e., then the first of Advent will be only three weeks earlier.
All correct. Which is why I said religious slash commercial tradition - Advent is first and foremost just another sales event, and for convenience of sellers and buyers (and their children) the commercial advent got regularized to 25 days, so the stock of calendars that failed to sell last christmas season can be put up to sale in the coming one.
You're forgetting about Halloween, Black Friday/Cyber Monday, and the most recent Singles Day (11.11); the Commercial Calendar is steadily squeezing the Christmas Season into December and out of the rest of the year!
Right, my local grocery store moved Halloween stuff to where Diwali stuff was near the front of the store, and immediately put Xmas stuff where the Halloween stuff used to be, in a week's time it'll be a whole aisle of Xmas.
Commercial Halloween starts during October just after or parallel with October-fest. It ends before end of October because people buy things for an event before it starts. End of Halloween is when Commercial Christmas starts.
There is no time for actual advent or winter calmness in general.
I decided to indulge in a Dunkin' pumpkin donut this morning, what with it being late October and the weather actually now fall-like. Apparently they have already discontinued them!
(I never could wrap my head around all this. I had enough problems with Easter events, where the math makes a detour through a Lunar calendar.)
EDIT: And my memory of the Tradition is wrong too, it's supposed to be 24 - as confirmed by https://news.ycombinator.com/item?id=45710618, and corroborated the two "Paw Patrol" themed Advent Calendars I just found still stashed in my home office.
It's actually the March equinox. "Spring" is true only in the northern hemisphere. What's more it's the ecclesiastical equinox, not the astronomical equinox, whose date actually varies depending on the year.
Never mind that all this is descriptive of dating in countries that grew up with Western Christianity. Countries where Eastern traditions dominate often date it differently.
"pedant who didn't look up their own point or consider other world perspectives before boldly declaring that the way they thought about it first was the only true way"
In the spirit of pedantry, I added even more minor detail!
> The 25 is there in the name. It's the whole point :).
You're overly attached to the meaning of Advent, but you aren't even aware of the meaning. It doesn't mean exactly 25. This year Advent Sunday is November 30th.
And the creator of Advent of Code can do whatever they want with it, despite the name. They've put an immense amount of effort into this for so long - if that had been me, I would have been incredibly disheartened to see people saying "the whole point is just 25".
Not necessarily. If they insist on there being only 12 puzzles, all they need to Save Christmas is to start the event on Christmas day, and rename it to "12 Puzzles of Christmas" or "Advent of Three Kings of Code", or such -- see: https://news.ycombinator.com/item?id=45710963.
That was my first thought too, and I'd prefer it, cause sometimes I'll get stuck on a problem, or I'm busy, or I forget, and I'd rather have one more day. Bur it's Eric's call in the end.
Give a kid half of an advent calendar and tell them to open the window every second day, let's see how long it'll keep their interest (I expect much less than 12 days) :). That's not how Advent Calendars work!
IMO "Advent of Code" only determines the timeframe in which it happens, not the amount of puzzles it must contain. It could just as well be four puzzles, one for each sunday of the advent, or any other amount, as long as they are released within those roughly four weeks before christmas.
Eh, the implication has always been that it's a Christmas calendar where you open one door per day until it's Christmas eve - just with code riddles instead of chocolate.
> Advent calendars in their earliest forms were invented approx. 80 years ago.
Well, Wikipedia starts its "History" section in 1945, which is 80 years ago. But what it says about advent calendars in 1945 is that they were lower-quality reprints of earlier designs. This strongly implies that they weren't a new concept in 1945.
The German wikipedia is more interested in the concept and cites the word Adventskalenders to the novel Buddenbrooks, which features one set in the year 1869 but was published in 1901. Either way, the calendars were clearly an established cultural phenomenon well before 1945.
Looking at the talk page (for the English article), it seems that the history section was provided by a "translation group" from their translation of a matching section of the German article. It's not clear why they began with the post-war period; the German page goes back much further than that, which was also true at the time they provided their translation. But this does explain why the English "history" section begins by referring to prior context that doesn't exist in the English article.
I'm not arguing this point. I conceit, I thought the sentiment was obvious. If it wasn't—and if read literally—I thought that that statement was the weakest and most uninteresting part of what I shared. However, to my surprise, this statement, and its specific interpretation, is what people found compelling!
We have a thing called "Three Kings" (aka. "three wise men") in Poland, that falls on Jan 6th. If My Math Is Correct™, there's 12 days between the Christmas day (Dec 25th) and Jan 6th, so maybe the song is about this period?
If he has cut the number of puzzles in half, why not then release a new puzzle every other day? That would make more sense because AoC would still run until Christmas, and it would give people more time per puzzle. Maybe unlock part 2 of each puzzle the day after the puzzle has been posted, so there still something new every day.
I once tried participating, but gave up halfway through because one puzzle per day was just too much time. If it was one puzzle every two days it would be more manageable.
> If the were released every other day, people who wanted to do them for 12 straight days could not.
If they instead waited 12 days, they could start with the 6 puzzles already released, and then have enough puzzles to solve once a day for the next 12 days.
One puzzle per day was too much for me as well, but I just spent more than one day per puzzle. And now that the leaderboards are gone, there's no reason to you have to do them the same day.
This prompted me to try out claude code on last years... To absolutely no surprise, it looks like the model was trained on advent of code. For the day 2 challenge, I put in this prompt:
for each row in input.txt, identify all the rows where: 1. the columns either all increase or decrease 2. the increase/decrease is >1 and <4. count total # of rows that match this. write a python script
It solved it very quickly. However...
It's solution code included this comment:
Check if a report is safe based on two criteria: │
│ 1. All levels must be either all increasing or all decreasing │
│ 2. Adjacent differences must be between 1 and 3 (inclusive)
This is odd because I never mentioned reports or levels... However the challenge does:
The unusual data (your puzzle input) consists of many reports, one report per line. Each report is a list of numbers called levels that are separated by spaces. For example:
> how did you know to call them reports and levels?
Good catch! I noticed that terminology in the input file structure. When I read input.txt, I saw the data format - each row
contained multiple space-separated numbers.
I actually made an assumption based on common Advent of Code patterns (this looks like a typical AoC problem structure). The terms
"reports" and "levels" aren't explicitly stated in your requirements - you just said "rows" and "columns".
I should have used more generic terms like:
- "row" instead of "report"
- "values" or "numbers" instead of "levels"
Would you like me to update the script to use more neutral terminology that matches your original description?
A little sad for me because I've enjoyed the global leaderboard aspect for years but of course my second reaction has to be to take a step back and appreciate all the joy that this one man has given us for all these years.
And he's made it clear from that start that he never intended the global leaderboard to be the point, plus AI the last few years messes it all up. All good things come to an end, and I gotta appreciate the good run that we had, and the voluntary work of one person that gifted it to us.
On the bright side, this will lead to a more relaxed December schedule. I do not compete for the leaderboard, but trying to solve the puzzles on the days they are released (to keep it in the spirit of an advent calendar), and the puzzles towards the end sometimes take me a considerable chunk of the day to solve, which is tricky to combine with the regular schedule, and may be rather stressful (though still a nicer kind of "stressful", as you get on celebrated holidays).
This matches my experience, and I've been 'nervously' anticipating this year's Advent of Code. I managed to keep to the spirit last year and get everything done by Christmas day (though admittedly with some days bleeding over into other days due to pesky family/other commitments), but even this relied on having the last week or so of the month be relatively free for me.
While I've usually been able to do the first half of the month's puzzles in the day before breakfast, over lunch and in the evening, the increasing difficulty does mean that later puzzles can really eat into a day, particularly if you happen to go down a bad path for your solution.
From FAQ: "Why did the number of days per event change? It takes a ton of my free time every year to run Advent of Code, and building the puzzles accounts for the majority of that time. After keeping a consistent schedule for ten years(!), I needed a change. The puzzles still start on December 1st so that the day numbers make sense (Day 1 = Dec 1), and puzzles come out every day (ending mid-December)."
The leaderboard has led to the same predictable discussion for as long as the AoC has existed. Recurring themes:
- The puzzles get published in the middle of the night for most of Europe, can't we have a better system like scoring on <arbitrary other metric the poster likes better>.
- It's weird that many of the pages say "just have fun, it's not a race" and then also there's a prominent leaderboard page to show who's currently ahead in the race.
- There's been people taking the whole thing way too seriously from basically year 1, trying to load their puzzle input as fast as possible by polling every 10 ms and putting too much load on the servers.
- Whether AI is allowed is always a super toxic discussion with no real outcome because you can't enforce it.
Gonna miss it. So fun to see how fast one can parse the problem, figure out how to solve it while thinking of edge cases, and then actually write and run it. I've never been high up on the leaderboard, but enjoyed waking up early in December and give it a crack. Most often rank ~1000, a few times ~100.
But I also understand the decision. Fun while it lasted, but I'll find other ways to have fun with AoC this year!
In the earlier years, maybe. Last year you’d immediately see a 3m47s time for a puzzle that for most people would take at least an hour. Unless you were actively watching the clock for a new puzzle daily, odds are it would have already been solved a thousand times over by the time you started.
It’s like excitedly arriving to a potluck with your beef bourguignon, only to find twenty michelin-starred chefs competing against each other.
Not exactly my idea of “fun” :) to me AoC was much more of a neighborhood party than an olympic event.
I was one of those people, waking up a bit before 6 in the morning, sitting ready to refresh, seeing how fast I could solve it :)
As for when it's been solved a thousand times: 2022 I did part1 and part2 and was finished after 4m36seconds, and that gave me rank 1070. So don't underestimate how many who did this competitively, heh.
Yeah, a bunch of people started going on witch hunts against the people where were obviously using AI (eg ~30 second solve times) and also anyone who had "AI" anywhere in their bio.
IMO the levels it got to was wildly out of proportion, even if these people were cheating (say what you will about AI, but if the rules say not to use it and you do: you're a cheater) but maybe I would have felt differently if the timezones meant I could take part, rather than waking up to drama.
Just to not feed the witch hunt further, note that human 30 second solve times can be entirely possible for the easiest puzzles, with enough experience, practice, and a bit of risk-taking; see e.g. https://adventofcode.com/2021/leaderboard/day/1 part 1. But the 4 second solution times we saw last year are not, no matter how you look at it.
But yes, you would have people openly share repositories for automatically ingesting the puzzle text, solving the puzzles, and submitting the results the moment the puzzles opened, leading to inhuman solution times. So, despite the rules stating that you can't do that, the result is that whenever the puzzles were easy enough for an LLM to solve them with high probability – and most of them are – the leaderboards would be overrun with such solutions.
In 2023, the LLMs would still struggle enough that the overall leaderboard (taking all 25 ⋅ 2 puzzles into account) would still be dominated by ordinary people (many of them recording their solutions), in 2024 that was no longer the case. Personally I would go from being able to top 100 regularly, to almost never being able to. I'm going to miss the thrill, and think it's a bit saddening that we can't have nice things, but also ultimately think that getting rid of it is the best option.
I wonder if it would've felt more natural if the "part 2s" of the puzzles became separate days instead. (Still 12 days worth of puzzles, but spread out across 24 days, with maybe one extra, smaller, easier puzzle for the last day to relax)
Then the 24h between part1 and part2 could be spent trying to predict what part2 will be, or generalize the solution to see if you can handle whatever part2 throws at you. For instance the lanternfish ( https://adventofcode.com/2021/day/6 ) one would expect to just have a higher number, so if one solved part1 iteratively one could make an educated guess for a fast part2 solve.
I was thinking the same! This would be great , have a puzzle each other day. But i trust the organizers are going to do a great job and we will have fun either way.
Yy usual 5-to-7-day output scramble will now look vastly more competent, ah, well, complete. Not actually be smarter, mind you, but radiate the comforting glow of effort by someone who has their temporal ducks in a suspiciously photogenic row.
Improvement? No. But the illusion of improvement? Practically Nobel-worthy. I'm already enjoying this change.
I'm not sure how to parse all this, but I really appreciate the mental image of temporal ducks in a photogenic row. Sounds great for my Star Trek themed, very slow Sunday morning.
Been toiling with a new client, ingesting their documentation, and improving it with a Hitchhiker's Guide twist, so the next person needs less caffeine and weeps less.
It is bleeding into other aspects, but it's my pleasure to help with your Sunday morning imagery!
I love it, starting mid-december a lot of my free time goes into Christmas preparations and at the same time the puzzles went up in difficulty. I never made it past #18 in real time. Not because of the difficulty, I just had to do other things.
Another option would be to add some breaks, maybe a day off every 2 or 3 days.
I've participated in the past, and felt like I always drop off around day 18+ because of holidays etc.
I personally also didn't like when part II of a question felt like a completely new question, instead of a neat extension of the previous one.
I am very happy that this is something that's available to do, for free though. I see advent of code as a good excuse to dabble with a new language, usually with a few people from work.
Big AoC fan these are welcomed changes. I've always started strong but fell off as it was increasingly more difficult to solve puzzles during nighttime. And after you miss one you kinda loose the streak.
This year I'm going to combine it also with mine noaidecember challenge to get a little more dopamine from problem solving.
I love Advent of Code, but my family hates it! Especially the timing in PST! While I understand the challenges of having a global contest, the way this is organized leads to discrimination if, in some countries, you need to be up in the middle of the night.
It is unfortunate, but I can absolutely understand it. Keeping up such open-ended, time-consuming projects year after year while the person doing it changes inevitably – their personal life, habits, job, interests, etc. – must feel like a burden at some point, even if it is out of love and passion (I know that from personal experience with my voluntary work, from which I had to take a break after 10+ years).
I am truly thankful for all of Eric Wastls work on Advent of Code, no matter how much time he can invest and how much puzzles we get. I already look forward to the challenge at the start of autumn and consider what programming language I will choose (this year it’ll be Uiua :)). I am very slow at these puzzles, so I mostly quit at around puzzle 12 anyway, but I learn so much from them and they are a lot of fun.
Although number of puzzles != time investment, selfishly I’m down for this change. As I get older it’s harder to find time to complete them, so I’m hoping this also relieves some of the (artificial) pressure to keep up with daily puzzles by decreasing the time spent per day.
Really appreciate thise changes! Both the reduction in puzzles which means less work, but overall I don’t think it’s going to make the event less fun.
And removing the global leaderboard is good, rather than trying to police how people solve the puzzles just let people have fun on their own boards with people they know.
I genuinely look forward to Advent of Code every year (whatever that says about me) and next year's one is always on my mind, so naturally I'm somewhat sad about this as the one-puzzle-a-day up to Christmas day just felt very neat, and I liked the mostly gentle initial difficulty curve up to the more 'spiky' questions later.
Having said that, having done a few years now I think the following things end up feeling consistent across years:
The first 10-ish (give or take) days were always simple enough that experienced programmers can likely spit them out during their daily standup. This isn't bad, as I think they're great for newer programmers to get a bit of algorithmic and data structure thinking practice, but they can definitely feel a bit same-y once you've done a few years. This isn't a critique of how AoC was structured, just an observation of how it can feel after you've seen a few years. Having said this, I'm sure I'll miss the gentle warm-up this year.
I wonder what this means for the difficulty curve i.e. the almost-inevitable path-finding question will appear on Day 5 and not Day 15?
I'm sure Eric has thought this through but I wonder if an every-other-day approach (perhaps with a 'softer' puzzle for Christmas day itself) would be popular, as I imagine people balancing a job and/or family while wanting to do this might appreciate having two days for the more challenging later puzzles.
On the other hand, free time for this generally does get more tight as you get closer to the end of the month and the puzzles get more challenging, so this approach does just make a chunk of space for people later in the month, and individuals can choose to keep up with the puzzles on release day if they can or just not worry about it and let things roll over.
Unfortunately, I guess I'll have to actually go and see my family this Christmas instead of ignoring the mandatory visits, which seemed like a fair sacrifice to keep up with calendar ;)
> It takes a ton of my free time every year to run Advent of Code, and building the puzzles accounts for the majority of that time. After keeping a consistent schedule for ten years(!), I needed a change.
Completely fair. As Eric says in some of his presentations on this it takes him about three or four months of his spare time, so this is more than understandable. Props to him for keeping this up consistently with his day job for the last ten years.
> The global leaderboard was one of the largest sources of stress for me, for the infrastructure, and for many users.
I don't mind this so much personally (outside of a morbid curiosity in the really fast participants) although I know people that were really invested in it, but there were some genuine points of contention for people that were interested in the leaderboard:
- The global puzzle unlock time, while explained by Eric himself in his presentations, does make being on the leaderboard impractical for people outside of time zones where the actual release time is friendly for that. For me it's 5am, and the only time I ever came even close (while also being nowhere near...) was when I happened to be up at that time due to insomnia (not caused by AoC).
- It sounded like an infrastructural point of pain as the single global release time coupled with submissions-by-country-size and how keen some of the puzzle solvers are makes for a great initial traffic burst with a long tail (also mentioned on the behind-the-scenes videos).
- It naturally favoured people with an interest in these kinds of puzzles, so the selection bias in the leaderboard is inherently skewed towards a) the subset of people that are choosing to do this out of genuine personal interest and then b) the subset of those that are likely to also be interested in competitive programming-type challenges. This is natural, but I think it does make the leaderboard less relevant for the majority of participants.
- The inevitable contention of the use of 'AI' just to be on the leaderboard
Anyway, I'll just end this with a thank-you to Eric himself for designing and running this consistently for the last ten years as it's something I've come to really enjoy, the community is very lucky to have this, and I hope these changes make it possible for him to continue doing this with lower physical costs to him personally and perhaps lower stress for the participants that just enjoy the puzzles for learning and the rare opportunity to write simple programs to solve problems.
This is completely tangential but as someone who used to be a competitive programmer in the 2010s, I feel like this year marked the end of an era for me.
I don't have time to do regular codeforces/atcoder/leetcode rounds (and the rampant AI cheating is pretty demotivating). So the big annual rituals for me to keep my "competitive programmer" label were: fb hacker cup, google code jam, topcoder TCO, and advent of code. Now besides hacker cup, the rest are dead.
I get what you're saying, but Advent of Code isn't dead? The leaderboard is dead, but if that's an important part of it to you, I'm optimistic there'll be some nice large public groups you can join somewhere.
Make a fun little christmas calendar to bring joy to the people, get turned into a gamified warzone where people use AI and bots to try to get onto the global leaderboards - possibly because getting on them might net you a job at FAANG
I know this is an outsider position, but I always felt that the AoC leaderboard was a mistake. Very few people had the time, the commitment, and the capability of making it on there in a meaningful fashion, and it put an emphasis on something that didn't match the vibe of the event at all. If speedrunning the problem solving was the point, then why package every episode into an enjoyable little story?
This also ties into the comments that AoC has become moot or was "ruined by LLMs". If you enjoy solving the problems, nothing should have changed for you. What's the difference if a given problem was already solved by an LLM, or a group of IQ 200 superhumans from MIT for that matter?
As time marches on, there will eventually be absolutely nothing left where an unaugmented human outperforms a machine. That doesn't mean you have to stop enjoying things. In a few years at most, all programming will be purely recreational.
> In a few years at most, all programming will be purely recreational.
That's a bold prediction given how much LLMs suck at programming today (and haven't really improved, either). I'm willing to believe that we will someday invent an AI that can program better than humans. I don't believe it'll be within a few years, because the current architecture shows no signs that it'll ever be able to get the job done.
The temptation to start a competative private leader board will be great, just for the mentioned reason. I have a reference my scores in my CV. The competative part of AoC is one of the things that I find attractive and also has taught me some valuable lessons about coding, like taking some time to review the code the first time before submitting. I experienced several times that I spend of time to debug a small bug due to a minor error, that I could have caught had I spend some time reviewing. Especially with the first puzzles, I try to get it right the fitst time with respect to compiling and execution.
I will search for a pure C private group to join that only allows a small library for things like reading the input as an array of strings.
No, but I don't care. I guess that most hiring managers do not know what AoC is.
Next week, I will be 64, and I am no longer searching for a full time job. In the past decade I only worked for 24 or 30 hours per week. I am financial independent and plan to only work freelance if there is some opportunity. Currently, I am not actively searching for a job.
I have created a private leaderboard which you can join with `1563228-d419ba6d.`
The basic rule is: you are only allowed to use code you wrote yourself. That does include code you wrote before the start of the contest, for example, standard functions you wrote for earlier AoC editions.
Appreciate it, for me it became this stress inducing xmas calendar. Did it a couple of years and then I stopped because it wasn't fun anymore. Some puzzles were really hard and I took it really personally when I couldn't complete them.
I did exactly half of the puzzles last year, and I think my case is not too uncommon. I am perfectly fine with this, only maybe it would be slightly better if the puzzles came out every two days instead, to ward off the FOMO and give us more time per puzzle?
> If you're still stuck, maybe ask a friend for help, or come back to the puzzle later. You can also ask for hints in the subreddit.
Not sure why this is OK but prompt engineering isn't? If someone wants to test that skillset, let them be instead of asking 'please don't'. Especially given the competitive nature is now optional.
I think this is a holdover from before, where the request was to not use AI before the leaderboard is filled up. If you are stuck and have to ask a friend for help, you are not going to make the (global) leaderboard anyway.
In practice, nothing prevents you from using AI to solve the problems anyway.
The subreddit also had a policy of not unlocking the megathread until the leaderboard was filled up. So any hints there will also be too late for the making the global leaderboard.
And the old About noted what you just said about there being nothing preventing someone from using AI:
> If you want to use AI to help you solve puzzles, I can't really stop you, but I feel like it's harder to get better at programming if you ask an AI to do the programming for you.
I've never vibe coded. You could ask AI a question in the same way you'd ask a friend (what if you don't have friends?) I guess my point is there is a difference between using AI and overusing AI.
reply