Kata help you? Also, nodeschool.io and MMO Set.


Ever heard of a kata? My first exposure was the TDD word-wrap function (and unicorns) to start this (amazing) talk from Uncle Bob (Demanding Professionalism). Another arcticle came up in my Pocket queue: Using Katas to Improve. Kata is a japanese term; my understanding is that a kata is repeatedly practicing the same techique in order to improve form.

In terms of code, then? Chong Kim (the above author) likes building tic-tac-toe in ruby. He built the game from scratch repeatedly, trying to get his time under an hour. He recorded himself and reviewed each one, analyzed the moments he got stuck and issues with his workflow. Over time he was able to round off the edges of his ruby workflow.

All of that, I love. I could see being very useful for becoming a master of your craft.

But then Chong took it further. He’d been interested in Haskell for a while, and decided to take his kata in a new language direction. From scratch, he dove into his tic-tac-toe from the Haskell perspective, learning the language, where he got stuck, where he needed a deeper understanding of the code. What a brave man.

Kata are an awesome way to stay goal-oriented and push yourself to be a better programmer. I recommend:

nodeschool.io has some awesome terminal-based NodeJS courses, all free and vim-able. I’ve been working with a few Node apps at work for 10 or so months, but these courses really kicked my ass. I highly recommend it to anyone who is just starting with or thinks they understand node. It’s great for understanding what node can do on a detail-level (as opposed to higher-level system architecture).

One last thing: last week in Vegas with Moveline, Mr. Gibbons and Ms. Edison hooked us all on Set, a pattern recognition game that I apparently suck at. On the flight back, I started an AngularJS version of the game, and am hoping to take up to MMO Set status via nodejs and socket.io (similar to this flippin’ awesome tutorial).

Feel free to fork/pull-request it as you will, it could use some love.