Last year, Eric Wastl created a website called Advent of Code. It’s an Advent calendar made up of programming puzzles.
Each day, the next puzzle is revealed and users are encouraged to solve the puzzle any way they choose. The subreddit /r/AdventOfCode contains solutions in many different languages. My preferred language is C#.
Although I didn’t manage to solve all of the puzzles last year, I still enjoyed the event. Happily, the Advent of Code has returned for 2016!
At the time of writing, the 2016 Advent of Code is on Day 3, and will continue until Christmas Day. So far, I have managed to complete Days 1 and 2.
I encourage everybody to take part. Even if you don’t know how to program, you could still write a plan to solve the puzzle in English, and then break it down into smaller pieces and see how it would fit together. Although it would be difficult to solve the unique puzzle input generated for each user this way, examples are provided for each puzzle.