[HN Gopher] Advent of Code 2025
       ___________________________________________________________________
        
       Advent of Code 2025
        
       Author : vismit2000
       Score  : 651 points
       Date   : 2025-11-30 13:07 UTC (9 hours ago)
        
 (HTM) web link (adventofcode.com)
 (TXT) w3m dump (adventofcode.com)
        
       | mynameismon wrote:
       | Is it just me, or does it seem to be temporarily down?
        
         | retsibsi wrote:
         | It's up for me (but the first puzzle won't be available until
         | 15 hours from now).
        
       | zwnow wrote:
       | > 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.
       | 
       | And yet I expect the whole leaderboard to be full of AI
       | submissions...
       | 
       | Edit: No leaderboard this year, nice!
        
         | stOneskull wrote:
         | i don't think there is a global leaderboard this year. just
         | private ones.
        
         | retsibsi wrote:
         | Not this time:
         | 
         | > The global leaderboard was one of the largest sources of
         | stress for me, for the infrastructure, and for many users.
         | People took things too seriously, going way outside the spirit
         | of the contest; some people even resorted to things like DDoS
         | attacks. Many people incorrectly concluded that they were
         | somehow worse programmers because their own times didn't
         | compare. What started as a fun feature in 2015 became an ever-
         | growing problem, and so, after ten years of Advent of Code, I
         | removed the global leaderboard.
        
         | KolmogorovComp wrote:
         | > And yet I expect the whole leaderboard to be full of AI
         | submissions...
         | 
         | There will be no global leaderboard this year.
        
         | Cthulhu_ wrote:
         | I mean they're great programming tests, for both people and AI
         | I'd argue - like, it'd be impressive if an AI can come up with
         | a solution in short order, especially with minimal help /
         | prompting / steering. But it wouldn't be a personal
         | achievement, and if it was a competition I'd label it as
         | cheating.
        
         | chongli wrote:
         | I am so glad there is no leaderboard this year. Making it a
         | competition really is against the spirit of advent calendars in
         | general. It's also not a fair competition by default simply due
         | to the issue of time zones and people's life schedules not
         | revolving around it.
         | 
         | There are plenty of programming competitions and hackathons out
         | there. Let this one simply be a celebration of learning and the
         | enjoyment of problem solving.
        
           | zwnow wrote:
           | Yea fully agree. The leaderboards always made me feel bad.
        
           | amitav1 wrote:
           | I agree with the first point but the second point feels
           | irrelevant. Yeah, people's life schedules don't revolve
           | around it, but that doesn't mean shouldn't make iy a
           | competition. Most people who play on chess.com don't have
           | lives that revolve around it, but that doesn't mean that
           | chess.com should abolish Elo rankings.
        
             | acedTrex wrote:
             | The global leaderboard encouraged bad behavior against the
             | entire project. Including criminal things like attempting
             | to ddos the site.
        
             | poulpy123 wrote:
             | afai your elo score don't depend of your timezone
        
         | losvedir wrote:
         | Depends how you look at it. Some of my colleagues rave about
         | Claude Code, so I was thinking about trying it out on these
         | puzzles. In that sense it is "going to the gym", just for a
         | different thing. Since I do AoC every year, I feel like it'll
         | give me a good feel for Claude Code compared to my baseline.
         | And it's not just "prompting", but figuring out a workflow with
         | tests and brainstorming and iteration and all that. I guess if
         | the LLM can just one-shot every puzzle that's less interesting,
         | but I suppose it would be good to know it can do that...
        
           | zwnow wrote:
           | It 100% can do that. LLMs are trained on an unfathomable
           | amount of data. Every AoC puzzle can be solved by identifying
           | the algorithm behind it. Its Leetcode in a friendlier and
           | more festive spirit.
        
       | d_watt wrote:
       | Looks like after the AI automation rush last year, the
       | leaderboard has been removed. Makes sense, a little sad that it
       | was needed though.
        
         | ellisv wrote:
         | I never liked the global leaderboard since I was usually asleep
         | when the puzzles were released. I likely never would have had a
         | competitive time anyway.
        
           | Jare wrote:
           | I never had any hope or interest to compete in the
           | leaderboard, but I found it fun to check it out, see times,
           | time differences ("omg 1 min for part 1 and 6 for part 2"),
           | lookup the names of the leaders to check if they have
           | something public about their solutions, etc. One time I even
           | ran into the name of an old friend so it was a good excuse to
           | say hi.
        
       | PaulRobinson wrote:
       | Advent of Code is one of the highlights of December for me.
       | 
       | It's sad, but inevitable, that the global leaderboard had to be
       | pulled. It's also understandable that this year is just 12 days,
       | so takes some pressure off.
       | 
       | If you've never done it before, I recommend it. Don't try and
       | "win", just enjoy the problem solving and the whimsy.
        
         | f1shy wrote:
         | While is ,,only" 12 days, are like 24 challenges. As no
         | leaderboard is there, and I do it for fun, i will do it in 24
         | days.
        
           | tclancy wrote:
           | Same. I usually try to use it as the "real-world problem" I
           | need for learning a new language. Is there anywhere that
           | people have starter advice/ templates for various languages?
           | I'd love to know
           | 
           | - install like this
           | 
           | - initialize a directory with this command
           | 
           | - here are the VSCode extensions (or whatever IDE) that are
           | the bare minimum for the language
           | 
           | - here's the command for running tests
        
             | thebytefairy wrote:
             | learnxinyminutes.com is a good resource that tries to cover
             | the key syntax/paradigms for each language, I find it a
             | helpful starting point to skim.
        
             | hollasch wrote:
             | This is an area where LLMs can really help out: getting
             | started with an unfamiliar language/IDE/ framework.
        
           | eichin wrote:
           | That sounds healthy! But I would note that there's been
           | interesting community discussions on reddit in past years,
           | and I've gotten caught up in the "finish faster so I can go
           | join the reddit discussion without spoilers". It turns out
           | you can have amazing in-jokes about software puzzles and
           | ascii art - but it also taught me in a very visceral way that
           | even for "little" problems, building a visualizer (or making
           | sure your data structures are easy-to-visualize) is
           | _startlingly_ helpful... also that it 's nice to have people
           | to commiserate with who got stuck in the same garden
           | path/rathole that you did.
        
         | jakeydus wrote:
         | I think I'll set up a local leaderboard with friends this year.
         | I was never going to make it to the global board anyway but it
         | is sad to see it go away.
        
         | doublerabbit wrote:
         | And this is how I know I am not a developer/programmer. I have
         | no urge or interest in such event.
        
         | forty wrote:
         | The "only" 12 days might be disappointing (but totally
         | understandable), however I won't mourn the global leaderboard
         | which always felt pointless to me (even without the llm, the
         | fact that it depends on what time you did solved problems
         | really made it impractical for most people to actually
         | compete). Private leaderboards with people on your timezone are
         | much nicer.
        
       | qsort wrote:
       | I'm actually pleasantly surprised to see a 2025 edition, last
       | year being the 10th anniversary and the LLM situation with the
       | leaderboard were solid indications that it would have been a
       | great time to wrap it up and let somebody else carry the torch.
       | 
       | It's only going to be 12 problems rather than 24 this year and
       | there isn't going to be a gloabl leaderboard, but I'm still glad
       | we get to take part in this fun Christmas season tradition, and
       | I'm thankful for all those who put in their free time so that we
       | can get to enjoy the problems. It's probably an unpopular stance,
       | but I've never done Advent of Code for the competitive aspect,
       | I've always just enjoyed the puzzles, so as far as I'm concerned
       | nothing was really lost.
        
         | squigz wrote:
         | It's really disheartening that the culture has changed so much
         | someone would think doing AoC puzzles just for the fun of it is
         | an unpopular stance :(
         | 
         | Doing things for the fun of it, for curiosity's sake, for the
         | thrill of solving a fun problem - that's very much alive, don't
         | worry!
        
           | Waterluvian wrote:
           | Eliminating the leaderboard might help. By measuring it as a
           | race, it becomes a race, and now the goal is the metric.
           | 
           | Maybe just have a cool advent calendar thingy like a digital
           | tree that gains an ornament for each day you complete. Each
           | ornament can be themed for each puzzle.
           | 
           | Of course I hope it goes without saying that the creator(s)
           | can do it however they want and we're nothing but richer for
           | it existing.
        
             | squigz wrote:
             | > By measuring it as a race, it becomes a race, and now the
             | goal is the metric.
             | 
             | It becomes a race when you start seeing it as a race :) One
             | can just... ignore the leaderboard
        
               | Waterluvian wrote:
               | That's also completely true and something I often say
               | about gaming. You don't like achievements? Just don't do
               | them. Your enjoyment shouldn't be a function of how
               | others interact with the product.
        
               | Almondsetat wrote:
               | "Just ignore it" doesn't work, psychologically.
        
               | squigz wrote:
               | Lots of people play games while ignoring the
               | achievements.
               | 
               | Many people do - well, did - AoC while ignoring the
               | leaderboard.
        
               | Vespasian wrote:
               | I never, in all the years of participating in AoC did
               | take a look at the global leaderboard.
               | 
               | Even before LLMs I knew it was filled with with results
               | faster then you can blink.
               | 
               | So some of us, from gut feeling the vast majority, it was
               | always just for fun. Usually I spent at least until March
               | to finish as much as I did in every year.
        
               | mlhpdx wrote:
               | Oh, i'm quite sure it does. In fact, it's a central thing
               | in so much of psychology. The only difference is how you
               | get there. Some people can just ignore and others take
               | more effort.
        
               | m000 wrote:
               | I disagree. Having a leaderboard also leaks into the
               | puzzle design. So the experience is different, even if
               | you choose to ignore the leaderboard as a participant.
        
               | orphea wrote:
               | > Having a leaderboard also leaks into the puzzle design.
               | 
               | Is it your opinion? Can you give an example? Or did Eric
               | say that?
        
               | amiga386 wrote:
               | I've ignored the leaderboard for its entire existence, as
               | the puzzles release at something like 4AM-5AM in my
               | timezone; there's no point getting up 4 hours early, or
               | staying awake 4 hours after bedtime, for some points on
               | the internet.
               | 
               | Instead, getting gold stars for solving the puzzles is
               | incentive enough, and can be done as a relaxing thing in
               | the morning.
               | 
               | No matter what you do, as the puzzles get harder, you
               | won't solve them in a day (or even a lifetime) if you
               | don't come up with good algorithms/methods/heuristics.
        
             | wging wrote:
             | That 'digital tree' idea is similar to how AoC has always
             | worked. There's a theme-appropriate ASCII graphic on the
             | problem page that gains color and effects as you complete
             | problems. It's not always a tree, but it was in 2015 (the
             | first year), and in several other years at least one tree
             | is visible. https://adventofcode.com/2015
        
         | jerpint wrote:
         | I did a post [0] about this last year, and vanilla LLMs didn't
         | do nearly as well as I'd expected on advent of code, though I'd
         | be curious to try this again with Claude code and codex
         | 
         | [0] https://www.jerpint.io/blog/2024-12-30-advent-of-code-llms/
        
           | the_duke wrote:
           | LLMs, and especially coding focused models, have come a very
           | long way in the past year.
           | 
           | The difference when working on larger tasks that require
           | reasoning is night and day.
           | 
           | In theory it would be very interesting to go back and retry
           | the 2024 tasks, but those will likely have ended up in the
           | training data by now...
        
             | mbac32768 wrote:
             | Last April I asked Claude Sonnet 3.7 to solve AoC 2024 day
             | 3 in x86-64 assembler and it one-shotted solutions for part
             | 1 and 2(!)
             | 
             | It's true this was 4 months after AoC 2024 was out, so it
             | _may_ have been trained on the answer, but I think that 's
             | way too soon.
             | 
             | Day 3 in 2024 isn't a Math Olympiad tier problem or
             | anything but it seems novel enough, and my prior experience
             | with LLMs were that they were absolutely atrocious at
             | assembler.
             | 
             | https://adventofcode.com/2024/day/3
        
               | paulddraper wrote:
               | Last year, I saw LLMs do well on the first week and
               | accuracy drop off after that.
               | 
               | But as others have said, it's a night and day difference
               | now, particularly with code execution.
        
             | crystal_revenge wrote:
             | > LLMs, and especially coding focused models, have come a
             | very long way in the past year.
             | 
             | I see people assert this all over the place, but personally
             | I have _decreased_ my usage of LLMs in the last year.
             | During this change I've also increasingly developed the
             | reputation of "the guy who can get things shipped" in my
             | company.
             | 
             | I still use LLMs, and likely always will, but I no longer
             | let them do the bulk of the work and have benefited from
             | it.
        
         | Aurornis wrote:
         | A couple of the Slack/Discord groups I'm in do a local
         | leaderboard with friends. It's fun to do with a trusted group
         | of people who are all in it for fun.
        
           | qsort wrote:
           | I'm also in a few local leaderboards, but I'm not "really"
           | competing, it's more of a fun group thing.
           | 
           | Premises:
           | 
           | (i) I love Advent of Code and I'm grateful for its continuing
           | existence in whatever form its creators feel like it's best
           | for themselves and the community;
           | 
           | (ii) none of what follows is a request, let alone a demand,
           | for anything to change;
           | 
           | (iii) what follows is just the opinion of some random guy on
           | the Internet.
           | 
           | I have a lot of experience with competitions (although more
           | on the math side than on the programming side), and I've been
           | involved essentially since I was in high school, as a
           | contestant, coach, problem writer, organizer, moving tables,
           | etc. In my opinion Advent of Code simply isn't a good
           | competition:
           | 
           | - You need to be available for many days in a row for 15
           | minutes at a very specific time.
           | 
           | - The problems are too easy.
           | 
           | - There is no time/memory check: you can write ooga-booga
           | code and still pass.
           | 
           | - Some problems require weird parsing.
           | 
           | - Some problems are pure implementation challenges.
           | 
           | - The AoC guy loves recursive descent parsers way too much.
           | 
           | - A lot of problems are underspecified (you can make
           | assumptions not in the problem statement).
           | 
           | - Some problems require manual input inspection.
           | 
           | To reiterate once again: I am _not_ saying that any of this
           | needs to change. Many of the things that make Advent of Code
           | a bad competition are what make it an excellent, fun,
           | memorable  "Christmas group thing". Coming back every day
           | creates community and gives people time to discuss the
           | problems. Problems being easy and not requiring specific time
           | complexities to be accepted make the event accessible.
           | Problems not being straight algorithmic challenges add
           | welcome variety.
           | 
           | I like doing competitions but Advent of Code has always felt
           | more like a cozy problem solving festival, I never cared too
           | much for the competitive aspect, local or global.
        
             | mckn1ght wrote:
             | I too like the simple nature. If you care about highly
             | performant code, you can always challenge yourself (I got
             | into measuring timing in the second season I participated).
             | Personally I prefer a world like this. Not everyone should
             | have to compete on every detail (I know you stated that
             | your points aren't demands, I'm just pointing out my own
             | worldview). For any given thing, there will naturally be
             | people that are OK with "good enough", and people who are
             | interested to take it as far as they can. It's nice that we
             | can all still participate in this.
             | 
             | One could probably build a separate service that provides a
             | leaderboard for solution runtimes.
             | 
             | I agree that it's more of a cozy activity than a hardcore
             | competition, that's what I appreciate about it most.
        
             | azkalam wrote:
             | Do you know of anything like AoC but that feels less
             | contrived? I often spend the most time understanding the
             | problem requirements because they are so arbitrary - like
             | the worst kind of boardgame! Maybe I should go pick up some
             | OSS tickets...
        
               | Mountain_Skies wrote:
               | Take a look at Everybody Codes. It occurs in November
               | instead of December, so this year is wrapping up. Like
               | AoC, it is story based but maybe you'll find the problem
               | extraction more to your liking.
               | 
               | https://everybody.codes/events
        
               | matsemann wrote:
               | Being contrived, with puns or other weirdness is kinda on
               | par for this kind of problems. Almost every programming
               | competition I've ever been to have those kind of jokes.
               | 
               | Just a random example:
               | https://open.kattis.com/problems/magicallights
               | 
               | But the Kattis website is great. The program runs on
               | their server without you getting to know the input (you
               | just get right/wrong back), so a bit different. But also
               | then gives you memory and time constraints which you for
               | the more difficult problems must find your way out of.
        
             | b0ringdeveloper wrote:
             | There are definitely some problems that have an indirect
             | time/memory check, in that if you don't have a right-enough
             | algorithm, your program will never finish.
        
             | bigstrat2003 wrote:
             | > The problems are too easy.
             | 
             | The problems are pretty difficult in my book (I never make
             | it past day 3 or so). So I definitely would hope they never
             | increase the difficulty.
        
             | fn-mote wrote:
             | > The AoC guy loves recursive descent parsers way too much.
             | 
             | LOL!!
             | 
             | I agreed with a lot of what you wrote, but also a lot of us
             | strive for beautiful solutions regardless of time/memory
             | bounds.
             | 
             | In fact, I'm (kind of) tired of leetcode flagging me for
             | one ultra special worst-case scenario. I enjoy writing
             | something that looks good and enjoying the success.
             | 
             | (Not that it's bad to find out I missed an optimization in
             | the implementation, but... it feels like a lot of details
             | sometimes.)
        
             | Jtsummers wrote:
             | > - The AoC guy loves recursive descent parsers way too
             | much.
             | 
             | The vast majority (though not all) of the inputs can be
             | parsed with regex or no real parsing at all. I actually
             | can't think of a day that _needed_ anything like recursive
             | descent parsing.
        
         | scuff3d wrote:
         | I know some folks were disappointed with their being 12 puzzles
         | instead of 24 this year, but I never have time to finish anyway
         | so it makes no difference to me lol
         | 
         | I'm just glad they're keeping this going.
        
           | jbv027 wrote:
           | Exactly. I have always taken AoC as fun and time to learn.
           | But there is so much going on during December and I do not
           | enjoy doing more than one puzzle a day (it feels like hard
           | work instead of fun). I usually spend time on weekends with
           | kids and family and I am not willing to solve more puzzles
           | during week days so I am falling behind all the time. My plan
           | was always to finish last year puzzles to enjoy more
           | interesting ones but it always felt wrong. So I hope I will
           | have time to finish everything this year :-) But I feel pain
           | from people with enough free time to go full on. I would love
           | to be one of them but there is so much going on everywhere
           | that I have to split my time. Sorry programming world and
           | especially computers :-D
        
         | integralid wrote:
         | >It's probably an unpopular stance, but I've never done Advent
         | of Code for the competitive aspect
         | 
         | Is this an unpopular stance? Out of a dozen people I know that
         | did/do AoC every year, only one was trying to compete. Everyone
         | else did it for fun, to learn new languages or concepts, to
         | practice coding, etc.
         | 
         | Maybe it helps that, because of timezones, in Europe you need
         | to be really dedicated to play for a win.
        
           | Jtsummers wrote:
           | >Is this an unpopular stance?
           | 
           | No, it's not. At most 200 people could end up on the global
           | leaderboard, and there are tens of thousands of people who
           | participate most days (though it drops off by the end it's
           | over 100k reliably for the first day). The vast majority of
           | participants are not there for the leaderboard. If you care
           | about being competing, there are always private leaderboards.
        
       | encomiast wrote:
       | A little sad that there are fewer puzzles. But also a glad that
       | I'll see my wife and maybe even go outside during the second half
       | of December this year.
        
       | permalac wrote:
       | Does anyone know about any good sysadmin advent?
        
         | ahoka wrote:
         | I propose Advent of Outage: just pull a random plug in the
         | server room every day.
        
           | tgv wrote:
           | How about something like                   while [1]; do kill
           | -9 $((rnd * 100000)); sleep 5; end
           | 
           | Probably needs some external tool for the rnd function.
           | 
           | On a serious note, I just saw this:
           | https://linuxupskillchallenge.org
        
             | udev4096 wrote:
             | That's hardly an "upskill" imo. You would know almost all
             | of it by running a linux server for a month or two
        
       | fainpul wrote:
       | Opinion poll:
       | 
       | Python is extremely suitable for these kind of problems. C++ is
       | also often used, especially by competitive programmers.
       | 
       | Which "non-mainstream" or even obscure languages are also well
       | suited for AoC? Please list your weapon of choice and a short
       | statement why it's well suited (not why you _like_ it, why it 's
       | good for AoC).
        
         | f1shy wrote:
         | I've been doing them is JS and Common Lisp. I recommend the
         | problems to help learning new languages.
        
           | StopDisinfo910 wrote:
           | I respect the effort going into making Advent of Code but
           | with the very heavy emphasis on string parsing, I'm not
           | convinced it's a good way to learn most languages.
           | 
           | Most problems are 80%-90% massaging the input with a little
           | data modeling which you might have to rethink for the second
           | part and algorithms used to play a significant role only in
           | the last few days.
           | 
           | That heavily favours languages which make manipulating string
           | effortless and have very permissive data structures like
           | Python dict or JS objects.
        
             | f1shy wrote:
             | You are right. The exercises are heavy in one area. Still,
             | for _starting_ in a new language can be helpful: you have
             | to do in /out with files. Data structures, and you will be
             | using all flow control. So you will not be an ace, but can
             | help to get started.
             | 
             | I know people who make some arbitrary extra restriction,
             | like "no library at all" which can help to learn the basics
             | of a language.
             | 
             | The downside I see is that suddenly you are solving
             | algorithmic problems, which some times are bot trivial, and
             | at the same time struggling with a new language.
        
             | mhitza wrote:
             | That's a hard agree and a reason why anyone trying to learn
             | Haskell, OCaml, or other language with minimal/"batteries
             | depleted" stdlib will suffer.
             | 
             | Sure Haskell comes packaged with parser combinators, but a
             | new user having to juggle immutability, IO and monads all
             | at once at the same time will be almost certainly
             | impossible.
        
               | PapstJL4U wrote:
               | Maybe not learning a new language from the ground up, but
               | I think it is good training to "just write" within the
               | language. A daily or twice-daily interaction. Setting up
               | projects, doing the basic stuff to get things running,
               | and reading up on the standard library.
               | 
               | Having smaller problems makes it possible to find
               | multiple solutions as well.
        
         | 4pkjai wrote:
         | Kotlin, because it's a language I like
        
           | jpgvm wrote:
           | IMO it's maybe the best suited language to AoC. You can write
           | it even faster than Python, has a very terse syntax and great
           | numerical performance for the few challenges where that
           | matters.
        
         | encomiast wrote:
         | It was mind-boggling to see SQL solutions last year:
         | https://news.ycombinator.com/item?id=42577736
        
           | JokerDan wrote:
           | This is what is great about it, the community posting hyper-
           | creative (sometimes cursed) solutions for fun! I usually use
           | AoC to try out a new language and that has been fun for me
           | over the years.
        
         | shakna wrote:
         | I've always done it in a Scheme. Generally to learn a new
         | compiler and its quirks.
         | 
         | Scheme is fairly well suited to both general programming, and
         | abstract math, which tends to be a good fit for AoC.
        
         | fainpul wrote:
         | For some grid based problems, I think _spreadsheets_ are very
         | powerful and under-appreciated.
         | 
         | The spatial and functional problem solving makes it easy to
         | reason about how a single cell is calculated. Then simply apply
         | that logic to all cells to come up with the solution.
        
         | sunrunner wrote:
         | My favourite "non-mainstream" languages are, depending on my
         | mood at the time, either:
         | 
         | - Array languages such as K or Uiua. Why they're good for AoC:
         | Great for showing off, no-one else can read your solution
         | (including yourself a few days later), good for earlier days
         | that might not feel as challenging
         | 
         | - Raw-dogging it by creating a Game Boy ROM in ASM (for the
         | Game Boy's 'Z80-ish' Sharp LR35902). Why it's good for AoC: All
         | of the above, you've got too much free time on your hands
         | 
         | Just kidding, I use Clojure or Python, and you can pry
         | itertools from my cold, dead hands.
        
         | infamousclyde wrote:
         | I've always used AoC as my jump-off point for new languages. I
         | was thinking about using Gleam this year! I wish I had more
         | profound reasons, but the pipeline syntax is intriguing and I
         | just want to give it a whirl.
        
           | ceautery wrote:
           | That's a perfectly valid reason.
           | 
           | I tried AoC out one year with the Wolfram language, which
           | sounds insane now, but back then it was just a "seemed like
           | the thing to do at the time" and I'm glad I did it.
        
         | jlouis wrote:
         | Go is strong. You get something where writing a solution
         | doesn't take too much time, you get a type system, you can
         | brute-force problems, and the usual mind-numbing boring data-
         | manipulation handling fits well into the standard tools.
         | 
         | OCaml is strong too. Stellar type system, fast execution and
         | sane semantics unlike like 99% of all programming languages. If
         | you want to create elegant solutions to problems, it's a good
         | language.
         | 
         | For both, I recommend coming prepared. Set up a scaffold and
         | create a toolbox which matches the typical problems you see in
         | AoC. There's bound to be a 2d grid among the problems, and you
         | need an implementation. If it can handle out-of-bounds access
         | gracefully, things are often much easier, and so on. You don't
         | want to hammer the head against the wall not solving the
         | problem, but solving parsing problems. Having a combinator-
         | parser library already in the project will help, for instance.
        
           | sunrunner wrote:
           | > For both, I recommend coming prepared.
           | 
           | Any recommendations for Go? Traditionally I've gone for
           | Python or Clojure with an 'only builtins or things I add
           | myself' approach (e.g. no NetworkX), but I've been keen to
           | try doing a year in Go however was a bit put off by the
           | verbosity of the parsing and not wanting to get caught
           | spending more time futzing with input lines and err.
           | 
           | Naturally later problems get more puzzle-heavy so the ratio
           | of input-handling to puzzle-solving code changes, but it
           | seemed a bit off putting for early days, and while I like a
           | builtins-only approach it seems like the input handling would
           | really benefit from a 'parse don't validate' type approach
           | (goparsec?).
        
             | jlouis wrote:
             | It's usually easy enough for Go you can just roll your own
             | for the problems at hand. It won't be as elegant as having
             | access to a combinator-parser, but all of the AoC problems
             | aren't parsing problems.
             | 
             | Once you have something which can "load \n seperated
             | numbers into array/slice" you are mostly set for the first
             | few days. Go has verbosity. You can't really get around
             | that.
             | 
             | The key thing in typed languages are to cook up the right
             | data structures. In something without a type system, you
             | can just wing things and work with a mess of dictionaries
             | and lists. But trying to do the same in a typed language is
             | just going to be uphill as you don't have the tools to
             | manipulate the mess.
             | 
             | Historically, the problems has had some inter-linkage. If
             | you built something day 3, then it's often used day 4-6 as
             | well. Hence, you can win by spending a bit more time on
             | elegance at day 3, and that makes the work at day 4-6
             | easier.
             | 
             | Mind you, if you just want to LLM your way through, then
             | this doesn't matter since generating the same piece of code
             | every day is easier. But obviously, this won't scale.
        
               | sunrunner wrote:
               | > It won't be as elegant as having access to a
               | combinator-parser, but all of the AoC problems aren't
               | parsing problems.
               | 
               | Yeah, this is essentially it for me. While it might not
               | be a 'type-safe and correct regarding error handling'
               | approach with Python, part of the interest of the AoC
               | puzzles is the ability to approach them as 'almost pure'
               | programs - no files except for puzzle input and output,
               | no awkward areas like date time handling (usually),
               | absolutely zero frameworks required.
               | 
               | > you can just wing things and work with a mess of
               | dictionaries and lists.
               | 
               |  _Checks previous years type-hinted solutions with
               | map[tuple[int, int], list[int]]_
               | 
               | Yeah...
               | 
               | > but all of the AoC problems aren't parsing problems.
               | 
               | I'd say for the first ten years at least the first ten-
               | ish days are 90% parsing and 10% solving ;) But yes, I
               | agree, and maybe I'm worrying over a few extra visible
               | err's in the code that I shouldn't be.
               | 
               | > if you just want to LLM your way through
               | 
               | Totally fair point if I constrain LLM usage to input
               | handling and the things that I already know that I know
               | how to do but don't want to type, although I've always
               | quite liked being able to treat each day as an
               | independent problem with no bootstrapping of any code, no
               | 'custom AoC library', and just the minimal program
               | required to solve the problem.
        
         | riffraff wrote:
         | I usually do it with ruby with is well suite just like python,
         | but last year I did it with Elixir.
         | 
         | I think it lends itself very well to the problem set, the
         | language is very expressive, the standard library is extensive,
         | you can solve most things functionally with no state at all.
         | Yet, you can use global state for things like memoization
         | without having to rewrite all your functions so that's nice
         | too.
        
         | marc_omorain wrote:
         | Clojure works really well for AOC.
         | 
         | A lot of the problems involve manipulating sets and maps, which
         | Clojure makes really straightforward.
        
           | Barrin92 wrote:
           | I'll second Clojure not just for the data structures but also
           | because of the high level functions the standard library
           | ships with.
           | 
           | Things like `partition`, `cycle` or `repeat` have come in so
           | handy when working with segments of lists or the Conway's
           | Game-of-Life type puzzles.
        
         | bhollan wrote:
         | I used MATLAB last year while I was re-learning it for work. It
         | did okay, but we didn't have a license for the Image Processing
         | Toolbox, which has a boatload of tools for the grid based
         | problems.
        
         | rootnod3 wrote:
         | My personal choice is always Common Lisp. Absolute swiss army
         | knife.
        
           | tmtvl wrote:
           | With both AoC and Project Euler I like seeing how fast I can
           | get my solution to run with SBCL. Finding all palindromic
           | primes below a million in less than a second is pretty neat.
        
         | WJW wrote:
         | I like to use Haskell, because parser combinators usually make
         | the input parsing aspect of the puzzles extremely
         | straightforward. In addition, the focus of the language on
         | laziness and recursion can lead to some very concise yet
         | idiomatic solutions.
         | 
         | Example: find the first example for when this "game of life"
         | variant has more than 1000 cells in the "alive" state.
         | 
         | Solution: generate infinite list of all states and iterate over
         | them until you find one with >= 1000 alive cells.
         | let allStates = iterate nextState beginState # infinite list of
         | consecutive solutions         let solution = head $ dropWhile
         | (\currentState -> numAliveCells currentState < 1000) allStates
        
           | lkuty wrote:
           | Do you plan to share your solutions on Github or something
           | similar ?
        
             | WJW wrote:
             | I actually plan on doing this year in Gleam, because I did
             | the last 5 years in Haskell and want to learn a new
             | language this year. My solutions for last year are on
             | github at https://github.com/WJWH/aoc2024 though, if you're
             | interested.
        
           | jvuygbbkuurx wrote:
           | Does this solution copy the state on each iteration?
        
             | WJW wrote:
             | Haskell values are immutable, so it creates a new state on
             | each iteration. Since most of these "game of life" type
             | problems need to touch every cell in the simulation
             | multiple times anyway, building a new value is not really
             | that much more expensive than mutating in place. The
             | Haskell GC is heavily optimized for quickly allocating and
             | collecting short-lived objects anyway.
             | 
             | But yeah, if you're looking to solve the puzzle in under a
             | microsecond you probably want something like Rust or C and
             | keep all the data in L1 cache like some people do. If
             | solving it in under a millisecond is still good enough,
             | Haskell is fine.
        
               | sltkr wrote:
               | Fun fact about Game of Life is that the leading
               | algorithm, HashLife[1], uses immutable data structures.
               | It's quite well suited to functional languages, and was
               | in fact originally implemented in Lisp by Bill Gosper.
               | 
               | 1. https://en.wikipedia.org/wiki/Hashlife
        
           | taolson wrote:
           | Yes, there are some cool solutions using laziness that aren't
           | immediately obvious. For example, in 2015 and 2024 there were
           | problems involving circuits of gates that were elegantly
           | solved using the Lob function:
           | 
           | https://github.com/quchen/articles/blob/master/loeb-moeb.md
        
         | sevenseacat wrote:
         | I've been using Elixir since day one, and it works pretty well
         | :)
        
           | aloisdg wrote:
           | I plan to do it in elixir too this year :)
        
         | nemo1618 wrote:
         | I made my own, with a Haskell+Bash flavor and a REPL that
         | reloads with each keystroke:
         | https://www.youtube.com/watch?v=r99-nzGDapg
         | 
         | This year I've been working on a bytecode compiler for it,
         | which has been a nice challenge. :)
         | 
         | When I want to get on the leaderboard, though, I use Go. I
         | definitely felt a bit handicapped by the extra typing and lack
         | of 'import solution' (compared to Python), but with an ever-
         | growing 'utils' package and Go's fast compile times, you can
         | still be competitive. I am very proud of my 1st place finish on
         | Day 19 2022, and I credit it to Go's execution speed, which
         | made my brute-force-with-heuristics approach _just_ fast enough
         | to be viable.
        
           | taolson wrote:
           | >I made my own, with a Haskell+Bash flavor and a REPL that
           | reloads with each keystroke
           | 
           | That was impressive! Do you have a public repo with your
           | language, anywhere?
        
         | natrys wrote:
         | I am going to try and stick with Prolog as much as I can this
         | year. Plenty of problems involve a lot of parsing and
         | searching, both could be expressed declaratively in Prolog and
         | it just works (though you do have to keep the execution model
         | in mind).
        
         | keithlfrost wrote:
         | Elixir Livebook is my tool of choice for Advent of Code. The
         | language is well-suited for the puzzles, I can write some
         | Markdown if I need to record some algebra or my thought
         | process, the notebook format serves as a REPL for instant code
         | testing, and if the solution doesn't fit neatly into an
         | executable form, I can write up my manual steps as well.
        
         | incognito124 wrote:
         | If I remember correctly, one of the competitive programming
         | experts from the global leaderboard made his own language,
         | specifically tailored to help solve AoC problems:
         | 
         | https://github.com/betaveros/noulith
        
           | wging wrote:
           | Yes (or so I thought too!), but apparently no:
           | https://blog.vero.site/post/noulith
           | 
           | (post title: "Designing a Programming Language to Speedrun
           | Advent of Code", but starts off "The title is clickbait. I
           | did not design and implement a programming language for the
           | sole or even primary purpose of leaderboarding on Advent of
           | Code. It just turned out that the programming language I was
           | working on fit the task remarkably well.")
        
         | taolson wrote:
         | AoC has been a highlight of the season for me since the
         | beginning in 2015. I experimented with many languages over the
         | years, zeroing in on Haskell, then Miranda as my language of
         | choice. Finally, I decided to write my own language to do AoC,
         | and created Admiran (based upon Miranda and other lazy, pure,
         | functional languages) with its own self-hosted compiler and
         | library of functional data structures that are useful in AoC
         | puzzles:
         | 
         | https://github.com/taolson/Admiran
         | https://github.com/taolson/advent-of-code
        
         | mrkaye97 wrote:
         | I've been using Elixir, which has been wonderful, mostly
         | because of how amazing the built in `Enum` library is for
         | working on lists and maps (since the majority of AoC problems
         | are list / map processing problems, at least for the first
         | while)
        
           | cyberpunk wrote:
           | Enum really does feel like a superpower sometimes. I'll knock
           | out some loop and then spend a few mins with h Enum.<tab> and
           | realise it could've been one or two Enum functions.
        
         | yoyohello13 wrote:
         | Haskell is my favorite for advent of code. Finally give me an
         | opportunity to think in a pure functional way.
        
         | matsemann wrote:
         | I use python at work but code these in kotlin. The stdlib for
         | lists is _very_ comprehensive, and the syntax is sweet. So easy
         | to make a chain of map, filter and some reduction or nice util
         | (foldr, zipwithnext, windowed etc). Flows very well with my
         | thought process, where in python I feel list comprehensions are
         | the wrong order, lambdas are weak etc.
         | 
         | I write most as pure functional/immutable code unless a problem
         | calls for speed. And with extension functions I've made over
         | the years and a small library (like 2d vectors or grid utils)
         | it's quite nice to work with. Like, if I have a 2D list
         | (List<List<E>>), and my 2d vec, like a = IntVec(5,3), I can do
         | myList[a] and get the element due to an operator overload
         | extension on list-lists.
         | 
         | and with my own utils and extension functions added over years
         | of competitive programming (like it's very fluent
        
         | vharuck wrote:
         | I've done some of the problems in R. Vectorized-by-default can
         | avoid a lot of boilerplate. And for problems that aren't in R's
         | happy path, I learn how to optimize in the language. And then I
         | try to make those optimizations non-hideous to read.
        
           | ashdnazg wrote:
           | My wife did one of the years in Matlab. Some of the problems
           | translate very nicely into vectors and matrices.
        
         | azkalam wrote:
         | Terse languages with great collection functions in the standard
         | libraries and tail call optimization. Haskell, OCaml, F# ...
        
         | yxhuvud wrote:
         | Crystal. Expressiveness and get-shit-done ability similar to
         | the one of Ruby while being way faster in execution.
        
         | Alex_L_Wood wrote:
         | Not sure if Kotlin is non-mainstream, but being able to use the
         | vast Java libraries choice and a much nicer syntax are great
         | boons.
        
         | auxym wrote:
         | I've had a lot of fun using Nim for AOC for many years. Once
         | you're familiar with the language and std lib, its almost as
         | fast to write as python, but much faster (Nim compiles to C,
         | which then gets compiled to your executable). This means that
         | sometimes, if your solution isn't perfect in terms of
         | algorithmic complexity, waiting a few minutes can still save
         | you (waiting 5 mins for your slow Nim code is OK, waiting 5
         | hours for your slow Python isn't really, for me). Of course all
         | problems have a solution that can run in seconds even in
         | Python, but sometimes it's not the one I figure out first try.
         | 
         | Downsides: The debugging situation is pretty bad (hope you like
         | printf debugging), smaller community means smaller package
         | ecosystem and fewer reference solutions to look up if you're
         | stuck or looking for interesting alternative ideas after
         | solving a problem on your own, but there's still quality stuff
         | out there.
         | 
         | Though personally I'm thinking of trying Go this year, just for
         | fun and learning something new.
         | 
         | Edit: also a static type system can save you from a few stupid
         | bugs that you then spend 15 minutes tracking down because you
         | added a "15" to your list without converting it to an int first
         | or something like that.
        
         | AstroBen wrote:
         | This question is really confusing to me because the point of
         | AoC is the fun and experience of it
         | 
         | So.. a language that you're interested in or like?
         | 
         | Reminds me of "gamers will optimize the fun out of a game"
         | 
         | I'm pretty clojure-curious so might mess around with doing it
         | in that
        
         | andriamanitra wrote:
         | I think Ruby is the ideal language for AoC:
         | 
         | * The expressive syntax helps keep the solutions short.
         | 
         | * It has extensive standard library with tons of handy methods
         | for AoC style problems: Enumerable#each_cons,
         | Enumerable#each_slice, Array#transpose, Array#permutation, ...
         | 
         | * The bundled "prime" gem (for generating primes, checking
         | primality, and prime factorization) comes in handy for at least
         | a few of problems each year.
         | 
         | * The tools for parsing inputs and string manipulation are a
         | bit more ergonomic than what you get even in Python: first
         | class regular expression syntax, String#scan, String#[],
         | Regexp::union, ...
         | 
         | * You can easily build your solution step-by-step by chaining
         | method calls. I would typically start with `p
         | File.readlines("input.txt")` and keep executing the script
         | after adding each new method call so I can inspect the
         | intermediate results.
        
         | christophilus wrote:
         | I'd say Clojure because it has great data manipulation
         | utilities baked into the standard library.
        
         | andrelaszlo wrote:
         | I think Crystal, Nim, Julia and F# were my favorites from last
         | year's AoC
         | 
         | I wrote a bit more about it here https://laszlo.nu/blog/advent-
         | of-code-2024.html
         | 
         | AoC is a great opportunity for exploring languages!
        
         | makerofthings wrote:
         | Another vote for Haskell. It's fun and the parsing bit is easy.
         | I do struggle with some of the 2d map style questions which are
         | simpler in a mutable 2d array in c++. It's sometimes hard to
         | write throwaway code in Haskell!
        
         | tonyedgecombe wrote:
         | I think that whatever you know well is the best choice.
        
         | nedt wrote:
         | The language doesn't really matter much. I think I keep using
         | PHP as in the years before.
        
         | jcadam wrote:
         | I tried to do it in emacs lisp one year. Made it about halfway
         | :)
        
         | alexfoo wrote:
         | Perl is my starting point.
         | 
         | It has many of the required structures (hashes/maps, ad hoc
         | structs, etc) and is great for knocking up a rough and ready
         | prototype of something. It's also quick to write (but often
         | unforgiving).
         | 
         | I can also produce a solution for pretty much every problem in
         | AoC without needing to download a single separate Perl module.
         | 
         | On the negative side there are copious footguns available in
         | Perl.
         | 
         | (Note that if I knew Python as well as I knew Perl I'd almost
         | certainly use Python as a starting point.)
         | 
         | I also try and produce a Go and a C solution for each day too:
         | 
         | * The Go solution is generally a rewrite of the initial Perl
         | solution but doing things "properly" and correcting a lot of
         | the assumptions and hacks that I made in the Perl code. Plus
         | some of those new fangled "test" things.
         | 
         | * The C solution is a useful reminder of how much "fun" things
         | can be in a language that lacks built-in structures like
         | hashes/maps, etc.
        
         | yifanl wrote:
         | I believe Eric has said he always makes his first solutions
         | with Perl.
        
         | RobKohr wrote:
         | I have been learning lua to do a VR game in lovr, so I'll
         | probably use that to get sharper with it.
        
       | Archit3ch wrote:
       | Anyone doing this in OpenGL?
        
         | legends2k wrote:
         | I'm not sure I understand this. Most puzzles are number-
         | crunching but very little to do with graphics (maybe one or
         | two), so no usually OpenGL isn't used AFAIK.
         | 
         | Of course, folks may use it to visualise the puzzles but not to
         | solve them.
        
           | ben-schaaf wrote:
           | You definitely could do it all in shaders. People have done
           | crazier things.
        
       | holyknight wrote:
       | I never understood the craze for "Advent of code". Already at
       | this time of the year the last thing I want to do is code even
       | more.
        
         | ls-a wrote:
         | I agree. Didn't these puzzles ruin interviewing for many years
         | now. AI came along and they're still doing it. Some things will
         | needlessly drag on before they die I guess
        
           | MattRix wrote:
           | How do they ruin interviewing? The whole point of these
           | puzzles is that they're meant to be fun to solve, not a means
           | to an end, but enjoyable for what they are.
        
             | ls-a wrote:
             | Tell HR, they don't seem to get it
        
           | legends2k wrote:
           | By the same token, AI came along and we all still have
           | intelligence, needless, eh? I mean people reading and writing
           | stuff has nothing to do with AI. I don't see how some people
           | see everything as a zero-sum game.
        
             | ls-a wrote:
             | All AI is doing is solving these puzzles, which proves they
             | don't need any form of intelligence. You're wrong for
             | associating AI with human intelligence. It will never
             | happen. It might be faked once, like the moon landing, but
             | that's it.
        
         | phartenfeller wrote:
         | Well some people like to code and logic puzzles. And especially
         | as it is in its raw form where you can forget all the noise you
         | encounter while coding professionally with many hoops and
         | responsibilities.
        
         | davidcbc wrote:
         | People like different things
        
           | ls-a wrote:
           | and dislike different things
        
         | wkjagt wrote:
         | I code for fun, even in December.
        
       | kylegalbraith wrote:
       | Excited to see AOC back and I think it was a solid idea to get
       | rid of the global leaderboard.
       | 
       | We (Depot) are sponsoring this year and have a private
       | leaderboard [0]. We're donating $1k/each for the top five
       | finishers to a charity of their choice.
       | 
       | [0] https://depot.dev/events/advent-of-code-2025
        
         | Arainach wrote:
         | Isn't a publicly advertised private leaderboard - especially
         | with cash prizes - against the new guidance? Certainly the
         | spirit of the guidance.
         | 
         | >What happened to the global leaderboard? The global
         | leaderboard was one of the largest sources of stress for me,
         | for the infrastructure, and for many users. People took things
         | too seriously, going way outside the spirit of the contest;
         | some people even resorted to things like DDoS attacks. Many
         | people incorrectly concluded that they were somehow worse
         | programmers because their own times didn't compare. What
         | started as a fun feature in 2015 became an ever-growing
         | problem, and so, after ten years of Advent of Code, I removed
         | the global leaderboard. (However, I've made it so you can share
         | a read-only view of your private leaderboard. *Please don't use
         | this feature or data to create a "new" global leaderboard.*)
        
         | ahoka wrote:
         | This kind of crap is the reason we can't just enjoy an AoC
         | anymore.
        
           | codr7 wrote:
           | Agreed, reward participation, not results.
        
       | IsraelAfangideh wrote:
       | This will be my first one! My primary languages are Typescript
       | and Java. Looking forward to it!
        
         | jeroenhd wrote:
         | While part of the fun is doing the daily tasks with your
         | friends, you can still access the previous years and their
         | challenges if you want to continue after advent!
        
       | gray_-_wolf wrote:
       | I am very happy that we get the advent of code again this year,
       | however I have read the FAQ for the first time, and I must admit
       | I am not sure I understand the reasoning behind this:
       | 
       | > If you're posting a code repository somewhere, please don't
       | include parts of Advent of Code like the puzzle text or your
       | inputs.
       | 
       | The text I get, but the inputs? Well, I will comply, since I am
       | getting a very nice thing for (almost) free, so it is polite to
       | respect the wishes here, but since I commit the inputs (you know,
       | since I want to be able to run tests) into the repository, it is
       | bit of a shame the repo must be private.
        
         | sevenseacat wrote:
         | I use git-crypt to encrypt the inputs in my public repo
         | https://www.agwa.name/projects/git-crypt/ :)
        
           | rawling wrote:
           | I don't push my solutions publicly, but I made an input
           | downloader so you can input your cookie from your browser and
           | load (and cache) the inputs rather than commit them.
        
         | gerikson wrote:
         | If enough inputs are available online, someone can presumably
         | collect them and clone the entire project without having access
         | to the puzzle input generation code, which is the "secret
         | sauce" of the project.
        
           | losvedir wrote:
           | Are you saying that we all have different inputs? I've never
           | actually checked that, but I don't think it's true. My
           | colleagues have gotten stuck in the same places and have
           | mentioned aspects of puzzles and input characteristics and
           | never spoken past each other. I feel like if we had different
           | inputs we'd have noticed by now.
        
             | Jtsummers wrote:
             | He puts together multiple inputs for each day, but they do
             | repeat over users. There's a chance you and your colleagues
             | have the same inputs.
             | 
             | He's also described, over the years, his process of making
             | the inputs. Related to your comment, he tries to make sure
             | that there are no features of some inputs that make the
             | problem especially hard or easy compared to the other
             | inputs. Look at some of the math ones, a few tricks work
             | most of the time (but not every time). Let's say after some
             | processing you get three numbers and the solution is their
             | LCM, that will probably be true of _every_ input, not just
             | coincidental, even if it 's not an inherent property of the
             | problem itself.
        
             | rawling wrote:
             | You do get different inputs, but they largely share
             | characteristics so good solutions should always work and
             | naive ones should consistently fail.
             | 
             | There has been the odd puzzle where some inputs have
             | allowed simpler solutions than others, but those have stood
             | out.
        
               | pxx wrote:
               | I don't know how much they "stand out" because their
               | frequency makes it so that the optimal global leaderboard
               | strat is often to just try something dumb and see if you
               | win input roulette.
               | 
               | if we just look at the last three puzzles: day 23 last
               | year, for example, admitted the greedy solution but only
               | for some inputs. greedy clearly shouldn't work (shuffling
               | the vertices in a file that admits it causes it to fail).
        
             | pxx wrote:
             | It's only a small selection of inputs.
             | 
             | I have a solve group that calls it "Advent of Input
             | Roulette" because (back when there was a global
             | leaderboard) you can definitely get a better expected score
             | by just assuming your input is weak in structural ways.
        
             | alexfoo wrote:
             | It depends on the individual problem, some have a smaller
             | problem space than others so unique inputs would be tricky
             | for everyone.
             | 
             | But there are enough possible inputs that most people
             | shouldn't come across anyone else with exactly the same
             | input.
             | 
             | Part of the reason why AoC is so time consuming for Eric is
             | that not only does he design the puzzles, he also generates
             | the inputs programmatically, which he then feeds through
             | his own solver(s) to ensure correctness. There is a team of
             | beta testers that work for months ahead of the contest to
             | ensure things go smoothly.
             | 
             | (The adventofcode subreddit has a lot more info on this.)
        
       | 12345hn6789 wrote:
       | It is quite odd to call this advent when it ends halfway into the
       | month rather than on Christmas. But I will have fun doing them
       | either way
        
         | smokel wrote:
         | It may have made more sense to start on Christmas Day, matching
         | the Twelve Days of Christmas [1].
         | 
         | [1] https://en.wikipedia.org/wiki/Twelve_Days_of_Christmas
        
       | noirscape wrote:
       | Taking out the public leaderboard makes sense imo. Even when you
       | don't consider the LLM problem, the public Leaderboard's design
       | was never really suited for anyone outside of the very specific
       | short list of (US) timezones where competing for a quick solution
       | was every feasible.
       | 
       | One thing I do think would be interesting is to see solution rate
       | _per hour block_. It 'd give an indication of how popular advent
       | of code is across the world.
        
         | phatfish wrote:
         | LLMs spoiled it, but it was fun to see the genuine top times.
         | Watching competitive coders solve in real time is interesting
         | (Youtube videos), and i wouldn't have discovered these without
         | the leader board.
        
       | phplovesong wrote:
       | I usually use multiple languages. Ocaml anf Go are always a pick.
       | This year i think i want to try Gleam, and Haxe too.
        
       | georgehotz wrote:
       | I support the no global leaderboard. I was in 7th place last year
       | but quickly got bored maintaining the aggressive AI pipeline
       | required to achieve that. If I wanted to maintain pipelines I'd
       | just do work, and there will never be a good way to prevent
       | people from using AI like this. Advent of Code should be fun,
       | thank you for continuing to do it. I'm looking forward to
       | casually playing this year!
        
         | minitech wrote:
         | It was pretty boring trying to place against aggressive AI
         | pipelines like yours throughout the explicit requests not to
         | use them[1]. I'm sorry to hear it became boring for you too.
         | 
         | [1]
         | https://web.archive.org/web/20241201070128/https://adventofc...
        
           | georgehotz wrote:
           | I mean, everyone else was using them too, how can you not?
           | That was the name of the game if you wanted to be competitive
           | in 2024. Not using them would be like trying to do
           | competitive pro cycling without steroids, basically
           | impossible.
        
             | minitech wrote:
             | It's more like playing a casual tournament at your local
             | chess club without an engine.
        
             | NewsaHackO wrote:
             | Saying everyone else is cheating is not a valid excuse for
             | cheating. It's why aatrong became a pariah, even though he
             | and everyone else was EPO doping.
        
             | herni wrote:
             | Gotta love the classic "everyone else is cheating too"
        
         | karel-3d wrote:
         | "It was boring to run a cycling contest on a motorbike."
         | 
         | Although there are now rumours of hidden motors in Tour de
         | France bicycles. So, I guess it's the same.
        
         | makerofthings wrote:
         | The FAQ was pretty clear about not using AI to get on the
         | leaderboard last year.
        
         | pred_ wrote:
         | So, publicly admitting that you broke the rules and are part of
         | the reason we can't have nice things. Why?
        
       | bitbasher wrote:
       | I'd like to play, sadly you can't without logging in with google,
       | github, etc.
        
         | Jtsummers wrote:
         | You can always create a throwaway account on one of those
         | services. It's not that hard.
        
           | bitbasher wrote:
           | You could, but you shouldn't have to. If you want to sign up
           | for XYZ, you need to sign up for BigCorp, you need to add
           | your phone number to verify your account, etc.
           | 
           | No thanks.
        
             | acedTrex wrote:
             | You can log in with reddit, dont need a phone number for
             | that one. And if you have an HN account you probably have a
             | reddit acct lol
        
         | HendrikHensen wrote:
         | The "etc" is pretty important here. You can log in using
         | Reddit, and you can create a random throwaway Reddit account
         | without filling in any other details (no email address or phone
         | number required).
        
           | chucksmash wrote:
           | I believe they no longer allow new accounts without an email
           | address.
           | 
           | It used to be that reddit had a user creation screen that
           | looked like you needed to input an email address, but you
           | could actually just click "Next" to skip it.
           | 
           | The last time I had cause to make a reddit account, they no
           | longer allowed this.
        
         | jeroenhd wrote:
         | Having done my own auth I get why they do it this way. LLMs are
         | already a massive problem with AoC, I imagine an anonymous
         | endpoint to validate solutions would be even worse.
         | 
         | Having done auth myself, I can also understand why auth is
         | being externalised like this. The site was flooded with bots
         | and scrapers long before LLMs gained relevance and adding all
         | the CAPTCHAs and responding to the "why are you blocking my
         | shady CGNAT ISP when I'm one of the good ones" complaints is
         | just not worth it. Let some company with the right expertise
         | deal with all of that bullshit.
         | 
         | I'd wish the site would have more login options, though. It's a
         | tough nut to crack; pick a small, independent oauth login
         | service not under control of a bit tech company and you're
         | basically DDOSing their account creation page for all of
         | December. Pick a big tech company and you're probably not
         | gaining any new users. You can't do decentralized auth because
         | then you're just doing authentication DDOS with extra steps.
         | 
         | If I didn't have a github account, I'd probably go with a
         | throwaway reddit account to take part. Reddit doesn't really do
         | the same type of tracking Twitter tries to do and it's probably
         | the least privacy invasive of the bunch.
        
         | udev4096 wrote:
         | Agreed. I think having an option for codeberg would be great
        
       | quirino wrote:
       | Small anecdote:
       | 
       | In the IEEEXTREME university programming competition there are
       | ~10k participating teams.
       | 
       | Our university has a quite strong Competitive Programming program
       | and the best teams usually rank in the top 100. Last year a team
       | ranked 30 and it's wasn't even our strongest team (which didn't
       | participate)
       | 
       | This year none of our teams was able to get in the top 1000. I
       | would estimate close to 99% of the teams in the Top 1000 were
       | using LLMs.
       | 
       | Last year they didn't seem to help much, but this year they
       | rendered the competition pointless.
       | 
       | I've read blogs/seen videos of people who got in the AOC global
       | leaderboard last year without using LLMs, but I think this year
       | it wouldn't be possible at all.
        
         | letmetweakit wrote:
         | Man, those people using LLMs in competitive programming ...
         | where's the fun in that? I don't get people for whom it's just
         | about winning, I wish everyone would just have some basic form
         | of dignity and respect.
        
           | jvanderbot wrote:
           | Yeah, it's like bringing a ~bike~ motorcycle to your
           | marathon. But if you can get away with it, there will always
           | be people doing it.
           | 
           | Imagine the shitshow that gaming would be without any kind of
           | anti-cheat measures, and that's the state of competitive
           | programming.
        
             | integralid wrote:
             | Why is that strange? Competitive programming, as the name
             | suggests, is about competing. If the rules allow that, not
             | using LLM is actually more like running tour de France.
             | 
             | If the rules don't allow that and yet people do then well,
             | you need online qualifiers and then onsite finals to pick
             | the real winners. Which was already necessary, because
             | there are many other ways to cheat (like having more people
             | than allowed in the team).
        
               | jvanderbot wrote:
               | I'm a bit surprised you can honestly believe that a
               | competition of humans isn't somehow different if allowed
               | to use solution-generators. Like using a calculator in an
               | arithmetic competition. Really?
               | 
               | It's not much different than outlawing performance
               | enhancing drugs. Or aimbots in competitive gaming. The
               | point is to see what the limits of human performance are.
               | 
               | If an alien race came along and said "you will all die
               | unless you beat us in the IEEE programming competition",
               | I would be all for LLM use. Like if they challenged us to
               | Go, I think we'd probably / certainly use AI. Or chess -
               | yeah, we'd be dumb to not use game solvers for this.
               | 
               | But that's not in the spirit of the competition if it's
               | University of Michigan's use of Claude vs MIT's use of
               | Claude vs ....
               | 
               | Imagine if the word "competition" meant "anything goes"
               | automatically.
        
           | Ekaros wrote:
           | Weirdly I feel lot more accepting of LLMs in this type of
           | environment than in making actual products. Point is doing
           | things fast and correct enough. So in someways LLM is just
           | one more tool.
           | 
           | With products I want actual correctness. And not something
           | thrown away.
        
             | throwaway0123_5 wrote:
             | Given what I understand about the nature of competitive
             | programming competitions, using an LLM seems kind of like
             | using a calculator in an arithmetic competition (if such a
             | thing existed) or a dictionary in a spelling bee.
        
             | mbb70 wrote:
             | The goal of "actual projects" is also fast and correct
             | enough though
        
             | loeg wrote:
             | These contests are about memorizing common patterns and
             | banging out code quickly. Outsourcing that to an LLM
             | defeats the point. You can say it's a stupid contest
             | format, and that's fine.
             | 
             | (I did a couple of these in college, though we didn't
             | practice outside of competition so we weren't especially
             | good at it.)
        
             | jama211 wrote:
             | We're starting to get to a point where the ai can generate
             | better code than your average developer, though. Maybe not
             | a great developer yet, but a lot of products are written by
             | average developers.
        
           | evil-olive wrote:
           | > I don't get people for whom it's just about winning, I wish
           | everyone would just have some basic form of dignity and
           | respect.
           | 
           | reminds me of something I read in "I'm a high schooler. AI is
           | demolishing my education." [0,1] emphasis added:
           | 
           | > During my sophomore year, I participated in my school's
           | debate team. I was excited to have a space outside the
           | classroom where creativity, critical thinking, and
           | intellectual rigor were valued and sharpened. I love the rush
           | of building arguments from scratch. ChatGPT was released back
           | in 2022, when I was a freshman, but the debate team weathered
           | that first year without being overly influenced by the
           | technology--at least as far as I could tell. But soon, AI
           | took hold there as well. Many students avoided the technology
           | and still stand against it, but it was impossible to ignore
           | what we saw at competitions: _chatbots being used for
           | research and to construct arguments between rounds._
           | 
           | high school debate used to be an extracurricular thing
           | students could do for fun. now they're using chatbots in
           | order to generate arguments that the students can just
           | regurgitate.
           | 
           | the end state of this seems like a variation on Dead Internet
           | Theory - Team A is arguing the "pro" side of some issue, Team
           | B is arguing the "con" side, but it's just an LLM generating
           | talking points for both sides and the humans acting as
           | mouthpieces. it still looks like a "debate" to an outside
           | observer, but all the critical thinking has been stripped
           | away.
           | 
           | 0: https://www.theatlantic.com/technology/archive/2025/09/hig
           | h-...
           | 
           | 1: https://archive.is/Lda1x
        
             | Aurornis wrote:
             | > high school debate used to be an extracurricular thing
             | students could do for fun.
             | 
             | High school debate has been ruthless for a long time, even
             | before AI. There has been a rise in the use of techniques
             | designed to abuse the rules and derail arguments for
             | several years. In some regions, debates have become more
             | about teams leveraging the rules and technicalities against
             | their opponents than organically trying to debate a
             | subject.
        
               | DangitBobby wrote:
               | It sucks that the fun is being sucked out of debate, but
               | I guess a silver lining is that the abuse of these
               | tactics helps everyone understand that winning debates
               | isn't about being correct, it's about being a good
               | debater. And a similar principle can be applied to the
               | application of law and public policy as well.
        
           | Aurornis wrote:
           | I'm a very casual gamer but even I run into obvious cheaters
           | in any popular online game all the time.
           | 
           | Cheating is rampant anywhere there's an online competition.
           | The cheaters don't care about respecting others, they get a
           | thrill out of getting a lot of points against other people
           | who are trying to compete.
           | 
           | Even in the real world, my runner friends always have stories
           | about people getting caught cutting trails and all of the
           | lengths their running organizations have to go through now to
           | catch cheaters because it's so common.
           | 
           | The thing about cheaters in a large competition is that it
           | doesn't take many to crowd out the leaderboard, because the
           | leaderboard is where they get selected out. If there are 1000
           | teams competing and only 1% cheat, that 1% could still fill
           | the top 10.
        
           | Isamu wrote:
           | It can be a matter of values from your upbringing or
           | immediate environment. There are plenty of places where they
           | value the results, not the journey, and they think that
           | people who avoid cheating are chumps. Think about that: you
           | are in a situation where you just want to do things for fun
           | but everyone around you will disrespect you for not taking
           | the easy way out.
        
           | hoherd wrote:
           | Yeah. I was happy to see this called out in their /about
           | 
           | > 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.
        
           | zerr wrote:
           | I believe the reason is that many still use CP for hiring, so
           | people go into leetcode (or AdventOfCode) grind, sadly.
        
           | zulban wrote:
           | It's a different kind of fun. Just like doing math problems
           | on paper can be fun, or writing code to do the math can be
           | fun, or getting AI to write the code to do the math can be
           | fun.
           | 
           | They're just different types of fun. The problem is if one
           | type of fun is ruined by another.
        
         | armchairhacker wrote:
         | In 1997, Deep Blue beat Gary Kasparov, the world chess
         | champion. Today, chess grandmasters stand no chance against
         | Stockfish, a chess engine that can run on a cheap phone. Yet
         | chess remains super popular and competitive today, and while
         | there are occasional scandals, cheating seems to be mostly
         | prevented.
         | 
         | I don't see why competitive debate or programming would be
         | different. (But I understand why a fair global leaderboard for
         | AOC is no longer feasible).
        
           | ewidar wrote:
           | Online chess competitions actually spend quite a lot on
           | preventing cheating, and even then it's a common talking
           | point.
        
         | matsemann wrote:
         | When I did competitions like these at uni (~10-15 years ago),
         | we all used some thin-clients in the computer lab where the
         | only webpages one could access were those allowed by the
         | competition (mainly the submission portal). And then some
         | admin/organizers would feed us and make sure people didn't
         | cheat. Maybe we need to get back to that setup, heh.
        
           | quirino wrote:
           | Serious in-person competitions like ICPC are still effective
           | against cheating. The first phase happens in a limited number
           | of venues and the computers run a custom OS without internet
           | access. There are many people watching so competitors don't
           | user their phones, etc.
           | 
           | The Regional Finals and World Finals are in a single venue
           | with a very controlled environment. Just like the IOI and
           | other major competitions.
           | 
           | National High School Olympiads have been dealing with bigger
           | issues because there are too many participants in the first
           | few phases, and usually the schools themselves host the
           | exams. There has been rampant cheating. In my country I
           | believe the organization has resorted to manually reviewing
           | all submissions, but I can only see this getting increasingly
           | less effective.
           | 
           | This year the Canadian Computing Competition didn't
           | officially release the final results, which for me is the
           | best solution:
           | 
           | > Normally, official results from the CCC would be released
           | shortly after the contest. For this year's contest, however,
           | we will not be releasing official results. The reason for
           | this is the significant number of students who violated the
           | CCC Rules. In particular, it is clear that many students
           | submitted code that they did not write themselves, relying
           | instead on forbidden external help. As such, the reliability
           | of "ranking" students would neither be equitable, fair, or
           | accurate.
           | 
           | Available here: [PDF] https://cemc.uwaterloo.ca/sites/default
           | /files/documents/2025...
           | 
           | Online competitions are just hopeless. AtCoder and Codeforces
           | have rules against AI but no way to enforce them. A minimally
           | competent cheater is impossible to detect. Meta Hacker Cup
           | has a long history and is backed by a large company, but had
           | its leaderboard crowded by cheaters this year.
        
         | gregdeon wrote:
         | Oof. I had a great time cracking the top 100 of Advent of Code
         | back in 2020. Bittersweet to know that I got in while it was
         | still a fun challenge for humans.
        
       | singron wrote:
       | BTW the page mentions Alternate Styles, which is an obscure
       | feature in firefox (View -> Page Styles). If you try it out, you
       | will probably run into [0] and not be able to reset the style.
       | The workaround is to open the page in a different tab, which will
       | go back to the default style.
       | 
       | 0: https://bugzilla.mozilla.org/show_bug.cgi?id=1943796
        
       | jjice wrote:
       | I _love_ the Advent of Code. I actually (selfishly) love that
       | it's only 12 days this year, because by about half way, I'm
       | struggling to find the time to sit down and do the fantastic
       | problems because of all the holiday activities IRL.
       | 
       | Huge thanks to those involved!
        
         | PapstJL4U wrote:
         | Yeah, last year I only got to Day7 (on dec 26). I hope the
         | smaller amount reduces "the fear of falling behind".
        
         | DangitBobby wrote:
         | I agree so much. Maybe I'll finally get a year done!
        
         | schaefer wrote:
         | I'm so excited for this year.
        
       | udev4096 wrote:
       | Would love to know which exotic and niche languages are people
       | going to use for this year. I am personally thinking of trying
       | out Crystal or Elixir
        
         | christophilus wrote:
         | I'm probably going to use rescript. Though I may do Gleam or
         | Roc.
        
       | jeroenhd wrote:
       | I find it interesting how many sponsors run their own "advent of
       | <x>". So far I've seen "cloud", "FPGA", and a "cyber security"
       | one in the sponsors pages (although that last one is one I
       | remember from last year).
       | 
       | I'm also surprised there are a few Dutch language sponsors. Do
       | these show up for everyone or is there some kind of region
       | filtering applied to the sponsors shown?
        
       | codr7 wrote:
       | I've been looking forward to this!
       | 
       | It's kotlin and shik for me this year, probably a bit of both.
       | And no stupid competitions, AoC should be fun.
       | 
       | https://gitlab.com/codr7/shik
        
       | d--b wrote:
       | Personally, I never understood the grind of the advent of code.
       | This is exactly the kind of stuff I am grateful to be able to
       | delegate to a LLM.
        
         | Snacklive wrote:
         | why would delegate to an LLM something that is supposed to be
         | fun. THIS specifically is the kind of stuff you shouldn't
         | delegate to an LLM
        
       | poulpy123 wrote:
       | Going blind with uiua this year.
        
         | smokel wrote:
         | For those who think this is a typo, uiua [1] (pronounced "wee-
         | wuh") is a stack-based array programming language.
         | 
         | I solved a few problems with it last year, and it is amazing
         | how compact the solutions are. It also messes with your head,
         | and the community surrounding it is interesting. Highly
         | recommended.
         | 
         | [1] https://www.uiua.org/
        
           | dang wrote:
           | Related:
           | 
           |  _Uiua - A stack-based array programming language_ -
           | https://news.ycombinator.com/item?id=42590483 - Jan 2025 (6
           | comments)
           | 
           |  _Uiua: A minimal stack-based, array-based language_ -
           | https://news.ycombinator.com/item?id=37673127 - Sept 2023
           | (104 comments)
        
       | alexfoo wrote:
       | Looking forward to it but also sad that it is "only" 12 puzzles,
       | but I completely respect Eric's decision to scale it back.
       | 
       | I've got 500 stars (i.e. I've completed every day of all 10
       | previous years) but not always on the day the puzzles were
       | available, probably 430/500 on the day. (I should say I find the
       | vast majority of AoC relatively easy as I've got a strong
       | grounding in both Maths and Comp Sci.)
       | 
       | First of all I only found out about AoC in 2017 and so I did 2015
       | and 2016 retrospectively.
       | 
       | Secondly I can keep up with the time commitments required up
       | until about the 22nd-24th (which is when I usually stop working
       | for Christmas). From then time with my wife/kids takes
       | precedence. I'll usually wrap up the last bits sometime from the
       | 27th onwards.
       | 
       | I've never concerned myself with the pointy end of the
       | leaderboards due to timezones as the new puzzles appear at 5am
       | local time for me and I've no desire to be awake at that time if
       | I can avoid it, certainly not for 25 days straight. I expect
       | that's true of a large percentage of people participating in AoC
       | too.
       | 
       | My simple aim every day is that my rank for solving part 2 of a
       | day is considerably lower than my rank for solving part 1.
       | 
       | (To be clear, even if I was up and firing at 5am my time every
       | day I doubt I could consistently get a top 100 rank. I've got ten
       | or so 300-1000 ranks by starting ~2 hours later but that's about
       | it. Props to the people who can consistently appear in the top
       | 100. I also start most days from scratch whilst many people
       | competing for the top 100 have lots of pre-written code to parse
       | things or perform the common algorithms.)
       | 
       | I also use the puzzles to keep me on my toes in terms of
       | programming and I've completed every day in one of Perl, C or Go
       | and I've gone back and produced solutions in all 3 of those for
       | most days. Plus some random days can be done easily on the
       | command-line piping things through awk, sed, sort, grep, and the
       | like.
       | 
       | The point of AoC is that everyone is free to take whatever they
       | want from it.
       | 
       | Some use it to learn a new programming language. Some use it to
       | learn their first language and only get a few days into it. Some
       | use it to make videos to help others on how to program in a
       | specific language. Some use it to learn how/when to use
       | structures like arrays, hashes/maps, red-black trees, etc, and
       | then how/when to use classic Comp Sci algorithms like A* or SAT
       | solvers, Djikstra's, etc all the way to some random esoteric
       | things like Andrew's monotone chain convex hull algorithm for
       | calculating the perimeter of a convex hull. There are also the
       | mathsy type problems often involving Chinese Remainder Theorem
       | and/or some variation of finite fields.
       | 
       | My main goal is to come up with code that is easy to follow and
       | performs well as a general solution rather than overly specific
       | to my individual input. I've also solved most years with a sub 1
       | second total runtime (per year, so each day averages less than
       | 40msec runtime).
       | 
       | Anyway, roll on tomorrow. I'll get to the day 1 problem once I've
       | got my kid up and out the door to go to school as that's my
       | immediate priority.
        
       | deergomoo wrote:
       | > You don't need a computer science background to participate -
       | just a little programming knowledge and some problem solving
       | skills will get you pretty far.
       | 
       | Every time I see this I wonder how many amateur/hobbyist
       | programmers it sets up for disappointment. Unless your definition
       | of "pretty far" is "a small number of the part ones", it's simply
       | not true.
        
       ___________________________________________________________________
       (page generated 2025-11-30 23:00 UTC)