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.
Huge thanks to those involved!
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.
https://perladvent.org/archives.html
Advent of Code is awesome also of course -- and was certainly inspired by it.
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).
> 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.
Having only started using python in the last few months (and always alongside agents to help me learn the new language) I am enjoying this opportunity/invitation to challenge myself to write the code from scratch, because it is helping me reinforce my understanding of the fundamentals of a language that is new to me.
On the one hand I do love how (in general nowadays) I can tell an agent to “implement a grammar parser for this example input stream” yet on the other hand, it’s too easy to just use the code without bothering to understand how it works. Likewise, it is so pleasantly easy these days to paste an error message into a chat window instead of figuring out for myself what it means / how to fix it. I love being able to get help (from agents) with that kind of stuff, but I also love being able to do it on my own.
Thank you to the folks who organize this event, for giving me that extra motivation to tie a ribbon around my understanding of various topics enough to be able to write python without help from agents or reference guides.
I’d also like to add that having never participated when the global leaderboard existed, I cannot compare this to that, other than to say that I appreciate how this way encourages me to come up with “personal challenges” like not using an IDE with autocomplete, or not looking up any info from reference sources, or not including any libraries beyond the core language functionality.
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!
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?
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.
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.
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.
I am still updating it for this year, so please feel free to submit a PR or share some here.
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.
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 :)
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.
Much easier so far than it was in 2023 when just basic string wrangling was basically nonexistent.
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.
It's kotlin and shik for me this year, probably a bit of both. And no stupid competitions, AoC should be fun.
And yet I expect the whole leaderboard to be full of AI submissions...
Edit: No leaderboard this year, nice!
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.
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?