A few days ago I stumbled upon Advent of Code on Hacker News. A new puzzle is released every day until christmas, the more puzzles you solve the prettier the ASCII christmas tree on the front page becomes.

I’m currently reading The Go Programming Language in my spare time, Advent of Code seems like a great opportunity to get some hands on experience with Go.

As I’m writing this on the 3rd of December there’s currently only 3 puzzles released, however they seem to ramp up so I’m sure it’ll get real interesting later on :)

An interesting point about the project is that everybody gets different input for the assignment, therefore the answers cannot be carbon copied between users. The algorithm solutions can however be shared.

I’ve grown accustomed to dynamic languages and being able to do a lot in very few lines, Go feels more like C but without the hassle of memory management and without having to implement standard data structures myself.

My code is currently on Github, the travis build currently only tests that the code compiles and runs, no asserts or checks.

Future exploration into Go in terms of this project is:

  • Unit testing the algorithms according to the various examples in the puzzles.
  • Running the unit tests using travis.
  • How to do code coverage ?
  • Go routines and channels for optimizing and simplifying the various solutions.