[HN Gopher] Advent of Code 2025
       ___________________________________________________________________
        
       Advent of Code 2025
        
       Author : vismit2000
       Score  : 1165 points
       Date   : 2025-11-30 13:07 UTC (1 days 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).
        
         | rdos wrote:
         | It won't load for me right 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
        
             | chongli wrote:
             | Chess doesn't rank people based on how quickly they
             | complete a puzzle after midnight EST (UTC-5). For people in
             | large parts of Asia, midnight EST translates to late
             | morning / early afternoon. This means someone in Asia can
             | complete each AoC puzzle during daylight hours whereas
             | someone in eastern North America will have to complete the
             | puzzle in the middle of the night.
        
         | 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.
        
             | undeveloper wrote:
             | any recommendations on how to do this?
        
             | Ntrails wrote:
             | Last year was the first time I ever did the thing in sync,
             | and it was a source of real delight to see other people
             | foot-gunning themselves in the same way as me (also in
             | different ways, schadenfreude and all that....)
        
           | volemo wrote:
           | Yep, I don't really understand why the author didn't make it
           | _one_ per day for 24 days. Am I missing something obvious?
        
             | gerikson wrote:
             | Since the start, each problem has 2 parts (2 "stars"). Part
             | one sets up the problem, ensures you have parsed the input
             | correctly, etc. After submitting the correct answer to that
             | part, part 2 is revealed, which sometimes expands the
             | proplem space, adds new limits, etc. Something that solves
             | part 1 might be inadequate for part 2.
        
         | 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.
        
           | skywhopper wrote:
           | Why post, then? No one cares about your lack of interest.
        
             | crystal_revenge wrote:
             | It always seemed odd to me that a persistent minority of HN
             | readers seem to have no interest in recreational
             | programming/technical problems solving and perpetually ask
             | "why should I care?"
             | 
             | It's totally fine not to care, but I can't quite get why
             | you would then want to be an active member in a community
             | of people who care about this stuff for no other reason
             | than _they fundamentally find it interesting_.
        
           | unkulunkulu wrote:
           | I wonder how this is the most straightforward way to know
           | that?
        
           | onion2k wrote:
           | Your logic is flawed. You can be a developer and not be
           | interested in AoC. Not being interested in AoC only shows
           | you're not interested in AoC.
        
             | doublerabbit wrote:
             | I wasn't casting logic. I'm not a developer and that when
             | it comes to AoC I have no interest in. Nor being such.
        
           | coolThingsFirst wrote:
           | It's all marketing, I can sell this to you and convert you.
           | 
           | Thing is it may have some interesting challenges, I too,
           | wouldn't want to solve some insane string parsing problem
           | with no interesting idea behind it. For today's problem, I
           | did the naive version and it worked. The modular version
           | created some issues with some corner cases.
           | 
           | There should be more events like AoC. Self-contained problems
           | are very educational.
        
         | 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.
        
           | mattbillenstein wrote:
           | The global leaderboard was a great way to find really crazy
           | good people and solutions however - I picked through a couple
           | of these guys solutions and learned a few things. One guy had
           | even written his own special purpose language mainly to make
           | AoC problems fast - he was of course a compilers guy.
        
         | ryandv wrote:
         | > the global leaderboard had to be pulled.
         | 
         | Frankly I'm better off with it being this way instead of the
         | sweaty cupstacking LLM% speedrun it became as it gained
         | popularity.
        
       | 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.
        
               | Mountain_Skies wrote:
               | I stopped staying up until midnight for the new problem
               | set to be released and instead would do them in the
               | afternoon. Even though I could compare my time to the
               | leaderboard, simply not having the possibility of being
               | on the board removed most of the comparison anxiety.
        
               | 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.
        
           | randomifcpfan wrote:
           | Current frontier agents can one shot solve all 2024 AoC
           | puzzles, just by pasting in the puzzle description and the
           | input data.
           | 
           | From watching them work, they read the spec, write the code,
           | run it on the examples, refine the code until it passes, and
           | so on.
           | 
           | But we can't tell whether the puzzle solutions are in the
           | training data.
           | 
           | I'm looking forward to seeing how well current agents perform
           | on 2025's puzzles.
        
             | suddenlybananas wrote:
             | They obviously have the puzzles in the training data, why
             | are you acting like this is uncertain?
        
         | 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.
        
         | returningfory2 wrote:
         | I hope your wife is also glad!
        
       | 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
        
         | fduran wrote:
         | I haven't set up an advent event (maybe I should) but you can
         | do yourself a challenge a day from SadServers.com
        
         | fduran wrote:
         | https://sadservers.com/advent
        
       | 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.
        
               | talideon wrote:
               | I typically use OCaml myself for them and have never
               | found the standard library to be particularly "depleted"
               | for AoC, though I do have a couple hundred lines of
               | shared library code built up over the years for parsing
               | things, instrumenting things, and implementing a few
               | algorithms and data structures that keep cropping up.
               | 
               | Also, dune makes pulling in build dependencies easy these
               | days, and there's no shame in pulling in other support
               | libraries. It's years since I've written anything in
               | Haskell, but I'd guess the same goes for cabal, though
               | OCaml is still more approachable than Haskell for most
               | people, I'd say. A newbie is always going to be at some
               | kind of disadvantage regardless.
        
               | mhitza wrote:
               | > I do have a couple hundred lines of shared library code
               | built up over the years for parsing things
               | 
               | I think that's the best example of anemic built-in
               | utilities. Tried AoC two years ago with OCaml; string
               | splitting, character matching and string slicing were
               | very cumbersome coming from Haskell. Whereas the
               | convenient mutation and for-loops in OCaml provide an
               | overall better experience.
               | 
               | Given you're already well-versed in the ecosystem you'll
               | probably have no issues working with dune, but for
               | someone picking up OCaml/Haskell and having to also delve
               | in the package management part of the system is not a
               | productive or pleasant experience.
               | 
               | Bonus points for those trying out Haskell, successfully,
               | than in later challenges having to completely rewrite
               | their solution due to spaceleaks, whereas Go, Rust (and
               | probably OCaml) solutions just bruteforce the work.
               | 
               | I'm probably just that bad at programming.
        
         | 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.
        
           | speed_spread wrote:
           | Modern straight Java works just as well.
        
         | 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.
        
           | tgv wrote:
           | I started only last year, to learn a bit of Ada. Doing SPARK
           | this year. That has been on my TOLEARN list for a long time.
           | Should be interesting.
        
         | 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.
        
           | bashkiddie wrote:
           | > Go is strong.
           | 
           | How do you parse the puzzle input into a data structure of
           | your choice?
        
         | 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.
        
             | rootnod3 wrote:
             | SBCL is an absolute beast. I think only surpassed by
             | LispWorks, but SBCL is a miracle machine. Even without type
             | annotations it usually performs well enough.
        
         | 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?
        
             | nemo1618 wrote:
             | yep, https://github.com/lukechampine/slouch. Fair warning,
             | it's some of the messiest code I've ever written (or at
             | least, posted online). Hoping to clean it up a bit once the
             | bytecode stuff is production-ready.
        
         | 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.")
        
             | Aissen wrote:
             | It's still very domain-oriented:
             | 
             | > I solve and write a lot of puzzlehunts, and I wanted a
             | better programming language to use to search word lists for
             | words satisfying unusual constraints, such as, "Find all
             | ten-letter words that contain each of the letters A, B, and
             | C exactly once and that have the ninth letter K."1 I have a
             | folder of ten-line scripts of this kind, mostly Python, and
             | I thought there was surely a better way to do this.
             | 
             | I'll chose to remember it was designed for AoC :-D
        
         | 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.
        
         | crystal_revenge wrote:
         | For me (and most of my friends/coworkers) the _point_ of AoC
         | was to write in some language that you always wanted to learn
         | but never had the chance. The AoC problems tend to be
         | _excellent_ material for a crash course in a new PL because
         | they cover a range of common programming tasks.
         | 
         | Historically good candidates are:
         | 
         | - Rust (despite it's popularity, I know a lot of devs who
         | haven't had time to play with it).
         | 
         | - Haskell (though today I'd try Lean4)
         | 
         | - Racket/Common Lisp/Other scheme lisp you haven't tried
         | 
         | - Erlang/Elixir (probably my choice this year)
         | 
         | - Prolog
         | 
         | Especially for those langs that people typically dabble in but
         | never get a change to write non-trivial software in (Haskell,
         | Prolog, Racket) AoC is fantastic for really getting a feel for
         | the language.
        
           | ngrislain wrote:
           | Yes, this year I'm going for Lean 4:
           | https://github.com/ngrislain/lean-adventofcode-2025
           | 
           | It's a great language. It's dependent-types / theorem-
           | proving-oriented type-system combined with AI assistants
           | makes it the language of the future IMO.
        
             | rootnod3 wrote:
             | Isn't the whole point of AoC to NOT use AI? Even says so in
             | the FAQ
        
               | tgv wrote:
               | Like with the leader board. People do it to score points,
               | not to learn. Hence, cheating.
        
         | reddit_clone wrote:
         | I have used Raku (Perl 6) with good results.
         | 
         | Common Lisp. Using 'iterate' package almost feels like
         | cheating.
         | 
         | I have done half a year in (noob level) Haskell long ago. But
         | can't find the code any more.
         | 
         | Most mind blowing thing for me was looking at someone's
         | solutions in APL!
        
         | bombcar wrote:
         | The only way to _win_ is with Brainfuck.
         | 
         | Or MUMPS.
        
         | ghewgill wrote:
         | I've done AoC on what I call "hard mode", where I do the
         | solutions in a language I designed and implemented myself. It's
         | not because the language is particularly suited to AoC in any
         | particular way, but it gives me confidence that my language can
         | be used to solve real problems.
         | 
         | Neon Language: https://neon-lang.dev/ Some previous AoC
         | solutions: https://github.com/ghewgill/adventofcode
        
         | paddim8 wrote:
         | I used my homemade shell language last year, called elk shell.
         | It worked surprisingly well, better than other languages I've
         | tried, because unlike other shell languages it is just a
         | regular general purpose scripting language with a standard
         | library that can also run programs with the same syntax as
         | function calls.
        
         | SilverSlash wrote:
         | Is Rust still "non-mainstream"? Because it's extremely well
         | suited for AoC. The ergonomics of a high-level language with
         | the performance of C++.
        
           | fragmede wrote:
           | > The ergonomics of a high-level language
           | 
           | Is there a way to drop into a repl like with python and
           | pdb.set_trace()? I couldn't find one last time I played
           | around with Rust.
        
             | zozbot234 wrote:
             | https://github.com/evcxr/evcxr (evcxr is short for
             | "evaluation context and REPL")
        
         | radiator wrote:
         | A new language every year. A language I had intended to learn.
         | Using a different programming paradigm, or a paradigm which I
         | have not used recently.
        
         | tomjen3 wrote:
         | With AoC I think that its fine to pick a language that is not
         | at all suited for the challenge. That can be half the fun.
         | 
         | I saw someone one Twitter use Excel.
        
         | talideon wrote:
         | OCaml. There's just enough in the standard library to cover
         | what you need for everything, for any non-trivial parsing
         | tasks, there's a parser generator and lexer generator bundled,
         | and if you want to pull in extra support libraries so you're
         | not looking to implement, say, a trie from scratch.
        
         | thomasjb wrote:
         | C, because it makes every problem into a memory management
         | problem, which is good for you in an 'eat your vegetables' sort
         | of way. It's also the starting point for a lot of other
         | programming languages and related things like HDLs, which is
         | helpful to me.
         | 
         | I'm plodding my way through the 2015 challenge here:
         | https://git.thomasballantine.com/thomasballantine/Advent_of_...
         | , it's really sharpened me up on a number of points.
        
         | queuebert wrote:
         | My favorite non-mainstream language for competitions like this
         | and Project Euler is Julia. The startup time is not a factor,
         | and the ability to use UTF-8 symbols as variables makes the
         | code more mathematical.
        
         | nurettin wrote:
         | If it is not solvable with a Ruby one-liner, it is not a well
         | defined problem.
        
       | 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
        
             | yeasku wrote:
             | I mean people use the internet to find people who like
             | similar things.
             | 
             | Why would you use a site called HackerNews if you are not a
             | hacker? No idea.
        
               | ls-a wrote:
               | I'm not a hacker I'm just news unfortunately
        
         | 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.
        
         | stOneskull wrote:
         | i don't think it should be a charity of their choice. i think
         | it should have to be one of the top 5 most reputable charities
         | in the world, like doctors without borders or salvation army.
        
       | 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.
        
             | yesbabyyes wrote:
             | This is cool. Kudos!
        
         | 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.)
        
         | yesbabyyes wrote:
         | This is not surprising at all, to me. Just commit the example
         | input and write your test cases against that. In a nicely
         | structured solution, this works beautifully with example style
         | tests, like python or rust doctests, or even running jsdoc
         | @example stanzas as tests with e.g. the @linus/testy module.
        
           | gray_-_wolf wrote:
           | > Just commit the example input
           | 
           | The example input(s) is part of the "text", and so committing
           | it is also not allowed. I guess I could craft my own example
           | inputs and commit those, but that exceed the level of effort
           | I am willing to expend trying to publish repository no one
           | will likely ever read. :)
        
         | MyOutfitIsVague wrote:
         | I make my code public, and keep my inputs in a private
         | submodule.
        
         | jedimastert wrote:
         | The inputs are part of the validation that you did the
         | question, so they're kind of a secret.
        
       | 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
        
         | tgv wrote:
         | I think there's a problem every other day, so it's 1, 3, ...,
         | 23.
        
           | alexfoo wrote:
           | No, the puzzles are every day from the 1st to the 12th
           | inclusive.
           | 
           | From https://adventofcode.com/2025/about:
           | 
           | " Why did the number of days per event change? It takes a ton
           | of my free time every year to run Advent of Code, and
           | building the puzzles accounts for the majority of that time.
           | After keeping a consistent schedule for ten years(!), I
           | needed a change. The puzzles still start on December 1st so
           | that the day numbers make sense (Day 1 = Dec 1), and puzzles
           | come out every day (ending mid-December). "
        
             | tgv wrote:
             | Indeed. I had misunderstood that.
        
       | 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.
        
         | eshse wrote:
         | I live in Sweden nowadays (UTC+1) and it starts at 6am so last
         | year I woke up at 5:30, grabbed a coffee, and gave it a go.
         | 
         | Got nowhere near the leaderboard times so gave up after four
         | days!
        
           | thedavibob wrote:
           | Yes: I'd argue that the timings actually work/worked better
           | for Western Europe than the USA, I personally preferred doing
           | the puzzle at 5am (UK) than the midnight equivalent, as I
           | could finish before work (on a good day).
           | 
           | Nearly scratched a decent ranking once only, top 300 or so.
        
             | alexfoo wrote:
             | Either Russia (8am) or West Coast US (9pm) would be my
             | preferred options.
             | 
             | Sadly it's 5am for me as I'm in the UK.
             | 
             | In 8 years I can say I've never once tried to be awake at
             | 5am in order to do the puzzle. The one time I happened to
             | still be awake at 5am during AoC I was quite spectacularly
             | drunk so looking at AoC would have been utterly pointless.
             | 
             | Anything before 6.45am and I'm hopefully asleep. 7am isn't
             | great as 7am-8am I'm usually trying to get my kid up, fed
             | and out the door to go to school. Weekends are for not
             | waking up at 7am if I don't need to.
             | 
             | 9am or later and it messes with the working day too much.
             | 
             | Looking back at my submission times from 2017 onwards (I
             | only found AoC in 2017 so did 2015/2016 retrospectively)
             | I've only got two submissions under 02:xx:xx (e.g. 7am for
             | me). Both were around 6.42am so I guess I was up a bit
             | earlier that day (6.30am) and was waiting for my kid to
             | wake up and managed to get part 1 done quickly.
             | 
             | My usual plan was to get my kid out of the door sometime
             | between 7.30am and 8am and then work on AoC until I started
             | work around 9am. If I hadn't finished it then I'd get a bit
             | more time during my lunch hour and, if still not finished,
             | find some time in the evening after work and family time.
             | 
             | Out of the 400 submissions from 2017-2024 inclusive I've
             | only got 20 that are marked as ">24h" and many of these
             | were days where I was out for the entire day with my
             | wife/kid so I didn't get to even look at the problem until
             | the next day. Only 4 of them are where I submitted part 1
             | within 24h but part 2 slipped beyond 24h.
             | 
             | Enormous understatement: I were unencumbered by wife/kids
             | then my life would be quite a bit different.
        
       | 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"
        
             | stOneskull wrote:
             | i felt like that 2-3 months ago, at the east new zealand
             | chess games, when i forgot my anal beads.
        
         | 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?
        
         | hooverd wrote:
         | this is why we can't have nice things
        
         | ahoka wrote:
         | Wow, you have some nerves.
        
       | 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.
        
             | evandale wrote:
             | You can use a garbage email address, you don't have to
             | verify it
        
         | 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.
        
           | rtfeldman wrote:
           | If you're feeling adventurous and would like to try Roc's new
           | compiler, I put together a quick tutorial for it!
           | 
           | https://gist.github.com/rtfeldman/f46bcbfe5132d62c4095dfa687.
           | ..
        
         | queuebert wrote:
         | BQN or its ancestor APL are good for this.
        
       | 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
        
           | yeasku wrote:
           | Because they are not a hacker, but post on hackernews every
           | day.
        
           | d--b wrote:
           | Well, my point, if it wasn't clear, was that I simply don't
           | find those problems fun.
           | 
           | I enjoy programming a lot, but most of it comes from things
           | like designing APIs that work well and that people enjoy
           | using, or finding things that allow me to delete on ton of
           | legacy code.
           | 
           | I did try to do the advent of code many times. Usually I get
           | bored half way through reading the first problem. and then
           | when I finally get through I realize that these usually
           | involve tradeoffs that are annoying to make in terms of
           | memory/cpu usage and also several edge cases to deal with.
           | 
           | it really feels more like work than play.
        
       | 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.
        
         | alexfoo wrote:
         | Got to agree. I'm even surprised at just how little progress
         | many of my friends and ex-colleagues over the years make given
         | that they hold down reasonable developer jobs.
        
           | sethops1 wrote:
           | I think this has a lot more to do with time commitment. Once
           | the problems take more than ~1 hour I tend to stop because I
           | have stuff to do, like a job that already involves coding.
        
           | crystal_revenge wrote:
           | My experience has been "little progress" is related to the
           | fact that, while AoC is insanely fun, it always occurs during
           | a time of year when I have the _least_ free time.
           | 
           | Maybe when I was in college (if AoC had existed back then) I
           | could have kept pace, but if part of your life is also
           | running a household, then between wrapping up projects for
           | work, finalizing various commitments I want wrapped up for
           | the year, getting together with family and friends for
           | various celebrations, and finally travel and/or preparing
           | your own house for guests, I'm lucky if I have time to sit
           | down with a cocktail and book the week before Christmas.
           | 
           | Seeing the format changed to 12 days makes me think this
           | might be the first time in years I could seriously consider
           | doing it (to completion).
        
             | julianz wrote:
             | Yep, the years I've made it the furthest have been around
             | the 11-12 day mark. The inevitably life and kids and work
             | get in the way and that's it for another year. Changing to
             | a 12 day format is unlikely to affect me at all :)
        
           | ryandv wrote:
           | Why try any more? There are so many fucking frauds in this
           | field.
        
           | ksenzee wrote:
           | This type of problem has very little resemblance to the
           | problems I solve professionally - I'm usually one level of
           | abstraction up. If I run into something that requires
           | anything even as complicated as a DAG it's a good day.
        
           | onion2k wrote:
           | In order to complete AoC you need more than just the ability
           | to write code and solve problems. You need to find _abstract_
           | problem-solving motivating. A lot of people don 't see the
           | point in competing for social capital (internet points) or
           | expending time and energy on problems that won't live on
           | after they've completed them.
           | 
           | I have no evidence to say this, but I'd guess a lot more
           | people give up on AoC because they don't want to put in the
           | time needed than give up because they're not capable of
           | progressing.
        
             | foo42 wrote:
             | I find the problem I have is once I get going on a problem
             | I can't shake it out of my head. I end up lying in bed for
             | hours pleading with my brain to let it go if I've not found
             | the time to finish it during the crumbs of discretionary
             | time in the day!
        
             | lan321 wrote:
             | I've never tried AoC prior but with other complex
             | challenges I've tried without much research, there comes a
             | point where it just makes more sense to start doing
             | something on the backlog at home or a more specific
             | challenge related to what I want to improve on.
        
             | alexfoo wrote:
             | Yeah, time is almost certainly the thing that kills most
             | people's progress but that's not the root cause.
             | 
             | I think it comes down to experience, exposure to problems,
             | and the ability to recognise what the problem boils down
             | to.
             | 
             | A colleague who is an all round better coder than me might
             | spend 4 hours bashing away trying to solve a problem that I
             | might be able to look at and quickly recongise it is
             | isomorphic to a specific classic Comp Sci or Maths problem
             | and know exactly how best to attack it, saving me a huge
             | amount of time.
             | 
             | Spoiler alert: Take the "Slam Shuffle" in 2019 Day 22
             | (https://adventofcode.com/2019/day/22). I was lucky that I
             | quickly recognised that each of the actions could be
             | represented as '( a*n + b ) mod noscards' (with a and b
             | specific to the action) and therefore any two actions like
             | this can be combined into the same form. The optimal
             | solution follows relatively simply from this.
             | 
             | Doing all of the previous years means there's not much new
             | ground although Eric always manages to find something each
             | year.
             | 
             | There have also been some absolutely amazing inventions
             | along the way. The IntCode Breakout game (2019) and the
             | adventure game (can't remember the year) both stick in my
             | mind as amazing constructions.
        
             | dominicrose wrote:
             | It's hard for most people to focus on a single thing for a
             | long period of time. Motivation tends to come and go. I
             | started the 2024 solutions in 2025, without the pressure
             | and got to the end this way (not without help though TBH).
             | Secondary motivation can help, like being bored or wanting
             | to learn another programming language.
        
             | wccrawford wrote:
             | That's exactly why I don't do more than I do. I do some of
             | the easy ones and it's fun. Then it gets a little harder
             | and I start wondering how much time I want to put into
             | this.
             | 
             | And then something shiny and fun comes along during a
             | problem that I'm having trouble with, and I just never come
             | back.
        
           | TiredOfLife wrote:
           | Because like 80% of AoC problems require deep Computer
           | science background and deeply specific algorithms almost
           | nobody is using in their day to day work.
        
             | queuebert wrote:
             | But what about all those LeetCode interviews? /s
        
         | macintux wrote:
         | Someone else in the thread lamented the problems as "too easy"
         | and I wondered what world I was living in.
        
           | booleandilemma wrote:
           | It's just bluffing, lying. People lie to make others think
           | they're hot shit. It's like the guy in school who gets
           | straight A's and says he never studies. Yeah I'll bet.
        
             | ryandv wrote:
             | They... sort of are though? A year or two ago I just waited
             | until the very last problem, which was min-cut. Anybody
             | with a computer science education who has seen the prompt
             | _Proof._ before should be able to tackle this one with some
             | effort, guidance, and /or sufficient time. There are
             | algorithms that don't even require all the high-falutin
             | graph theory.
             | 
             | I don't mean to say my solution was good, nor was it
             | performant in any way - it was not, I arrived at adjacency
             | (linked) lists - but the problem is tractable to the well-
             | equipped with sufficient headdesking.
             | 
             | Operative phrase being "a computer science education," as
             | per GGP's point. Easy is relative. Let's not leave the bar
             | on the floor, please, while LLMs are threatening to hoover
             | up all the low hanging fruit.
        
               | byearthithatius wrote:
               | You say in your comment: "Anybody with a computer science
               | education ... should be able to tackle this one" which is
               | directly opposed to what they advertise: "You don't need
               | a computer science background to participate"
        
               | ryandv wrote:
               | Do you understand the comment thread you are replying to?
        
               | saberience wrote:
               | "Anybody with a computer science education who has seen
               | the prompt Proof. before should be able to tackle this
               | one with some effort, guidance, and/or sufficient time."
               | 
               | I have a computer science education and I have no idea
               | what you're talking about. The prompt "Proof." ?
               | 
               | Most people who study Comp Sci never use any of what they
               | learned ever again, and most will have forgotten most of
               | what they learned within one or two years. Most software
               | engineers never use any comp sci theory at all, but
               | especially not graph theory or shit like Dijkstras
               | algorithms, DFS, BFS etc.
        
               | ryandv wrote:
               | Holy fuck. I should just grow coconuts or something in
               | the remote Philippines.
               | 
               | > Most software engineers never use any comp sci theory
               | at all, but especially not graph theory or shit like
               | Dijkstras algorithms, DFS, BFS etc.
               | 
               | But we are talking about Advent of Code here, which is a
               | set of fairly contrived, theoretical, in vitro learning
               | problems that you don't really see in the real software
               | engineering world either.
               | 
               | > The prompt "Proof." ?
               | 
               | See this paper on the Stoer-Wagner min-cut algorithm from
               | graph theory, for the last problem in a previous year's
               | Advent of Code: https://www.cs.dartmouth.edu/~ac/Teach/CS
               | 105-Winter05/Handou...
               | 
               | > I have a computer science education and I have no idea
               | what you're talking about.
               | 
               | A post-secondary computer science education? I don't mean
               | bootcamp. I mean a course of study in mathematics.
        
               | saberience wrote:
               | I have a bachelor's degree in Computer Science, which I
               | assume is what you are referring to by "computer science
               | education".
               | 
               | My only assumption is that you're really out of touch
               | with the ordinary world of humanity if you think most
               | people are aware of stuff like this:
               | 
               | https://www.cs.dartmouth.edu/~ac/Teach/CS105-Winter05/Han
               | dou...
        
           | alexfoo wrote:
           | The group of people for which the problems are "too easy" is
           | probably quite small.
           | 
           | According to Eric last year (https://www.reddit.com/r/advento
           | fcode/comments/1hly9dw/2024_...) there were 559 people that
           | had obtained all 500 stars. I'm happy to be one of them.
           | 
           | The actual number is going to be higher as more people will
           | have finished the puzzles since then, and many people may
           | have finished all of the puzzles but split across more than
           | one account.
           | 
           | Then again, I'm sure there's a reasonable number of people
           | who have only completed certain puzzles because they found
           | someone else's code on the AoC subreddit and ran that against
           | their input, or got a huge hint from there without which
           | they'd never solve it on their own. (To be clear, I don't
           | mind the latter as it's just a trigger for someone to learn
           | something they didn't know before, but just running someone
           | else's code is not helping them if they don't dig into it
           | further and understand how/why it works.)
           | 
           | There's definitely a certain specific set of knowledge areas
           | that really helps solve AoC puzzles. It's a combination of
           | classic Comp Sci theory (A*/SAT solvers, Dijkstra's
           | algorithm, breadth/depth first searches, parsing, regex,
           | string processing, data structures, dynamic programming,
           | memoization, etc) and Mathematics (finite fields and modular
           | arithmetic, Chinese Remainder Theorem, geometry,
           | combinatorics, grids and coordinates, graph theory, etc).
           | 
           | Not many people have all those skills to the required level
           | to find the majority of AoC "easy". There's no obvious common
           | path to accruing this particular knowledge set. A traditional
           | Comp Sci background may not provide all of the Mathematics
           | required. A Mathematics background may leave you short on the
           | Comp Sci theory front.
           | 
           | My own experience is unusual. I've got two separate bachelors
           | degrees; one in Comp Sci and one in Mathematics with a 7 year
           | gap between them, those degrees and 25+ years of doing
           | software development as a job means I do find the vast
           | majority of AoC quite easy, but not all of it, there are
           | still some stinkers.
           | 
           | Being able to look at an AoC problem and think "There's some
           | algorithm behind this, what is it?" is hugely helpful.
           | 
           | The "Slam Shuffle" problem (2019 day 22) was a classic
           | example of this that sticks in my mind. The magnitude of the
           | numbers involved in part 2 of that problem made it clear that
           | a naive iteration approach was out of the question, so there
           | had to be a more direct path to the answer.
           | 
           | As I write the code for part 1 of any problem I tend to think
           | "What is the twist for part 2 going to be? How is Eric going
           | to make it orders of magnitude harder?" Sometimes I even
           | guess right, sometimes it's just plain evil.
        
             | ctxc wrote:
             | That's a pretty crazy background. I wish you'd put your
             | profile in your bio so I could follow you!
        
             | CobrastanJorji wrote:
             | Yeah, getting 250 or so stars is going to be
             | straightforward, something most programmers with a couple
             | of years of experience can probably manage. Then another
             | 200 or so require some more specialized know-how (maybe
             | some basic experience with parsers or making a simple
             | virtual machine or recognizing a topology sort situation).
             | Then probably the last 50 require something a bit more
             | unusual. For me, I definitely have some trouble with any of
             | the problems where modular inverses show up.
        
             | volkadav wrote:
             | Sorry to focus on just one aspect of your (excellent) post,
             | but do you have recommendations for reading up on A*/SAT
             | beyond wikipedia? I'm mostly self-taught (did about a
             | minor's worth of post-bacc comp sci after getting a
             | chemistry degree) and those just hasn't come up much, e.g.
             | I don't see A* mentioned at a first glance through CLRS and
             | only in passing in Skiena's algorithms book. Thank you!
        
               | alexfoo wrote:
               | Not sure. I covered them during my Comp Sci degree in the
               | mid/late 90s. I'm probably not even implementing them
               | properly but whatever I do implement tends to work.
               | 
               | Just checked my copy of TAOCP (Vol 3 - Sorting and
               | Searching) and it doesn't mention A* or SAT.
               | 
               | Ref: https://en.wikipedia.org/wiki/The_Art_of_Computer_Pr
               | ogrammin...
               | 
               | A quick google shows that the newer volumes (Volume 4
               | fascicles 6 and 7) seem to cover SAT. Links to downloads
               | are on the Wikipedia page above.
               | 
               | Maybe the planned 4C Chapter 7 "Combinatorial searching
               | (continued)" might cover A* searching. Ironically
               | googling "A* search" is tricky.
               | 
               | Hopefully someone else will chip in with a better
               | reference that is somewhere in the middle of Wikipedia's
               | brevity and TAOCP's depth.
        
           | mattbillenstein wrote:
           | Realize in anything, there are people who are much better
           | than even the very best. The people doing official collegiate
           | level competitive programming would find AoC problems pretty
           | easy.
        
             | Barrin92 wrote:
             | >The people doing official collegiate level competitive
             | programming would find AoC problems pretty easy.
             | 
             | I used to program competitively and while that's the case
             | for a lot of the early day problems, usually a few on the
             | later days are pretty tough even by those standards. Don't
             | take it from me, you can look at the finishing times over
             | the years. I just looked at some today because I was going
             | through the earlier years for fun and on Day 21/2023, 1
             | hour 20 minutes got you into the top 100. A lot of
             | competitive programmers have streamed the challenges over
             | the years and you see plenty of them struggle on occasion.
             | 
             | People just love to BS and brag, and it's quite harmful
             | honestly because it makes beginner programmers feel much
             | worse than they should.
        
         | rts_cts wrote:
         | I have a EE background not CS and haven't had too much trouble
         | the last few years. I'm not aiming to be on the global leader
         | board though. I think that with good problem solving skill, you
         | should be able to push through the first 10 days most years.
         | Some years were more front loaded though.
        
         | duxup wrote:
         | On sorta the same topic:
         | 
         | In the programming world I feel like there's a lot of info "for
         | beginners" and a lot of folks / activities for experts.
         | 
         | But that middle ground world is strange... a lot of it is a
         | combo of filling in "basics" and also touching more advanced
         | topics at the same time and the amount of content and just
         | activities filling that in seems very low. I get it though, the
         | middle ground skilled audience is a great mix of what they do
         | or do not know / can or can not solve.
         | 
         | I don't know if that made any sense.
        
           | josephg wrote:
           | This is also true of a lot of other disciplines. I've been
           | learning filmmaking lately (and editing, colour science,
           | etc). There's functionally infinite beginner friendly videos
           | online on anything you can imagine. But very little content
           | that slowly teaches the fundamentals, or presents
           | intermediate skills. It's all "Here's 5 pieces of gear you
           | need!" "One trick that will make your lighting better". But
           | that's mostly it. There's almost no intermediate stuff. No 3
           | hour videos explaining in detail how to set up an interview
           | properly. Stuff like that.
        
             | gh0stcat wrote:
             | I've found the best route at that point is just... copying
             | people who are really good. For my interest (3d modeling)
             | if you want voice-over and directions, those are all pretty
             | basic, but if you want to see how someone approaches a
             | large, complex object, I will literally watch a timelapse
             | of someone doing it and scrub the video in increments to
             | see each modifier/action they took. It's slow but that's
             | also how I built some intuition and muscle memory. That's
             | just the way...
        
           | greener_grass wrote:
           | CodeWars has a nice Kata grading system that features many
           | intermediate level problems.
        
           | ahoka wrote:
           | Yes, and it's hard to point to reference material to
           | newcomers. Hey, yeah that's actually a classic problem, let
           | me show you some book about this... oh there's none. Maybe I
           | should start creating them, but that is of course hard.
           | 
           | But also, the middle ground is often just years of practice.
        
           | Vinnl wrote:
           | Makes sense that that's the case: there's usually a limited
           | amount of beginner's knowledge, and then you get to the
           | medium level by arbitrary combinations of that beginner's
           | knowledge, of which there's an exponential number, making it
           | less likely that someone has produced something about that
           | specific combination. Then at the expert level, people can
           | get real deep into some obscure nitty-gritty detail, and
           | other experts will be able to generalise from that by
           | themselves.
        
           | fifilura wrote:
           | Middle level is where you pay with sweat.
        
           | joseda-hg wrote:
           | It's one of the worst parts of being self taught, beginner
           | level stuff has a large interest base because everyone can
           | get into it.
           | 
           | Advanced level stuff usually gets recommended directly by
           | experts or will be interesting to beginners too as a way of
           | seeing the high level.
           | 
           | Mid level stuff doesn't have that wide appeal, the freshness
           | in the mind of the experts, or the ease of getting into, so
           | it's not usually worth it for creators if the main metric is
           | reach/interest
           | 
           | Structured (taught) learning is better in this regard, it at
           | least gives you structure to cling on to at the mid level
        
         | llmthrow0827 wrote:
         | It's totally true. I was doing Advent of Code before I had any
         | training or work in programming at all, and a lot of it can be
         | done with just thinking through the problem logically and using
         | basic problem solving. If you can reason a word problem into
         | what it's asking, then break it down into steps, you're 90% of
         | the way there.
        
           | ab5tract wrote:
           | The statistics speak a far different story, I'm afraid.
        
             | 0xEF wrote:
             | Comparing previous years, they're exactly what I'd expect,
             | to be honest. Only people serious about completion
             | will...well...complete it. Even if they do not know any
             | code, if you pick something well-documented like Python or
             | whatever, it should not be a tremendous challenge so long
             | as you have the drive to finish the event. Code isn't
             | exactly magic, though it does require some problem-solving
             | and dedication. Since this is a self-paced event that does
             | not offer any sort of immediate reward for completion, most
             | people will drop out due to limited bandwidth needing to be
             | devoted to everything else in their lives. That versus,
             | say, a college course where you paid to be there and the
             | grade counts toward your degree; there's simply more at
             | stake when it comes to completing the course.
             | 
             | But, speaking to the original question as to the number of
             | newbies that go all the way, I'd say one cannot expect to
             | increase their skills in anything if one sticks in their
             | comfort zone. It _should_ be hard, and as a newbie who
             | participated in previous years, I can confirm it often is.
             | But I learned new things every time I did it, even if I did
             | not finish.
        
               | saberience wrote:
               | I have to say, I've read many out-of-touch comments on HN
               | over the years but this is definitely among the most out
               | there, borderline delusional comments I've ever seen!
               | 
               | The idea that anyone who doesn't know any code would:
               | 
               | 1) Complete in Advent of Code at all.
               | 
               | 2) Complete a single part of a single problem.
               | 
               | let alone, complete the whole thing without it being a
               | "tremendous challenge"...
               | 
               | is so completely laughable it makes me question whether
               | you live on the same planet as the rest of us here.
               | 
               | Getting a person who has never coded to write a basic
               | sort algorithm (i.e. bubble sort) is already basically
               | impossible. I work with highly talented non coder co-
               | workers who all attended tier-1 universities (e.g.
               | Oxford, Harvard, Stanford) but for finance/business
               | related degrees, I cannot get them to write while/foreach
               | loops in Python, and simply using Claude Code is way too
               | much for them.
               | 
               | If you are even fully completing one Advent of Code
               | problem, you are in the top 0.1% of coders, completing
               | all of them puts you in the top 0.001%.
        
               | 0xEF wrote:
               | I can't begin to describe how valuable your input has
               | been through this whole thread about something you're
               | quite possessive and passionate about, which surely
               | places you in a position to aggressively dismiss any
               | other possible way of looking at it! Wow, love learning
               | about new perspectives on HN!
               | 
               | Wishing you best of luck in AoC, Life and Love but I
               | imagine someone like you doesn't need it, being a
               | complete toolbox and all.
               | 
               | P.S.: Tell your coworkers I'm sorry they have to put up
               | with you.
        
               | saberience wrote:
               | I think you totally misunderstood my comment...
               | 
               | You're the person saying Advent of Code is "so easy" that
               | anyone even people with no coding ability at all should
               | find it do-able, which is totally diminishing the
               | difficulty of the problems, and asserting your own
               | genius, i.e. that you found it totally trivial.
               | 
               | I am the person saying that actually, stuff like Advent
               | of Code is incredibly difficult and 99% of active
               | programmers aren't able to complete it, let alone people
               | who don't code.
               | 
               | I am not an elitist at all, unlike yourself, I don't find
               | completing "Advent of Code" easy, in fact, it would take
               | me a long time to complete it, more time than I have
               | available in my busy life in the average December. And I
               | doubt I would be able to complete it 100% without looking
               | up help, getting hints, or using LLMs to help.
        
               | 0xEF wrote:
               | You clearly didn't read my whole original comment before
               | mouthing off. Go back and do that, you'll find that I
               | pointed out most do not complete it, that it _is supposed
               | to be challenging_ and I never called it  "easy" as you
               | imply ("not tremendously difficult" =/= "easy")
               | 
               | Heck, I even talked about having to be serious about
               | completion, and you could not bother to read the whole
               | comment, then proceed to call me delusional? FFS, I am
               | now _praying_ for your co-workers and I 'm not even
               | religious.
        
               | saberience wrote:
               | Did YOU even read your original comment? You asserted
               | that people who have never coded could complete the
               | event!
               | 
               | Did you realize only roughly 500 people of the > 1M who
               | are registered for advent of code even complete it?
               | 
               | You said "it should not be a tremendous challenge", i.e.
               | not that big of a deal even if you don't know how to
               | code. Which is absolutely diminishing the difficulty of
               | the event, I mean, come on man...
               | 
               | This is why I'm asserting you are quietly oblivious to
               | the abilities of most people. I am asserting that most
               | people who CAN code, cannot complete the event, yet alone
               | non-coders. I am a very active coder (for fun mostly
               | these days, but also sometimes for work), but I could not
               | complete Advent of Code. Maybe if I took all of December
               | off work to dedicate serious time, but even then I wonder
               | if it's possible without looking at hints/LLM-help etc.
               | 
               | I often try and help my co-workers who are working on AI
               | based side-projects for fun, so I have a strong insight
               | into the abilities of non-coding smart people, and the
               | reality is that yes, they get very turned off as soon as
               | you get anything more complex than for-loops and if-
               | statements. This isn't me being mean to co-workers, this
               | is the reality of things I have experienced. It's not a
               | brains thing, they can understand more complex stuff, but
               | they don't want to, they find it annoying, boring, not
               | worth the time/effort etc. So the idea of them learning
               | dynamic programming, DFS/BFS, more complex data
               | structures etc, is well, just not going to happen.
               | 
               | My point is that you are effectively saying, "oh just
               | about anyone can do Advent of Code if they want to", is
               | totally not grounded in any sort of reality.
        
               | 0xEF wrote:
               | The amount of injected implication you are imposing on
               | everything I said...this is some seriously unhinged
               | gaslighting in effort to obfuscate the fact that you came
               | out of the gate calling someone delusional over a comment
               | you barely understood. We're wasting each other's time,
               | so I'm out.
               | 
               | Try to have a better day.
        
             | dominicrose wrote:
             | There is a minority of people who can outsmart everyone
             | without a degree.
        
         | gardenhedge wrote:
         | Agreed. I have a CS background and years of experience but I
         | don't get very far with these. At some point it becomes a very
         | large time commitment as well which I don't have
        
         | magimas wrote:
         | mh, maybe it's cheating because it's still a STEM degree but I
         | have a PhD in physics without any real computer science courses
         | (obviously had computational physics courses etc. though) and I
         | managed to 100% solve quite a few years without too much
         | trouble. (though far away from the global leaderboard and with
         | the last few days always taking several hours to solve)
        
         | eloisant wrote:
         | The point is not that it's easy, but that you don't need much
         | knowledge beyond knowing how to code.
         | 
         | In this sense it's accessible: you won't get stuck because of a
         | word you don't understand or a concept you've never heard of.
        
           | deergomoo wrote:
           | > you won't get stuck because of a word you don't understand
           | or a concept you've never heard of
           | 
           | I very much disagree here. To make any sort of progress in
           | AoC, in my experience, you need at least:
           | 
           | - awareness of graphs and how to traverse them
           | 
           | - some knowledge of a pathfinding algorithm
           | 
           | - an understanding of memoisation and how it can be applied
           | to make deeply recursive computations feasible
           | 
           | Those types of puzzle come up _a lot_ , and it's not anything
           | close to what I'd expect someone with "just a little
           | programming knowledge" to have.
           | 
           | Someone with just a little programming knowledge is probably
           | good with branches and loops, some rudimentary OOP, and maybe
           | knows when to use a list vs a map. They're not gonna know
           | much about other data structures or algorithms.
           | 
           | They could learn them on the go of course, but then that's
           | why I don't think basic coding knowledge is enough.
        
         | Peritract wrote:
         | In general, the problems require less background knowledge than
         | other coding puzzles. They're not always accessible without
         | knowing a particular algorithm, but they're more 'can you think
         | through a problem' than 'have you done this module'.
         | 
         | That's not the same as saying they're easy, but it's a
         | different kind of barrier, and (in my opinion) more a test of
         | 'can you think?' than 'did you do a CS degree?'
        
         | saberience wrote:
         | Agreed. There is no "beginner" or amateur programmer who could
         | complete even part of a single Advent of Code problem.
        
           | alexfoo wrote:
           | I disagree, the odd few are quite simple and can be done with
           | pencil and paper.
           | 
           | https://adventofcode.com/2020/day/1 for example. It's not
           | hard to do part 1 by hand.
           | 
           | You need two numbers from the input list (of 200 numbers)
           | that add to 2020.
           | 
           | For each number n in the list you just have to check if
           | (2020-n) is in the list.
           | 
           | A quick visual scan showed my input only had 9 numbers that
           | were less than 1010, so I'd only have to consider 9 candidate
           | numbers.
           | 
           | It would also be trivial for anyone who can do relatively
           | simple things with a spreadsheet.
        
           | alach11 wrote:
           | Usually the first day or two are readily solvable in Excel
           | with just regular spreadsheet formulas.
        
       | bigell wrote:
       | I love advent of code, and I look forward to it every year!
       | 
       | I've never stressed out about the leaderboard. Ive always taken
       | it as an opportunity to learn a new language, or brush up on my
       | skills.
       | 
       | In my day-to-day job, I rarely need to bootstrap a project from
       | scratch, implement a depth first search of a graph, or experiment
       | with new language features.
       | 
       | It's for reasons like these that I look forward to this every
       | year. For me it's a great chance to sharpen the tools in my
       | toolbox.
        
         | alexfoo wrote:
         | Some part of me would love a job that was effectively solving
         | AoC type problems all the time, but then I'd probably burn out
         | pretty quickly if that's all I ever had to do.
         | 
         | Sometimes it's nice to have a break by writing a load of error
         | handling, system architecture documentation, test cases, etc.
         | 
         | > For me it's a great chance to sharpen the tools in my
         | toolbox.
         | 
         | That's a good way of putting it.
         | 
         | My way of taking it a step further and honing my AoC solutions
         | is to make them more efficient whilst ensuring they are still
         | easy to follow, and to make sure they work on as many different
         | inputs as possible (to ensure I'm not solving a specific
         | instance based on my personal input). I keep improving and
         | chipping away at the previous years problems in the 11 months
         | between Decembers.
        
       | sizzzzlerz wrote:
       | I had never heard of this before I saw something announcing this
       | years adventure. It looked interesting so I gave it a try, doing
       | 2024. I had a blast. In concept, its very similar to the Euler
       | Project but oriented more towards programming rather than being
       | heavily mathematical. Like Euler, the first part is typically
       | trivial while part 2 can put the hammer down and make you think
       | to devise an approach that can arrive at a solution in
       | milliseconds rather than the death of the universe.
        
       | sureglymop wrote:
       | I want to try doing it in assembly using fasm this year.
       | 
       | Could either be really recreational and relaxing.. or painful and
       | annoying.
       | 
       | Though I don't care even if it takes me all of next year, it's
       | all in order to learn :)
        
       | bob-surfs wrote:
       | Where my Gleamlins at? Who else is using Gleam this year?
        
         | tylerchurch wrote:
         | I am! I love the design of Gleam in theory but keep bouncing
         | off it so I'm interested in seeing if AoC will help me give it
         | a fair shake.
        
       | enby_instrument wrote:
       | I can't wait to try this year's challenges.
        
       | fud101 wrote:
       | I've never done this before but honestly I am just turned off by
       | the website and font being hard to read. I get that's the geek
       | aesthetic or whatever, but it's a huge turn off for me.
        
         | zootboy wrote:
         | There's a relevant FAQ with a solution for you:
         | 
         | https://adventofcode.com/2025/about#faq_highcontrast
        
       | perlperson wrote:
       | Historical note: the original coding advent calendar was the Perl
       | Advent Calendar, started in 2000 and still going.
       | 
       | https://perladvent.org/archives.html
       | 
       | Advent of Code is awesome also of course -- and was certainly
       | inspired by it.
        
       | vidyesh wrote:
       | Other Advent Calendars for developers
       | https://github.com/vimode/Advent-Calendars-For-Developers
       | 
       | I am still updating it for this year, so please feel free to
       | submit a PR or share some here.
        
       | aadv1k wrote:
       | Advent of code is such a fantastic event. I am honestly glad it's
       | 12 days this year, primarily because I would only ever get to day
       | 13 or 14 before it would take me an entire day to finish the
       | puzzles! This would be my fourth year doing AoC. Looking forward
       | to it :)
       | 
       | I plan on doing this year in C++ because I have never worked with
       | it and AoC is always a good excuse to learn a new language. My
       | college exams just got over, so I have a ton of free time.
       | 
       | Previous attempts:
       | 
       | - in Lua https://github.com/Aadv1k/AdventOfLua2021
       | 
       | - in C https://github.com/Aadv1k/AdventOfC2022
       | 
       | - in Go https://github.com/Aadv1k/AdventOfGo2023
       | 
       | really hope I can get all the stars this time...Cheers, and Merry
       | Cristmas!
        
       | mattbillenstein wrote:
       | I've done all the years and all the problems.
       | 
       | The part I enjoy the most is after figuring out a solution for
       | myself is seeing what others did on Reddit or among a small group
       | of friends who also does it. We often have slightly different
       | solutions or realize one of our solutions worked "by accident"
       | ignoring some side case that didn't appear in our particular
       | input. That's really the fun of it imho.
        
       | adastra22 wrote:
       | Hate to be that guy, but this is unreadably small text on mobile.
        
       | mnafees wrote:
       | I love Advent of Code! I have used previous years' problems for
       | my guest lectures to Computer Science students and they have all
       | enjoyed those more than a traditional algorithmic lecture.
        
       | itzjacki wrote:
       | Finally that time of year again! I've been looking forward to
       | this for a long time. I usually drop off about halfway anyways
       | (finished day 13, 14 and 13 the previous 3 years), as that's when
       | December gets too busy for me to enjoy it properly, so I
       | personally don't mind the reduction in problems at all, really.
       | I'm just happy we still have great puzzles to look forward to.
        
       | spooky_deep wrote:
       | Do the problems get harder each day?
        
         | The-Ludwig wrote:
         | Yes! With difficulty usually peaking on the weekends.
        
           | wodenokoto wrote:
           | Oh... I've never done these "in time" and wondered why the
           | next day problem felt so much easier.
           | 
           | I always put it down to overthinking and never arriving at a
           | solution but maybe it was actually a much tougher problem!
        
       | roman_soldier wrote:
       | Not a fan of these "Coding for fun" things. Code for a job to
       | earn money, yes, a side project where there is an end goal, yes.
       | This seems like a waste of time for working developer.
       | 
       | Maybe it's useful for people trying to learn but also becoming
       | pointless now as all Junior dev roles can be done with AI.
       | 
       | I mean do plumbers have an advent of plumbing where they try and
       | unblock shit filled toilets for fun?
        
         | stablesteady wrote:
         | It's literally just puzzles which have to be solved through
         | code. Solving puzzles is a very normal thing to do for many
         | people
        
           | roman_soldier wrote:
           | Never got that, I have plenty of "puzzles" to solve in work
           | and life which have real outcomes. I guess Im too utilitarian
           | to enjoy puzzles with ROI.
        
         | kace91 wrote:
         | >I mean do plumbers have an advent of plumbing where they try
         | and unblock shit filled toilets for fun?
         | 
         | No, but you'll see it for writers, musicians, and the like.
         | 
         | Engineering (software or not) can be an intellectually
         | rewarding experience for many. I don't know why some people
         | find this something to scoff at, would you rather have no
         | pleasure derived from your work?
        
           | roman_soldier wrote:
           | No I get that, it's just not for me that's all.
        
           | davey48016 wrote:
           | I can't find it, but this question got asked somewhere
           | (Reddit maybe) about 8-10 years ago, and a plumber took the
           | time to respond that many plumbers are actually very
           | passionate about what they do. They don't specifically unclog
           | toilets for fun, but there are plumbers that spend a lot of
           | their free time on plumbing forums, and even some who have
           | projects experimenting with different ways to install certain
           | things.
        
         | gus_massa wrote:
         | I just found in Google (don't worry, SFW)
         | 
         | https://www.plumbingnationals.com/
         | 
         | https://www.youtube.com/watch?v=BWrvnNMsmeM
        
         | dgb23 wrote:
         | > I mean do plumbers have an advent of plumbing where they try
         | and unblock shit filled toilets for fun?
         | 
         | Yes, plumbers and other types of craftspeople and technicians
         | do also have these little fun competitions. Why shouldn't they?
         | 
         | I think the reason some of us programmers do these things, is
         | likely because many (myself included) entered the field as
         | enthusiasts and hobbyists in the first place.
        
         | talideon wrote:
         | > mean do plumbers have an advent of plumbing where they try
         | and unblock shit filled toilets for fun?
         | 
         | You've obviously never watched "Drain Cleaning Australia" on
         | YouTube!
         | 
         | Yes, some people find this stuff fun, because they find coding
         | fun, and don't typically get to do the fun kind of coding on
         | company time. Also, there'd be a hell of a lot less open source
         | software in the world if people didn't code for fun.
         | 
         | Let people enjoy things. Just because you don't like that par
         | of your job as much as them doesn't mean they're wrong.
        
       | ngrislain wrote:
       | A good opportunity to learn a new programming language:
       | https://news.ycombinator.com/item?id=46105849
        
       | fnands wrote:
       | Doing it in Mojo this year.
       | 
       | Much easier so far than it was in 2023 when just basic string
       | wrangling was basically nonexistent.
        
       | baud147258 wrote:
       | well, I tried to do the first day and I think it's an indictment
       | of my own capabilities that I spent most of my day on the second
       | part and still failed to get the correct result. That sort of
       | programming is not something I've been doing at my current
       | position, but still as programmer that has been working for a
       | decade, that smarts a little.
        
       | mclau153 wrote:
       | "That's not the right answer; your answer is too low. Curiously,
       | it's the right answer for someone else; you might be logged in to
       | the wrong account or just unlucky. In any case, you need to be
       | using your puzzle input. If you're stuck, make sure you're using
       | the full input data; there are also some general tips on the
       | about page, or you can ask for hints on the subreddit. Please
       | wait one minute before trying again. [Return to Day 1]"
        
       ___________________________________________________________________
       (page generated 2025-12-01 23:01 UTC)