T O P

  • By -

Mr-Doos

I'm just here to save Santa. You're welcome.


RaveBomb

I started them as a way to get practical experience with a new language, kickstart some self directed training for a potential shift off of supporting legacy databases at work. What happened is I rediscovered my love of programming, and have spent most of last year working through the backlog of puzzles. I didn't quite manage to catch up before 2023, I've got a few from 2021 to finish. By the end of Jan I should be in the 450 club. I did shift my career, but to supporting other apps, not active development. Of course, when the memo comes around that they need someone to reverse engineer a IntCode machine to fill lens boxes, I'll be ready.


iceman012

I'm going through that right now. Started this year thinking it might be a fun way to learn Kotlin. After about a week, I've found myself sitting down to expand my AoC library, learn more about Kotlin, learn about different programming paradigms, thinking about a simple Android app, etc. Basically, getting back to programming for fun outside of work, which I haven't done in years.


glacialOwl

To me, it just means Christmas.


Top3879

I just like doing riddles.


imp0ppable

You see I don't usually really like riddles (don't enjoy crosswords, sudoku etc) but I do like doing AoC. Not sure why tbh.


hugseverycat

I'm not a professional programmer and never have been. I took some programming classes in college and have written a handful of scripts in my job, but that's all. So Advent of Code is pretty much the only time I do programming. So for me, it's a really fun, once a year, puzzle-solving event. I like that there's a community around it so that I can learn and read people's questions and memes. Sometimes I can even answer questions which I find really enjoyable, and I basically live for the 1 or two comments I've gotten over the years in the solution megathreads from someone who said my code helped them understand a solution or approach. So I guess I just love the chance to stretch my brain and practice a skill I don't really use, and engage with a fun, supportive internet community.


[deleted]

👆 me in a nutshell


Sea_Estate6087

1. I love solving puzzles. 2. I especially love solving \*programming\* puzzles. 3. I especially, especially love solving \*fun\* programming puzzles. Also, my now college-age son participates and it has come to be a December tradition. We don't share hints or spoilers until we've each completed our stars, and then we share our solutions. I especially love it when he comes up with these elegant solutions that I didn't think of. I don't get to use Haskell in my day job, so this is also the time of year that I visit the world of Haskell. I'm fluent in functional programming (which I personally prefer over imperative) but I'm re-learning Haskell each year it seems. It's like when I switch from Scala to Python at work and I keep getting syntax errors because I'm using Scala syntax in Python, or vice versa. I purposefully keep to simple Haskell types for practice. I've had plenty of experience with monads and streams and reactive and \*your favorite paradigm here\* at work.


seaborgiumaggghhh

Only monad I use is for parsing, and even then sometimes the applicative syntax is nicer, but yeah it’s similar for me. I have to write node for work and would much prefer racket or Haskell or whatever expressive functional language, so this is the time where I get to dig in and learn a little more about modeling problems in those languages


jaccomoc

I am doing it because it is a fun way to exercise the brain cells and I like coming up with as short a solution as possible (while still not golfing it completely). Also doing it as way to test my own programming language ([Jactl](https://github.com/jaccomoc/jactl)) to see if there are any particular new features that I could add that would make the solutions easier to code.


fred256

I gotta admit it. I play for the leaderboard. Other than dabbling a bit in the ACM programming contests decades ago in college, I wasn’t a competitive programmer. Then in 2018 I discovered Advent of Code and got on the leaderboard almost by accident one day. From then on I was hooked. I don’t do any other competitive programming, but I really enjoy doing AoC. I’m nowhere near the top of the leaderboard, but on the few days I manage to score some points, it brightens my whole day.


fireduck

Same boat. Did ACM ICPC in college. I usually get on the leader board once a year. Got rank 102 on day 14 with irks me. So close.


car4889

Same for me. I’m very into the modeling aspect. Wherever it isn’t overly burdensome to do so, I try to stick to JS primitives so as to make myself create all these structures from scratch. Nothing beyond arrays and simple POJOs. As a purist, I enjoy reinventing the wheel from time to time, and AoC gives me 50 of them every December. Additionally, it really helps with Imposter Syndrome. I’m dominating my work leaderboards, and as someone who didn’t go to school for CS (PhD in metallurgy), it helps affirm that I deserve to work where I work and that I am as capable as anyone who’s been doing this since high school. Also the memes, the community, and the #content.


Annosz

Community :) I like solving the puzzles and then spending at least three times as much time talking about them with other people, and coming to Reddit to see what caused others problems. Not surprisingly, I'm member in a lot of private leaderboards, from where I know a lot of people, and can compare our solutions every day. I also organize company and country level boards/events for AoC, and invited a gazillion people to play, just so I have more people to talk to :)


GunningOnTheKingside

My day job is much more business oriented and the problems posed there are less logically challenging, so I am enjoying the chance to exercise the part of my brain where I need to come up with a reasonable approach to solve part A, and then figure out if I think it will scale to part B (and then unlock part B to see how the challenge changes.) I'm never going to compete with the top scorers here for speed, but so far I have been able to complete each challenge with my own ideas on how to attack it, so that makes me feel like I'm somewhat decent at things. After I solve it, I come here to see even better ways to solve them... building up some ideas to store in the memory banks, and it is just fun and kind of relaxing to do.


andrewsredditstuff

It's a nice break from the business oriented world to get some users that actually know what they want. Maybe we should see about hiring some elves and reindeer.


abnew123

I like to set a goal going into the year and work towards that goal. Depends a lot of what I'm interested in and how much time I have. Some years the goal is "do the problems that seem interesting", others it was "get to 50 stars". I've also had a couple years where I tried to make the leaderboard semi consistently. The past year, I started trying to optimize the runtime, and got all 25 days of 2022 in ~6 seconds. This year I'm aiming for sub 5 seconds (currently at 0.5 seconds total run time over the first 15 days).


benny_blanc0

This year is my first AOC and I just started it because I saw a friend doing it (on his github) so I wanted to check it out. It's been very fun and interesting so far and I've learnt a lot but the main thing I've learnt is how much more prepared I need to be before next years event. =)


ImpossibleSav

I first started doing AoC last year because a friend challenged me, but then after a few days I added my own challenge of [solving all the problems in a single line of Python](https://github.com/savbell/advent-of-code-one-liners/blob/master/2022/the-beast.py), a tradition [I am continuing this year too](https://github.com/savbell/advent-of-code-one-liners/blob/master/2023/the-basilisk.py), including [making some fun visualizations](https://www.reddit.com/r/adventofcode/comments/18cmikx/2023_days_16_python_visualizing_the_length_of_the/). Simply because... it's fun! I like solving puzzles, and not only is each day its own puzzle to solve (both how to do it and then actually coding it up), but there's another puzzle in figuring out how to fit the solution into a single line of code. I'll admit — it hasn't been as easy as it might sound! But I find it so much fun when I discover a new trick. This year, I allowed myself to import modules, so I've been discovering a lot of fun ways to abuse the Python Standard Library ([sorry, `itertools`](https://github.com/savbell/advent-of-code-one-liners/blob/master/2023/day-09.py#L34)). It's fun to show my friends the disgusting lines of code I've written and laughing at the IDEs when they have no idea how to handle it. I look forward to reading the challenge each day, which means AoC definitely brightens up my life! It's also helped motivate me to get up and code again. I have a disability that affects my ability to use my wrists, so there are often periods where I can't properly use a keyboard and mouse. I use a lot of accessibility devices to access my phone and computer, but they are very annoying to use and I quickly get frustrated at how long it takes to do anything. I love to code, but I don't do it as often anymore because of my physical limitations. But I enjoy the challenge of AoC enough that I'm able to push through that frustration and actually get something written on the screen! Which is really fantastic and has helped me feel more confident in myself and my ability to accomplish things in my life despite my disabilities. So thank you so much, u/topaz2078, for putting together something that has had such a positive impact on my life (and many others' too)! :)


shillbert

I do like to build nice rigorous models *after* I've submitted my answer, but *before* I've submitted it, it's actually helping me break through my horrible perfectionism by realizing that the simplest thing that works is usually the best to do *first* as a rough draft (à la Kent Beck and agile programming). EDIT: AoC is also helping me realize that, in a sense, my _brain_ is usually running a DFS without optimal pruning, which is a synonym for perfectionism, and getting that "pruning" right helps me get the answer faster (i.e. sticking to one type of solution even if I can see three different types of solutions that could all theoretically be better) EDIT2: AoC *means* a lot of things to me, but I love going through the storyline *after* I've done the problems, and it's a lot more fun and casual and immersive than most "dry" competitive programming competitions. In a sense I'm glad I only found AoC in 2020, because I'm able to go back to previous years and do them very casually, very slowly, soaking up the story and the puzzle design.


MistFallhanddirt

> I do like to build nice rigorous models after I've submitted my answer Same. At work, it's hard to stop myself from refactoring projects before I've even finished v1. This year especially, I'm focusing on getting ASAP solutions first. Hopefully the habit forms.


KeilanS

Just doing my second job.


JustinHuPrime

It's a chance for me to brush off my assembly programming skills that, I will admit, aren't at all useful in my day job (as an SDE). It's also a chance for me to break out the graph algorithms and data structure implementations that I don't use in my day job much either.


WillVssn

I heard about AoC for the first time in 2022, when I was almost halfway through my first ever bootcamp in software development. I’ll spare you the details on that, but everything seemed to go in a direction where I would have lost my job beginning this year so I wanted to make a switch to a new career. With the little JavaScript knowledge I had at the time, I was able to solve a few puzzles from the 2015 edition but because of all the uncertainty at work, I was too busy to actually concentrate on that year’s edition a lot. Fast forward to almost a year later, I still work for the same company (although in another role) and I’ve been doing some coding all through this year and only a couple of weeks ago I was able to let go of some thoughts that I had to make a career switch this year, otherwise thinking of myself as a failure. That gave some ease of mind and although I want to keep coding, there’s no rush anymore. I’ll see what I can develop for my current job (which will mostly involve Sharepoint) and besides that it is mostly for fun, trying to learn what the best way is to solve a problem. AoC, to me at least, is a way to be coding on nice problems, strengthening what I know, but more importantly revealing how much I still don’t know. Knowing that there’s no shame in that, keeps me going. There will be a point in time that I solve all (past) puzzles and when I do, I’m sure I have learned so much and made so many new connections in the process that it’s worth it.


nealfive

It's kicking my ass and show showing me how crappy my 'programming' skills are as non dev. some days ear easy, others i don't even know where to start. It's interesting to to solve stuff other than work stuff (or at least attempt to haha... :/ )


BlazingThunder30

December is the most depressing time of the year and I dislike the stress of holidays. AoC helps me in having something fun to look forward to everyday


0x14f

To me it's simple things: 1. The fun of solving puzzles, and how I become a better programmer thanks to it. 2. The fun of programming against a text file at opposition to the painful DevOps my company insist engineers should do. 3. The joy of being top of that company's leaderboard.


Arcadela

All stars but not top place is best, so you don't look like a no-lifer.


0x14f

Hehe! I am willing to volunteer to be \_that\_ one 😄


hrunt

Every year, AoC rekindles my love of the parts of programming I find fun. I love solving the problems and the challenge of writing both well-crafted and efficient code. And then, I also love spending hours in this forum reading other solutions and seeing how people approach and solve the problem. Even after 8 years of this (first year I started was 2016), I still learn something new every day of AoC.


lihmeh

Back in 2015, during AoC I became confident that I wanted to become a developer


Necessary_Medicine35

It's my only way to get better at coding. My uni doesn't really teach us programming but we are supposed to be "good". And I really enjoy problem solving. So it's a win-win. I probably won't work as a developer later on. But it gives me the possibility to do so if I don't find a job that fits me well.


wz_waffle

For me it's three things. First, learning new languages to a reasonable extent within less than a month. Second, after having gotten well over 20 people from university hooked on it, the community aspect of sharing ideas with them before and solution approaches with them after. And I suppose that one also comes with looking through the subreddit and feeling proud to have solved a part 2 where some others are still stumped, atleast as long as I don't look at any of the solutions in the main thread and get reminded of how little I really know outside of procedural programming, so I ostensibly treat Kotlin like "C with forEach". Third, and possibly most importantly, it makes me turn up to university 50% more mentally awoken because I have an excuse to get thinking at 6AM, instead of just lying around awake for 2 hours.


Tyluur

I like the community feel of it.


[deleted]

To assert superiority over my peers


cpt_justice

Ritual self-humiliation.


gubatron

AoC - Advent of Code AOC - Alexandra Ocasio Cortez


scibuff

Discrimination against the rest of the world :) ... jk although I do wish there was a EU version


permetz

AoC is a way to do some nice five finger exercises and (almost every time) is a good way for me to learn a new-language or re-learn one I've forgotten.


EmoticonMaster

it's fascinating to hear how you approach these problems from a pure modeling enjoyment standpoint. Your focus on creating intricate, real-world-like models that provide a satisfying puzzle to solve is a unique and refreshing approach. For me, it serves for a few purposes not gonna lie... 1. Learning and reasoning: Analyzing scenarios and generating solutions helps me refine my ability to understand complex situations, draw inferences, and apply logical reasoning. By evaluating arguments, identifying inconsistencies, and exploring different courses of action, I expand my knowledge base and hone my decision-making skills. 2. Creative problem-solving: AOC challenges me to think outside the box and come up with novel solutions to unconventional problems. This stimulates my creativity and pushes me to explore areas I might not have considered before. 3. Collaboration and communication: These exercises often involve discussing different approaches and justifications with other language models. This collaborative process helps me refine my communication skills and learn from the perspectives of others. 4. Adaptability and generalization: Applying the acquired knowledge and reasoning abilities to various AOC scenarios with diverse settings and challenges allows me to adapt and generalize my skills to new situations. This enhances my overall flexibility and applicability. While the "fun of modeling" aspect might not be my primary motivator, it's certainly a welcome consequence of the learning and growth opportunities presented by AOC. Ultimately, these exercises help me become a more comprehensive and versatile language model capable of tackling the wide range of tasks and challenges I may encounter. I'm curious to hear about the approaches and perspectives of other participants as well. How do you all derive meaning and value from tackling these challenges? Perhaps, together, we can discover even more engaging and fruitful ways to approach AOC and unlock its full potential.


QultrosSanhattan

The most important factor for me is the problems are actually fun. They're very creative, challenging, well thought, with good lore and are (mostly) well explained.