Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

効率的に新しいことを学ぶ方法

社内SlackやTwitterなどで、自分が新しいことを学ぶ時に実践していることを書いたりしていたのだが、今日メンバーと1 on 1をしていて、あらためて新しいことの学び方について訊かれたので、ブログにも簡単にまとめておく。

まず前提として、学ぶ対象の「新しいこと」とは何かについて述べておく。ここでいう新しいこととは、研究やイノベーションに関することではない。そういうのは、ググっても出てこないレベルの新しさなので、このエントリで述べる対象ではない。ここでいっているのは、自分にとって新しい知識であり、かつ、既に一定の蓄積があるような内容のことである。

それをひとことでいうと、入門書があるような領域ということになる。たとえばプログラミング言語はメジャーなものはたいてい当てはまるし、DockerとかKubernetesのような技術要素も入門書があるし、もっと広く学問一般についても当てはまる定義である。

さて、さっそくどうやって学ぶかを順番に書いていく。

  1. 新しく学びたい領域について、入門書を5冊〜10冊ほど買う(技術書なら1万〜2万ぐらいか)
  2. ひとつひとつを精読するのではなく、ただ文字を追うぐらいの感じでわからないところは読み流しつつ、読み切る
  3. 1冊1時間と時間を決めて、必ず時間を守る
  4. 本を読んでいる時にコードを書いたりコマンドを実行したりなど、試したりすることはしない。ただ読むだけ
  5. それを、買った冊数分(5冊〜10冊)くりかえす。そうすれば5時間〜10時間、すなわち1日で学習できる
  6. 上記により、その領域の入門的な全体像は頭の中に入るので、あとは簡単なタスクについて手を動かしながら、公式ドキュメントなどを読みながら自分で進める

この方法のポイントがいくつかある。まずは上記しているように、とにかく何冊も読むということと。そして、読み流すということ。そのことで、まずは当該領域に関する入門レベルの全体像をつかむ。よくある失敗は、全体像をつかむことなく細部から入るから起こる。細部から入ると学習が遅いし、行き詰まって嫌になる。これが一番のポイント。

1冊1時間と決めて読むのもポイント。だらだら時間かけてないこと。スプリントを区切って、とにかくたくさん読む。良い入門書1冊を繰り返して読めばいいのでは?と思うかも知れないが、1冊を繰り返すと飽きる。だから、何冊も読む。本を読むのが苦手でも、1冊1時間と時間を決めて単に目を通すだけなら、実行できる可能性が高まるはず。

また、入門書をたくさん読むと、同じようなことでも違う切り口で書いてあるので飽きないし、ある本ではわからなくても、他の本ではわかりやすい説明があったりして、挫折しにくい。

いまどきだとWebサイトや動画でいろんなことが学べるのだが、あえてネットのリソースは使わない。なぜか。上記したように、入門的な全体像を記したひとつの塊としての情報を時間を区切って読むことと、同じようなものを何度も読むことが重要だから。Webサイトや動画だと部分的なものが多いし、時間の区切りをつけにくい。だから書籍を読むことが必要なのである。

入門書として何を選べばいいのか? 評判はあまり気にしないこと。ひとのお薦めに従うのはいいけど、1冊に決めないこと。なぜなら、入門者なんだから評判なんてわからないし、薦められた本が良いかどうかもわからない。だまって書店やサイトで検索して出てきた本を、端から買えばよい。ただ、学問的領域なら研究者が書いてる本がよいだろう

初学者にとっての敵は、学習に飽きること、わからないことにつまづくこと。なぜそうなるかというと、全体像がわかってないから。まずは、当該領域において入門レベルではこのあたりのことが語られているのだなあということを把握する。何冊も読んでいると、だんだんその領域についてきいたことがない話がでてこなくなる。10冊読めば、知らない話はまったく出てこなくなる。そうなったら独力で勉強できるようになったサイン。あとは、実際の課題に基づいて深く学んでいけばいい。

自分自身の経験でいうと、たとえば「実際に読んで選んだマネジャーのための100冊 - Kentaro Kuribayashi's blog」で書いたように、マネジメントを担うことになった時にこの方法を実践した(マネジメントといっても幅広いので、サブジャンルごとに何冊も読んだ)。最近では、機械学習や数学について同じことをしている。入門書を何冊も読んで入門レベルの全体像を得た後に、実際に手を動かして学習している。効率的に学べていると思う。

学習に対して投資したいなら、最初の時間に投資すべし。その時間を買うこと、なによりも飽きたりつまづいたりして学習が止まってしまうぐらいなら、1万〜2万など安いものだ。お金はそういうことに使いましょう。