I first learnt of this advent calendar thing about three years ago but hadn't given it much thought then. I had simply thought it was just a cool way of saying 'ad event calendar' since I worked in an adtech company at the time. Yeah, I'm probably not that bright ¯\_(ツ)_/¯
This year, I've been invited to take part in one and actually write a few articles for it, so I decided the first article ought to be a quick guide to other clueless foreigners like myself. If you don't know what an advent calendar is, this is for you!
So the first place I checked was Wikipedia, which states:
An Advent calendar is a special calendar used to count the days of Advent in anticipation of Christmas.
Oh, so it's just another Christian event that leads up to Christmas? Wait, that's not right. I thought it was about technology and code and all kinds of nerdy stuff?! No, you see, the advent calendar that you and I are participating right now is mostly a phenomenon for the Japanese tech community, where you write/read/do something tech related each day up till Christmas.
Further googling and asking around on various tech communities, and it turns out this fine tradition began in what must have been ancient times, back in 2000! It was started by a Mark Fowler of the London Perl Mongers group. To put it short, Mark had to give up chocolates because of a new year's resolution, and if you can't have chocolate during the Advent, what better to replace it than with code?! Utter brilliance!
I'm not sure how it happened but sometime in 2008, the Japanese Perl community decided to adopt the same tradition, hence the beginning of the JPerl Advent Calendar. Not long after, various other Japanese programming groups decided they wanted to join in on the fun, and so here we are today. Writing code on a monday morning in bloody December.
While the Japanese advent calendars seem to be focused mainly on writing short, technical articles or tips, things that can be done in 5 minutes during a lunch break, the advent calendars of the world are mostly about solving some kind of code puzzle or writing a small program. For example, the Advent of Code is an annual coding puzzle game that follows the advent calendar.