here's the life I live every year:
- I forget advent of code exists after not touching it in 11 months
- a few days in, someone reminds me it exists
- I'm already "behind" and think to myself that I will catch up later and surely this year I will experience the advent calendar day by day
- I put this off until the 25th and realize I don't feel like doing it all at once
but this year it's different! no longer will I put it off without a clear deadline! heck, I don't even need a deadline because there's already a perfect time to get started (truly a rare thing for any activity - you'll never guess how many times I say "I'll just do an hour of youtube/discord/twitch/whatever" and then don't get to play Tetris during my day's free time)
every night at midnight EST, a new puzzle appears, and I (along with thousands of other people around the world) go clickity clack at the keyboard for 100 spots on the leaderboard. (well, a pair of leaderboards per day.) there's also a global board where you get 100 points for 1st down to 1 point for 100th, so in theory after 18 days you could accumulate 3600 points.
I'm doing modestly at 35th, which is surprising given that I have 0 experience programming for speed (I "only" have over a decade's worth of regular ol' experience and enjoy puzzle-y things to the point where I ended up on math team of my own volition in middle/high school)
I'm writing the worst code I've ever had the displeasure of reading back to myself, and it's fantastic! absolutely exhilarating! I love puzzles and problem solving and getting motivation for free and that feeling of reaching part 2 only to find out that I need to get my algorithm to go a million times faster.
I played around with the idea of doing this in Rust - maybe I'll do it with 2021's problems or something. I've been meaning to learn it for a few years; it has all the fun of functional programming with the performance I turned to C for, and it seems to have an ecosystem like Python's (someone else has already implemented things like linear algebra for you in an efficient way, so why make your own and spend time / risk bugs / take a performance loss if you're not careful)