Title: Coding Kata Date: 2011-12-06 21:18 Author: EmadMokhtar Category: Developer Tags: coding, professional, programmer, programming
Recently I'm reading Uncle Bob's Clean Coder book and I read about how a professional programmer must always practice, like professional musicians, professional football player, and professional martial arts player. I'm learning how to play electric guitar, you need to start slowly "slow will gain speed" start with something easy and way to go to professional level, and believe me if you stop practicing you lose your speed, but this doesn't mean professional guitarist stop learning new things and stop practicing. When I see a guitarist do something great I ask myself how, how he did it? the answer is simple he practice.
Getting a job as programmer will not make you a professional one, doing your work in regular basis won't make you a professional programmer like walking everyday won't make you a professional athletic, you must challenge yourself, learning something new, or try to solve problem with your favorite programming language. Try do practice away from working time, and practice, practice, practice, practice, and practice.
In CleanCoder's Chapter 6 talking about practicing and there's a part talking about coding kata, so What is Coding Kata?
- Kata is a Japanese word describing detailed choreographed patterns of movements practised either solo or in pairs. The term form is used for the corresponding concept in non-Japanese martial arts in general.
Coding Kata is solving a small programming problem over and over again because when you face it or someone like it you don't need that much effort to think how to solve it, for example professional guitarist won't think how to do Pull-Offs of Hummer-down when he's playing a solo, he just thinking about melodies and its harmony, thus professional programmer will consume most of his/her brain power on how to make this code clean but on how to solve this simple problem. like in martial arts they are doing a series of choreographed practice movements so that when he want to do it he'll get a fast response from his body.
I'm new in this, I like the idea, I'll keep practicing, and I'll keep my moves toward profession.
Here's a video of Uncle Bob preforming coding kata with his audience
<iframe src="http://player.vimeo.com/video/2499161?title=0&byline=0&portrait=0" frameborder="0" width="400" height="225"></iframe>Software Craftsmanship - Coding Dojo - Kata from Doug Bradbury on Vimeo.
Some links talking about Coding Kata:
- The unltimate coding kata http://www.codinghorror.com/blog/2008/06/the-ultimate-code-kata.html
- What is all nonsense about katas? http://blog.objectmentor.com/articles/2009/11/21/whats-all-this-nonsense-about-katas
- The programming dojo http://butunclebob.com/ArticleS.UncleBob.TheProgrammingDojo
- Code Kata http://dotnet.dzone.com/news/code-kata
Some resource of Coding Kata:
- Coding kata for .NET http://codingkata.net/
- http://www.codekata.com/
- http://www.codingdojo.org/
- Bowling Game Kata http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata