<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Open eyes Working brain &#187; dojo</title>
	<atom:link href="http://federico.galassi.net/tag/dojo/feed/" rel="self" type="application/rss+xml" />
	<link>http://federico.galassi.net</link>
	<description>dedicated, in respect and admiration, to the spirit that lives in the computer</description>
	<lastBuildDate>Wed, 25 May 2011 18:08:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Code Katas: Programmer&#8217;s Deep Practice</title>
		<link>http://federico.galassi.net/2009/09/02/code-katas-programmers-deep-practice/</link>
		<comments>http://federico.galassi.net/2009/09/02/code-katas-programmers-deep-practice/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 17:27:46 +0000</pubDate>
		<dc:creator>federico</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[deep]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[kaizen]]></category>
		<category><![CDATA[kata]]></category>
		<category><![CDATA[master]]></category>
		<category><![CDATA[practice]]></category>
		<category><![CDATA[talent]]></category>

		<guid isPermaLink="false">http://federico.galassi.net/?p=148</guid>
		<description><![CDATA[I&#8217;ve recently blogged about talent and how it&#8217;s grown through disciplined, committed, error focused practice at the edge of your ability, known as deep practice. I guess now it makes sense to approach it from the perspective of programming: What&#8217;s programmer&#8217;s deep practice? Unsurprisingly, inspiration can be found in the great japanese culture, people who [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-149" style="margin: 2px;" title="karate_champ" src="http://federico.galassi.net/wp-content/uploads/2009/09/karate_champ.png" alt="karate_champ" width="180" height="206" />I&#8217;ve recently <a href="http://federico.galassi.net/2009/08/28/teach-yourself-anything-in-10000-hours/">blogged about talent and how it&#8217;s grown</a> through disciplined, committed, error focused practice at the edge of your ability, known as deep practice. I guess now it makes sense to approach it from the perspective of programming: What&#8217;s programmer&#8217;s deep practice? Unsurprisingly, inspiration can be found in the great japanese culture, people who highly value <a href="http://en.wikipedia.org/wiki/Bushid%C5%8D">discipline</a> and <a href="http://en.wikipedia.org/wiki/Kaizen">self improvement</a>. Specifically i&#8217;m talking of martial arts. If you were to learn, say, karate you would go to a <a href="http://en.wikipedia.org/wiki/Dojo">dojo</a> and perform <a href="http://en.wikipedia.org/wiki/Kata">katas</a>. If you happen to be a programmer, you can go to a coding dojo and practice code katas.</p>
<p><a href="http://en.wikipedia.org/wiki/Kata_%28programming%29">Code katas</a>, a term first coined by Pragmatic Programmer <a href="http://en.wikipedia.org/wiki/Dave_Thomas_%28programmer%29">Dave Thomas</a>, are small programming exercises geared to hone a specific programming skill. Traditionally, they tend to be <a href="http://en.wikipedia.org/wiki/Algorithm">algorithmic</a> like parsing or visiting graphs but could as well aim to improve understanding of particular <a href="http://en.wikipedia.org/wiki/Programming_paradigm">programming paradigms</a>, like functional or object oriented, or a specific language. Also, <a href="http://matteo.vaccari.name/blog/archives/177">as remarkably pointed out by Matteo</a>, katas can be crafted to master a certain technology like web or database. While, as you may guess, Coding Dojos are sites, groups or communities which propose and maintain collections of katas hopefully with solutions and reviews.</p>
<p>So, how do you practice? I suggest you solve a kata, review your work, compare it to other solutions, share your code with others and discuss it. Then solve it again trying to take a different path, balance pros and cons, then solve it again and again, until you <em>feel you internalized the essence of the problem</em>. Finally, you can move to another kata. If it feels like a lot of work, then you got it right. No question mastership requires time and effort but, then again, masters are those destined for greatness.</p>
<p><strong>Resources</strong></p>
<ul>
<li><a href="http://www.katacasts.com/">Katacasts</a></li>
<li><a href="http://codekata.pragprog.com/2007/01/code_kata_backg.html">21 Code Katas by Dave Thomas</a></li>
<li><a href="http://www.rubyquiz.com/">Lots of Code Quizzes with Ruby Solutions</a></li>
<li><a href="http://matteo.vaccari.name/blog/archives/177">Matteo Vaccari&#8217;s Technological Katas</a></li>
<li><a href="http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue">Coding Dojo Code Katas</a></li>
<li><a href="http://charlesmaxwood.com/8-lessons-from-corey-haines-performance-kata/">Corey Haines Video Solution in Ruby of String Template</a></li>
<li><a href="http://butunclebob.com/ArticleS.UncleBob">Uncle Bob</a> Code Katas (search &#8220;kata&#8221;, ie bowling kata)</li>
<li><a href="http://rubyconf2008.confreaks.com/ruby-kata-and-sparring.html">Micah Martin on Code Katas and Video Solution in Ruby of Langton&#8217;s Ant</a></li>
<li><a href="http://sparring.rubyforge.org/battleship/">Micah Martin&#8217;s BattleShip Tournament</a></li>
<li><a href="http://code.google.com/codejam/">Google Code Jam</a></li>
<li><a href="http://www.codinghorror.com/blog/archives/001138.html">Jeff Atwood on Code Katas</a></li>
<li><a href="http://steve.yegge.googlepages.com/practicing-programming">Steve Yegge on Code Katas<br />
</a></li>
<li><a href="http://norvig.com/21-days.html">Peter Norvig on Deep Practice</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://federico.galassi.net/2009/09/02/code-katas-programmers-deep-practice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

