Building a solver for Star Battle puzzles as a way to learn Go.
I'm writing about the process; you can follow along if you like:
Part 1 - Setting up the development environment
Part 2 - Representing and parsing puzzles
Part 3 - Solving puzzles
Part 4 - Making our solver faster
Part 5 - Solving puzzles in parallel with multiple processors