Using Advent of Code as an Opportunity
Monday December 12th
Advent of Code 2016
It's December. We've got snow, the air is chilly and I've got my chocolate Advent calendar (Note : I both hate snow and love chocolate, which makes December a month with a love-hate relationship). For those who do not have chocolate calendars, I'll quickly explain how they work. Every day until Christmas, you open a small numbered door with today's date. Behind said door, there's a small chocolate for you to eat, which makes for a nice treat every day.
I won't sit here writing about chocolate all day though. This post is all about using an online event called Advent of Code. I want you to imagine the same kind of chocolate advent calendar. But once you open a door, you find a programming challenge. That's all Advent of Code's about. A different, Christmas themed, programming challenge every day, up until Christmas.
An opportunity for everyone
What does solving these challenges give you? Nothing tangible at first. But if you use it right, it's a nice opportunity to level up your programming skills.
New to programming? Pick the programming language you're currently learning and fast-forward your learning curve. These challenges will definitely be more difficult for someone new on the scene, but will provide way more in terms of new knowledge. Some challenges might be too hard to solve for someone at this level. If it's the case, visit the Advent of Code subreddit. It's full of sweet solutions in plenty of languages. Understanding a few of them will help in solving the problem by yourself afterwards.
Want to learn a new language? A new framework? This is the perfect opportunity to step out of your confort zone. Solving these problems in a new language will be hard for multiple reasons. Not only won't you know the syntax or all functions provided by libraries to help you, but you might even think about how to solve it your standard programming language. Doing so might set you off idiomatic ways to do it in the new language.
Note : I'm currently trying this out with Clojure. Definitely more challenging than I expected.
Hardened veteran? Think these are no challenges? Here's a new challenge : Make the leaderboards. Every day, the fastest 100 solutions get stars. And by fastest, I mean that a lot of programmers solve the earlier day's problems in less than 10 minutes post-release. See how fast you can come up with a solution by pitting yourself against other veterans.
Interested? You can find Advent of Code at http://adventofcode.com. If you want to see my Clojure solutions, my code can be found on my GitHub. Previous problems are still available even if you're late. You can even access last year's problems if you desire more.