学校に行っていい教育を受けることは決して悪いことではない。しかし、最終学歴の卒業とともに教育が終わってしまった人は、それからの人生ではっきりと不利な状況に追い込まれるだろう。実際、他人から教わるという方法に頼り切って、独学のスキルを身に付けていない人は、スキルと知識を伸ばすチャンスを大きく失っている。

 ソフトウエア開発者が身に付けられるスキルのなかでもっとも重要なもののひとつは、独学のスキルだ。毎日のように新しいテクノロジーが登場し、初心者レベルのウェブ開発者の応募資格が少なくとも三つのプログラミング言語を知っていることだというような世界では、自学自習はぜひとも必要なスキルである。

 自分の可能性の範囲内でもっとも優秀なソフトウエア開発者になりたいなら、独学の方法を学ぶ必要がある。残念ながら、独学は学校で教えてくれるスキルではない。個人ではなく、グループを相手にするために設計されたシステムではまったく逆のことを教えられていると言ってもいいくらいだ。学び方の学習は、根本的に自分で学ばなければならないスキルなのである。

学習プロセスを解剖する

 今までに自分がどのように学習しているのか、また何かを学ぶとは正確なところどういう意味なのかについて深く考えたことがあるだろうか。私たちは、興味を持ったものについては、ほとんど無意識のうちに学んでいる。誰かがとても面白い話をしてくれたときには、ノートを取ったり何が起きたのかを正確に記憶しようとしたりしないが、それでもほとんどの人は、物語を聞くと、ほとんど苦もなくその物語を繰り返すことができる。

 私たちがすることについても同じことが当てはまる。私があなたに何かをする方法を見せたとしても、あなたは忘れてしまうかもしれないが、あなたがそれを実際に自分ですると、あなたがそれを覚えている可能性ははるかに高くなる。そして、自分が学ぼうとしていることを他人に教えると、あなたはそれを覚えるだけでなく、それについてもっと深く理解するようになる。

 私たちにはそれぞれ異なる学習スタイルがあるという考え方は間違っているということが明らかになっている。私たちはみな、実際にやってみて、さらに教えるとよく学べるように作られているのである。能動的な学習は、ほかのどの学習方法よりもはるかに効果的だ。

 これは次のように考えることができるだろう。その気になれば、あなたは自転車の正しい乗り方について書かれたあらゆる本を読むことができる。人が自転車に乗っているところを写したビデオを見ることもできる。私が正しい自転車乗りのメカニズムを講義してもいい。しかし、今までに自転車に乗ったことが1 度もなければ、初めて自転車に乗ったときには、すぐに転ぶだろう。自転車について多くのことを知ることはできる。自転車乗りはどのようなメカニズムなのか、どのようなタイプの自転車がもっともいいかについて知ることはできても、実際に学んだことを実践に移すまでは、自転車の乗り方について本当に学んだとは言えない。

 それでは、プログラミング言語やフレームワークについて書かれた技術書を取り出し、最初から最後まできれいに読んで、そのなかのすべての情報を吸収しようと思うソフトウエア開発者がたくさんいるのはなぜだろうか。この方法では、テーマについてのあらゆる情報を蓄積できても、実際にそのテーマを学んだとは言えない状態に留まるだろう。

独学の方法

 何かを学びたいと思うなら、どうすればいいのだろうか。結論を言えば、行動を起こしたときにもっともよく学べる。そして、学んだことを誰かほかの人に教えると、知識が補強され、理解が深まる。独学するときに重点を置くべきことは、できる限り早く実際に試せるポイントに到達して、行動を起こすことだ。

 私は、何をやっているのかさえわからないうちに行動を起こすことが、何かを学ぶための方法としてはもっともいいのではないかと感じている。あるテーマについて遊べるくらいの知識が身に付いたら、あなたの頭のなかの創造的で好奇心旺盛な強力な部分を活用できる。私たちは、実際に能動的に遊んでいるときこそ、そうでないときよりも多くの知識を吸収し、意味のある疑問が湧いてくるものだ。

 少し奇妙に感じられるかもしれないが、遊ぶことが学習のための強力なメカニズムだということは決して意外ではないはずだ。動物の王国でもこのメカニズムを観察できる。動物の赤ん坊は非常によく遊ぶ。そして、その遊びを通じて、生き残りに必要な、重要なスキルを身に付けていく。子猫がネズミ狩りを学ぶところを見たことがあるだろうか。私たち人間も、遊ぶことによって、自分が何をしているのかよくわからない状態で積極的に行動することによって学ぶのである。

 このように遊ぶ能力を引き出せるというのは、非常に強力な道具であり、モチベーションが上がるだけではなく、学習ペースが非常に加速される。あるテーマについて、本をじっくり読む前に、ざっと流し読みしてその世界に飛び込み、すぐに遊んでみよう。何をしているのかわからなくても気にしなくていい。ただ楽しもう。そして、実験し、探りを入れているうちにどのような疑問が頭に浮かんでくるかを観察するのだ。

 さんざん遊んでありとあらゆる疑問が浮かんだら、初めて本に戻って文章を読む。こうすると、本の内容をむさぼり読んで吸収したいという強い気持ちで本に向かうことになる。答えを知りたい疑問がたくさんあるのだ。何が重要なのかが見えてくるだろう。

 本を読んで学んだら、その成果を遊びに活かそう。学んだ新しいことが遊びにどのようにフィットし、問題解決に役立ったかを観察するのである。また、新しい領域を掘り下げ、解決すべき新しい疑問を生み出そう。このサイクルを繰り返し、プレーしながら見つけた問題を解決するという目的のために知識を少しずつ蓄えていこう。こうすれば、獲得した情報は、単なるページ上の言葉の連続ではなく、自分にとって意味のあるものになる。

 最後に、自分が学んだことを誰かほかの人に教えて知識をセメントで封印しておこう。この頃には、自分が発見したことに興奮し、知識ははち切れんばかりになっており、新しく見つけた知識を聞いてくれる人に教えたくてうずうずしているはずだ。これが遊びのパワーだ。教えるというのは、わかったことを夫や妻に話したり、ブログポストを書いたりといった簡単なことでいい。大切なのは、その情報を自分の言葉で言い直し、頭の外のどこかに思考を組織することなのである。

出典:「SOFT SKILLS ソフトウェア開発者の人生マニュアル」(日経BP)の一部を抜粋・編集
記事は執筆時の情報に基づいており、現在では異なる場合があります。