プログラマが知るべき97のこと/1万時間の訓練
「集中的訓練 (Deliberate practice：DP)」という言葉があります。集中的訓練は、ただ課題をこなすだけのものではありません。「課題のための課題」、課題を終わらせるためだけに課題をやっているのだとしたら、それはまったく集中的訓練とは呼べないでしょう。

集中的訓練の目的は、あくまで自らの能力を高めることにあります。いわゆる「スキル」や「テクニック」を身につけることが目的なのです。集中的訓練において重要なのが「反復」です。身につけたい能力をいくつかの小さな要素に分割し、その一つ一つについて反復訓練をし、習熟度を高めていきます。つまり「反復の反復」が必要になる、ということです。ゆっくりと、能力全体の習熟度を望ましいレベルにまで引き上げていきます。集中的訓練の目的は習熟度を上げることであり、個々の課題、作業をこなし、完了することではないのです。

代金をもらって開発をする場合、その主たる目的は、製品を完成させることにあります。集中的訓練の場合はそうではなく、自分の能力を高めることを主たる目的とします。両者は本質的に違うものです。まず自分に問うてみてください。普段、仕事での開発作業に費やしている時間はどのくらいですか?それに対し、自分の能力を高めるのに費やしている時間はどのくらいですか?

はたして「エキスパート」と呼ばれるだけの能力を身につけるには、一体、どのくらいの量の訓練が必要なのでしょうか。それについては次のようなことが言われています。

 Peter Norvigは、何かでエキスパートになるには約1万時間の訓練が必要と述べている。いわばこの1万時間というのが「マジックナンバー」ということになる。
 Mary Poppendieckも、著書「リーンソフトウェア開発と組織改革」の中で「どんな専門的職業であれ、入念に計画された、集中的な訓練を最低10,000時間積み重ねることとで専門家になると言う」と書いている。

専門的な技術や知識は、ゆっくりと徐々に身につくものです。1万時間が経過した途端、急に身につく、というわけではありません。それでも、ともかく1万時間やる、ということが大切なのです。ただ1万時間と言ってもそれは膨大な時間です。週に20時間なら10年かかることになります。「1万時間努力したはいいけれど、結果、自分にはエキスパートになる素質がないとわかるだけかもしれない」そう心配する人はいるでしょう。そんな心配はいりません。エキスパートには必ずなれます。何かに秀でた人間になるかどうかは、ほぼ、自分がなろうとするかどうかだけで決まるのです。すべてはあなたの意志次第なのです。過去20年間におよぶ前提でも、ある知識や技術が身につくかどうかは、大部分が、訓練に費やされた時間の長さで決まる、という結果が得られています。天賦の才はさほど重要ではないのです。Mary Poppendieckは次のように述べています。

訓練をする時、自分にとって楽にこなせることを課題にしてもあまり意味がありません。楽にできないことを課題にして、はじめて意味があるのです。Peter Norvigはそれについて次のように言っています。

また、Mary Poppendieckも次のように言っています。

集中的訓練とは「学び」です。新しいことを学んで自分を変え、学ぶことで自分の行動を変えるのです。日々努力を続けなくてはなりません。さあ、始めましょう。