5 ms·
I'm have seen people being really excited for AoC. What's so special about it?
by mesaframe 7y ago
I'm have seen people being really excited for AoC. What's so special about it?
- JeremysIron 7y agoYou're presented with a pretty unique, bite-size programming challenge every day. Everything is themed around Christmas so there's a short story about how you have to help Santa's elves fix their machinery or something like that. Different people get slightly different problems, so you have to do your own work to solve for your puzzle input. You feed it back into the site to see if it was correct or not. Getting a problem right was a great feeling, and it progressively unlocks more of a Christmas-themed ASCII art picture. I would have a tough time explaining it to someone who doesn't do any programming, but it's free to try if you're curious!
- jodrellblank 7y agoIt’s a neatly polished programming challenge site which is both communal and competitive, there’s a bonus score (I think) for completing on the same day a challenge is released, there’s a leaderboard race for the first 100 answers each day (typically all gone within 1-2 minutes after midnight) and there’s a subreddit where people share their solutions in all kinds of languages, and it’s nothing to do with competing for a FAANG job interview. But apart from that it is “just” coding challenges with a story wrapped around them, and if you don’t like those, you won’t care for it.
- jodrellblank 7y agoI should have linked the Reddit: https://old.reddit.com/r/adventofcode/ https://old.reddit.com/r/adventofcode/ and see on the sidebar on the right in desktop view, the "Solution Megathreads" e.g. from Day 5 last year there is https://www.reddit.com/r/adventofcode/comments/a3912m/2018_day_5_solutions/ https://www.reddit.com/r/adventofcode/comments/a3912m/2018_d... with tons of solutions including more oddball ones like VimScript, less popular like Common Lisp and APL, and lots of people use it as an excuse to learn/use a new language, so plenty of Python, Kotlin, Rust, C#, GoLang, D, and so on. As the days go on, the challenge difficulty increases quite a lot (not linearly) so the threads often turn to discussions about performance, mini-competitions between people, tips on complexity, different approaches and debugging, etc.
- gerikson 7y agoThe subreddit is pretty great. Tons of good discussion, feedback in the (very rare) cases when something's pear-shaped about the day's puzzle, and a helpful vibe.
- fyp 7y agoI wouldn't say "1-2 minutes" but definitely within 1-2 hours even for the harder problems. This guy finished in the top 10 last year and streamed(not live) his solutions so you can see how fast you need to be to be competitive: https://www.youtube.com/watch?v=Hgv6d6rrQxo&list=PLZhotmgEsCQM_p8bqiGtvBJayKOxcmSWi https://www.youtube.com/watch?v=Hgv6d6rrQxo&list=PLZhotmgEsC...
- natalyarostova 7y agoIt's fun.
- Fellshard 7y agoIn my opinion, the thing that makes these puzzles different from bog-standard code challenge sites is simple, but profound: 'the twist'. Each day's puzzle is not one, but two-fold. You first solve the problem you're given, and then the second half is unlocked. /This second half usually incorporates some sort of twist./ That means that you may have to rethink your program, generalize it, find some missing optimization or think your way around the problem as it's given, etc. In some ways, it feels like what you have to do to a real program: You write what you think is a perfect solution, then discover you need to model the problem more deeply, or refactor it all, or scrap it and start over. It's a flavor of 'puzzle realism' that makes each day a bite-size nugget of a challenge that's genuinely fun to work out.
- deleted 7y ago[deleted]
- yCloser 7y agoproblems are quite interesting (after initial days, those are usually trivial) e.g. once in 2017 you had problem1: implement an interpreter for this asm-like language. ok, 5 instructions, super easy. ...problem2, run this asm-like program. You couldn't, it was 10^n iterations, would take days. You had to read, understand and optimize the asm-like code. last year I was amazed writing a function to check if two rectangles intersect (you can do it in like 2 lines) so, TLDR, you get a lot of "hey that's cool! I never thought about it"
- thethrowboat 7y agoI'm beginner programmer and even the early puzzles seem very hard, but after some thought you get correct answers and then you can check from youtube how real programmers do it.