One thing that has been promoted by software craftsmanship leaders for decades is the important of practicing your craft. The 10,000 hour rule put forth by Anders Ericsson and popularized by Malcolm Gladwell talks about having consistent, deliberate practice to become a master in a field. This isn’t just writing “Hello world” thousands of times. It’s deliberate practice specifically designed to help you learn new skills and refine the skills you have.
In his book “The Pragmatic Programmer” Dave Thomas borrowed the term “kata” from martial arts. A kata is an exercise that a martial artist uses to practice and master a skill. Thomas applied the idea to software development by coming up with various software puzzles that can be solved by using various development disciplines. For instance, you could practice doing TDD by writing a bowling score card.
If you want to grow your software development skills, one of the fundamental disciplines you need to develop is to consistently practice using coding katas. There are a number of sites to help you practice your development skills, and I plan to build a list of some of the better ones. But today I want to share one to help you get in the Christmas spirit: Advent of Code (http://adventofcode.com)
Every year at Christmas time, you can find “Advent calendars” that have a bunch of chocolate candies – one each for 25 days leading up to Christmas. It makes it fun for the kids to count down the days until Santa comes. (I’ve even seen one for adults that has a new can of beer for every day!)
Now there is a fun way to make sure you practice your coding. Every day a new programming challenge is provided for you to solve. You solve it however you like, and provide the answer. If it’s correct, you can progress to the next challenge. This is a fun way to develop the habit of stretching yourself a little bit every day.
Give it a try and see if you haven’t developed a new skill, or replaced a bad coding habit with a good one by Christmas. Now THAT would be an awesome Christmas present!

