Many of my senior level colleagues can't do them either. This says more about job title inflation than the difficulty of these puzzles, though.
I did it in Python (well, most of it) because this isn't the stuff I usually do. I use Python for moving data around mainly, with maybe once per year I do something more exciting. So for me it's about exercising my favourite language in ways I wouldn't otherwise be doing.
I did actually give up this year, though. When it came to the 3D coordinates puzzle I realised I would have to learn numpy and a bit of linear algebra and I just didn't have the time. Maybe I will pick up where I left off over the holiday period.
I decided to go outside my comfort zone and do it in a language that I don't work in. (I work primarily in Ruby, did it this year in Elixir.)
I had a blast honestly! I was a great way to learn a language and get some daily practice in.
Those AOC tasks are training for skills most developers don't really need or train much (except maybe reading comprehension). Most code is quite boring, especially web dev stuff. Most of the interesting stuff is handled by external packages, you are just supposed to pipe it all together. It is still quite complicated work sometimes but in a very different way. It is only few developer that get to work on truly interesting stuff on their day job.
So the great thing is that AOC has something for everyone. A junior can take his programming skills to the next level, flexing some muscle he doesn't otherwise get to use. Advanced people can use it to either get to know a new language or take on code golfing and learn to abuse their favorite language in a new way.