Skip to content

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

TL;DR:


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:

  • Codewars is built around katas, and have stuff for JavaScript, CoffeeScript, and Ruby. They even have a challenge before you can sign-up! Go prove your worth!
  • Project Euler has problems generic enough that you can tackle it with any language. Warning! These problems are hard!
  • You Can’t JavaScript Under Pressure is 5 problems while the clock is ticking. I hit something like 40 minutes on the first try (the last problem threw me for quite the loop), but brought it down to 6 minutes on the 2nd try. Also, check out the other usvsth3m games, it’s like discovering Sporcle all over again.
  • Rebuild a simple game or a basic to-do app. (Of note: ToDoMVC is the same ToDo App written in a handful of different frameworks)
  • Make up your own!

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.