Comment by PaulRobinson

Comment by PaulRobinson 3 days ago

25 replies

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 3 days ago

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.

  • eichin 3 days ago

    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.

    • Ntrails 2 days ago

      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....)

    • undeveloper 3 days ago

      any recommendations on how to do this?

      • tags2k a day ago

        One way I've found is to break the problem down, and think about each step in reverse. So for example, what does the final stage want to do in order to achieve the result in a simple way? It might be that to get the final result it needs to sum numbers, but also needs to know their matching index in another array, plus some other identifier you got from an as-yet-unwritten previous step. This means your final stage needs a bunch of records that are (number, idx, sourceId), which means the step before needs to construct them - what information does it need to transform into that?

        Write the simple code you want to write, and think about what makes the prior step possible in the easiest way and build your structures from there, filling in the gaps.

  • tclancy 3 days ago

    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 3 days ago

      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 3 days ago

      This is an area where LLMs can really help out: getting started with an unfamiliar language/IDE/ framework.

  • volemo 2 days ago

    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 2 days ago

      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.

      • f1shy a day ago

        Yes, but nothing (theoretically) stops him from saying: "congratulations, you have solved part 1, wait until tomorrow for part 2".

        I think either the author thinks people appreciate more the 2 stages challenge, than having one problem each day; or, more likely, the whole "infrastructure" is already prepared for 2 stages challenges per day. And changing that meant more work, eventually touching literally 10 y.o. code. The reason for the reduced days is exactly the lack of time. I assume he preferred to have 12 days, and modify as little as possible the old code. Having 1 stage per day maybe would have been possible at the expense of having less challenges, which again defeats the purpose.

forty 3 days ago

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 2 days ago

    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.

    • petercooper a day ago

      Agreed! It’d be nice to surface that somehow. The subreddit is good but not everyone is there. I found a lot of interesting people and code in the folks who managed to finish challenges in like 4 minutes or whatever..

ryandv 3 days ago

> 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.

jakeydus 3 days ago

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 3 days ago

And this is how I know I am not a developer/programmer. I have no urge or interest in such event.

  • onion2k 2 days ago

    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 2 days ago

      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.

  • skywhopper 3 days ago

    Why post, then? No one cares about your lack of interest.

    • crystal_revenge 3 days ago

      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.

    • [removed] 2 days ago
      [deleted]
    • [removed] 2 days ago
      [deleted]
  • coolThingsFirst 2 days ago

    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.

  • unkulunkulu 3 days ago

    I wonder how this is the most straightforward way to know that?