Advent of Code 2024
Advent of Code is an annual event with daily programming puzzles for all skill levels, promoting community engagement, user privacy through OAuth, and guidelines on AI use and content redistribution.
Read original articleAdvent of Code is an annual event featuring a series of programming puzzles designed for various skill levels, which can be solved using any programming language. Created by Eric Wastl, the event serves as a platform for interview preparation, training, and friendly competition. Participants do not need a computer science background; basic programming knowledge and problem-solving skills are sufficient. The puzzles are designed to run efficiently on older hardware, ensuring accessibility for all users. The event encourages sharing and community engagement, with resources available for those who may need assistance. Authentication is handled through OAuth, ensuring user privacy. The puzzles unlock daily at midnight EST, and while participants can compete on a global leaderboard, they are encouraged to focus on personal learning and enjoyment. The event has specific guidelines regarding the use of AI in solving puzzles and prohibits the redistribution of its content. Advent of Code is trademarked and its content is protected under copyright law, although users are free to discuss and reference the puzzles in various contexts.
- Advent of Code features daily programming puzzles for various skill levels.
- Participants can use any programming language and do not need a computer science background.
- The event promotes community engagement and offers resources for assistance.
- Authentication is managed through OAuth to protect user privacy.
- The event has guidelines regarding AI use and prohibits content redistribution.
Related
Solving puzzles faster than humanly possible
The Opus Magnum challenge tasks players with automating puzzle-solving to optimize Cost, Cycles, and Area metrics. Participants submit solutions for evaluation, exploring automated vs. human strategies, hybrid approaches, scoring systems, mods, and bots.
ICFP Contest 2024
The ICFP Programming Contest 2024 is an open online competition sponsored by ACM SIGPLAN. It allows participants to form teams of any size, using any programming language or platform. The event runs from June 28 to July 1, 2024.
Show HN: Local Devin – powered by Sonnet 3.5
CodeCompanion.AI is a free, open-source AI coding assistant with semantic code search, project-specific instructions, and privacy features. It supports various technologies, automates tasks, and aims to boost developer productivity.
Show HN: What happens if you make a crossword out of Reddit r/gaming
The "Joystick Jargon" project merges traditional crosswords with gaming vocabulary using a Reddit dataset, machine learning for keyword extraction, and invites community feedback on its innovative approach.
Show HN: Android Dev Quest – A puzzle game solvable only using developer tools
Android Dev Quest is an interactive puzzle game for Android developers, featuring unique challenges that promote creative problem-solving and skill development as players progress through increasingly difficult levels.
- Many participants enjoy using AoC as a way to learn new programming languages or improve their skills, often experimenting with languages like Rust, Go, and F#.
- Some users express frustration with the time commitment required, especially during the busy month of December, leading to mixed feelings about participation.
- There is a notable interest in using AI tools and LLMs to assist with solving puzzles, raising questions about the impact of AI on traditional coding challenges.
- Participants appreciate the community aspect of AoC, sharing tips, resources, and personal challenges, while also acknowledging the fun and festive spirit of the event.
- Several comments highlight the challenges of the puzzles, with some users feeling overwhelmed or anxious about their performance compared to others.
This time I'm trying to do them in Rust and Golang in an effort to either learn to like/tolerate Golang (because we use it at work) or prove my hypothesis that it sucks and never use it unless I have to.
I tried doing it in Assembly two years ago, ended up spending hours and hours writing an Assembly standard library, then gave up and switched to Rust...
It's not half bad at this kind of twiddling for being a statically typed mainstream language.
https://github.com/codr7/aoc24/tree/main/swift/Sources/aoc
This year is a tiny bit weird, I was just getting ramped up organizing the event at a new job; because I think it's very useful for devs to learn some real problem solving, as opposed to stitching frameworks.
And then I had to leave because my new boss turned out to be someone I couldn't imagine working with.
Guess it'll be just me and Emacs as usual.
As of last week there were something around 1024 people who had all 450 stars.
Only started on like day 6 of 2022, but became hooked and had some time early in 2023 to go through the previous years. Once you have a few algorithms canned, it's not too difficult and some themes repeat across years.
It's fun to brush up on stuff you don't touch all the time - actual algorithms and stuff.
Hats off to the volunteers and Eric - I aim to donate every year now - it's a great event.
I encourage anyone who gets value from this to donate to support it if they can. It is a passion project but nonetheless comes with real costs.
For the pythonists around here, give F# a try: it can feels very close to scripting and it has a wonderful REPL too :)
I like to do them in a functional style in Kotlin as far as possible, as that's different from what I do at work.
Edit: Here's mine from today, with my utils it's not exactly plain kotlin, but part of the fun is building a library of sorts with cool functions https://github.com/Matsemann/algorithm-problems/blob/main/ad...
Wishing everyone a fun challenge. This year I will be practicing F# and hope some of you will give it a try too :) https://github.com/neon-sunset/AOC24/blob/master/day1.fsx
https://github.com/NoelJacob/advent-and-other-calandars Compiled by myself.
Ada took me somewhere between 90-120 minutes, whereas I had the first problem done in JavaScript in about 30s-60s, just for verification.
If there is a community for those who use other rules to compare actual solutions instead of answers I would be interested to hear about it.
I am coming from low level C++ gamedev side so I understand that most people here use different tools to solve different problems.
But no, last year I lost all momentum on my side projects and my gf thought she'd lost me to the elves.
Completing it on time was rewarding but I can't go back.
But I can hear those elven bells a jingling...
This year I'm declaring "Advent of Claude"!
Challenge: Write a Claude custom style to solve Advent of Code puzzles within Claude's UI.
Score: # adventofcode.com stars earned in 2 daily conversation turns.
Fine print: web app artifacts are allowed, including paste of your custom input into the artifact UI; one click only.
Per https://adventofcode.com/2024/about, wait until the daily http://adventofcode.com leaderboard is full before submitting LLM-generated solutions!
Of course, feel free to use ChatGPT custom instructions, static prompts, etc.
Day 1: two stars, https://claude.site/artifacts/d16e6bdb-f697-45fe-930c-7f58b2...
Normally I'd break out Python for this, but given the constraints maybe I should try to see how far I can get through this in Excel. It'd be a fun little challenge :)
Probably some problems will be impossible with limited RAM (2KiB, plus an optional 8KiB on the cartridge, maybe more if a fancy cartridge is used). But I'll try to solve as many as possible.
Today's was possible, in under 4 seconds, using 4KiB extra RAM on the cartridge.
https://gavinhoward.com/2024/11/advent-of-code-2024-getting-...
And here I am doing it in Ruby instead of Java this year thinking I was giving myself a challenge.
The use of “pretty far” gives them a bit of an out, but I think this statement is a little disingenuous. Last year, at least, a bunch of the problems needed fairly sophisticated algorithms to find the solution in a reasonable amount of time.
To me, a little programming knowledge is what somebody who is six weeks into their introduction to programming class has. They know variables, loops, lists, and maybe associative arrays.
Doing it in a Lisp I’ve been writing in Ruby will have me giving up even sooner, but it will be fun!
Just write that once, put it in a template /day0 folder that has /day0/part1, /day0/part2, and /day0/input.txt, and then just copy it and focus on the actual problem. It's all about having fun!
The past few years I've decided to stick to the same principle I've used in all of my side projects recently. Either I do something in a new language, or I get it done correctly before I get bored. I've found I can't have both.
Repo: https://github.com/ArcHound/advent_of_code Writeup: https://blog.miloslavhomer.cz/p/advent-of-code-cli-client-an...
Good luck to y'all in 2024 and enjoy!
https://blog.adacore.com/announcing-advent-of-ada-2024-codin...
Everything is here: https://advent-of-code.xavd.id/
I'm unlikely to finish it all in December (the puzzles get hard and I get busy) but I _do_ love the event.
https://raku-advent.blog/2024/12/01/day-8-rendering-down-for...
Which is weird because that is not a thought that entered my mind when I did it for the first time. It was pure fun!
This year, I shook my head at my framework and rewrote it, but at least that only took me a day (so far). Day one was easy, which also helps. IIRC, last year’s first few days were non-trivial.
https://www.kylheku.com/cgit/advent/tree/2021
Give it a try. The structure and recurring themes in these solutions could be used as a source of ideas for how to get started.
I already solved the first problem and it was hard to get things ready, read the file, handle the data, etc. But once I had the first steps done it was easy to solve the problem
For this one, I learned how to write a basic parser with Text.Parsec and manipulate the tuples with bimap !
It's a very fun occasion to learn a new programming language.
My goal is to develop the muscle memory for the tool so I can write code quickly. I’m still generally thinking through the puzzles, but being able to just write out plain English logic, get code generated, ask for it to be well documented, quickly refactor things to be generally reusable, etc, is just fantastic and how all software development should be done in this day and age frankly. Such an accelerator to problem solving.
I want to use it as a test to see how human programming can be improved by an AI, so I wrote the solution for day 1, got the right answer, and then gave my code to ChatGPT 4o to ask it to make the code faster.
My version ran in ~3500 ms ChatGPT's version ran in 140 ms
both worked
A great example of how a common DevOps language program can be improved on by ChatGPT.
I've found especially as the month progresses it's just as much Advent of Reading Comprehension as it is coding :)
Perhaps if you aimed at global leaderboards it would be different, but that's neither my league nor I see any fun in that - getting there requires serious effort and preparation in things that aren't directly related to solving intelectual puzzles.
Pretty good tbh
BTW I love AoC for all else
Come to think of it, a pipeline that feeds the problem text into an LLM to generate a solution and automatically runs it on the input and attempts to submit the solution, doing this N times in parallel, could certainly solve the first few days' problem in 9 seconds.
Related
Solving puzzles faster than humanly possible
The Opus Magnum challenge tasks players with automating puzzle-solving to optimize Cost, Cycles, and Area metrics. Participants submit solutions for evaluation, exploring automated vs. human strategies, hybrid approaches, scoring systems, mods, and bots.
ICFP Contest 2024
The ICFP Programming Contest 2024 is an open online competition sponsored by ACM SIGPLAN. It allows participants to form teams of any size, using any programming language or platform. The event runs from June 28 to July 1, 2024.
Show HN: Local Devin – powered by Sonnet 3.5
CodeCompanion.AI is a free, open-source AI coding assistant with semantic code search, project-specific instructions, and privacy features. It supports various technologies, automates tasks, and aims to boost developer productivity.
Show HN: What happens if you make a crossword out of Reddit r/gaming
The "Joystick Jargon" project merges traditional crosswords with gaming vocabulary using a Reddit dataset, machine learning for keyword extraction, and invites community feedback on its innovative approach.
Show HN: Android Dev Quest – A puzzle game solvable only using developer tools
Android Dev Quest is an interactive puzzle game for Android developers, featuring unique challenges that promote creative problem-solving and skill development as players progress through increasingly difficult levels.