プログラマが知るべき97のこと/1万時間の訓練


「集中的訓練 (Deliberate practice:DP)」という言葉があります。集中的訓練は、ただ課題をこなすだけのものではありません。「課題のための課題」、課題を終わらせるためだけに課題をやっているのだとしたら、それはまったく集中的訓練とは呼べないでしょう。

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

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

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

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

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

専門家のパフォーマンスを研究している人たちの間では、もって生まれた才能はあるレベルを超えると大きな意味を持たなくなると意見の一致をみている。プロスポーツ選手になろうと思った場合、確かに最低限の才能は必要だ。だがその後、勝ち抜いていくのは、最も厳しい練習に耐えた人たちだ。

Mary Poppendieck

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

集中的訓練は、専門技術を身につける上で、欠かせないものだ。ただ反復訓練をすればいいというのではなく、自分の現在の能力を少し越える課題に取り組むことが重要である。それで自分の限界を引き上げるのだ。困難な課題に挑戦し、その結果をよく分析し、なにか失敗すれば修正する、その繰り返しである。

Peter Norvig

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

入念に計画された訓練では得意なことに取り組むのではない。自分を鍛え、少なくともまだ得意ではないことに取り組むのである。楽しいとは限らない。

Mary Popendieck

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