Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

凡人が不器用なりにスキルを身につけるスキルを身につける

f:id:tbpg:20150403000936j:plain

概要

Wiki の発明者 である Ward Cunningham 氏の Wiki, c2.com の 「Read Great Programs」を読んで
スキルを身につけること全般に関して考えてみました。

Read Great Programs | c2.com

目的

自身の学習効率向上のためスキル習得に関する情報をまとめたかった。
主目的は自分のためのまとめです。

想定読者

この記事の内容が自分以外にも役に立つとしたら以下のような人だと思います。

  • プログラマ等、システム開発に関わる人(主に初心者)
  • 実力不足に危機感を持っているが、どうして良いか分からず何もしていない人
  • どちらかというと物覚えが悪く、不器用
  • 凡人(おそらく元々頭の良い人はもっと効率よい方法をとっているだろう。しかし、その方法が凡人にも有効とは限らない)

要約

Read Great Programs をざっくり要約すると以下のような感じです。

素晴らしいプログラムを読むことは初期において絶大なる効果がある。
しかし、それだけではだんだん効果が小さくなる。

逆に、ある時期においては実際に手を動かし実践することで伸びる効果が大きくなる。

実践により実力が上がったことで、他の素晴らしいプログラムを理解できる範囲が増え、
新たに得た知識でさらに実力があがる。
結局のところ、どちらかだけではなく自分にあったバランスで双方を取り入れて吸収していくのが良い。

スキルを身につけること全般について

「Read Great Programs」はプログラムに関して書かれた内容ですが、
スキルを身につける過程全般について同様に考えることができそうです。

いくら良書を読み、その分野の達人を観察しても実際に手を動かさなければ新たな段階へ到達しにくい領域がある。
いくら手だけ動かしても一人だけでは到達しにくい発想・領域がある。
どちらも必要。
自分にあったバランスが必要。

学習初期においては誰が達人で何が良書で何が良質の情報か分からない場合もある。
その場合は、がむしゃらに実践と情報収集を継続する。
知識と経験が一定量たまった時期に、誰が凄い人で、どの情報が有益か見えてくる。

段階

1. 実践・座学双方をがむしゃらにこなす

何が良くて、何が悪いのか判別がつかない時期。

自分より凄い人が多く、その差も大きすぎ、距離感がつかめないことから
「自分よりは凄いけどあまり目指すべきではない A さん」
「自分より凄くて目指すべき B さん」
の区別がつかない。

人によっては何か実践でつくろうにも、作るところまでどうやって到達すれば
良いのか分からない、という時期でもある。

実践、座学ともに量をこなす。

成果を実感しにくい時期でもあり、モチベーションコントロールが難しい。
自分へのご褒美的なものや楽しさの演出など工夫をしたい。

2. 選球眼を得る

知識と経験が一定量たまり、良質の情報・見習うべき上級者の判別ができてくる。
ここからは自分にあった実践と座学のバランスを探し当てていく。

継続するためには引き続きモチベーションも影響してくるので、
自身が実践に楽しみを見出すか、座学に楽しみを見出すかも重要だろう。

3. 人に教え、閃きが連鎖するフェーズ

人に物事を教えるフェーズへ。

自身の持つ情報と良質の情報・見習うべき上級者の情報を組み合わせて
新たな自分独自の閃きを得る。

人に物を教える機会が増え、必然的に物事を深く理解したり、
新たなものを調べる機会が増える。
弟子から学び取ることも多い。
学習のサイクルが加速する。

アウトプットも増え、関わる相手も上級者が増えてきて、
有益な情報と接する機会も増えて学習が加速する。

4. さらなる高みへ

自分自身、大したレベルではないのでまだまだ先は長い。

資料