Soft Skillsの"第3部 学ぶことを学ぼう"を読んで

Soft Skillsという本がある。 この本は、ソフトウェアエンジニアが幸せに生きるために必要なことについて教えてくれる良書だ。 その中でも、学習に関する箇所が非常に分かりやすいプロセスで説明されていたので、記事として残しておきたいと思う。

10ステッププロセス

プロセスの根本的な考え方

この10ステッププロセスでは、以下の3つのことを念頭に置いて作られている。

1.どうすれば始められるか

学び始めるための基本的な知識は何か。

2.テーマの幅

学ぼうとしていることの規模はどれくらいで、何ができるのか?

3.基礎

基本的なユースケースは何か、20%で日常の用途の80%をカバーするためには、どの20%を学べばいいか。

具体的なプロセス

具体的なプロセスとしては、大きく二つに分けることができる。

  • 反復しないプロセス

    学習したいテーマに対して、1度のみ行うプロセス。

  • 反復するプロセス

    学習したいテーマに対して、必要なだけ繰り返すプロセス。

1-6:反復しないプロセス

1.全体像をつかむ

まず、学びたいテーマに関するいろんな文献や記事を探して、流し読みしてみよう。 学びたいテーマは"何ができて"、"どれだけ規模が大きくて"、"どこが手強いのか"を知ることから始めよう。

2.スコープを決める

どこまでを学ぶべきかのスコープを明確に設定しよう。 自分の学びたいことは、そのテーマの全てではないはずだ。

たとえばテーマが物理学だとして、すべて学びたいとしたら、それは生きている間には無理だろう。 テーマが大きすぎると、圧倒されてしまう。 テーマがを適切なスコープに分割して、学べる範囲まで小さくしてみよう。

例えば、元のテーマが「C#を学ぶ」だったら、 簡単なコンソールアプリを作るために必要なC#の言語の基礎を学ぶ、とかに分割できるはずだ。

この時、他のサブテーマも学びたいので焦点をあまり絞り込みたくない、と思うかもしれない。 しかし、それはおすすめしない。 1度に学べることは1つだけだ。 二兎を追う者は一兎をも得ることはできない。

3.成功の基準を決める

テーマの学習を通じて、何ができたら成功したと言えるのかの基準を決めよう。 基準がわかれば、そこに到達するために踏んでいかなければならないステップが明確になる。 注意点として、成功基準は具体的にすること。

  • 悪い例: C#の基礎が身についている

  • 良い例: C#の主要な言語機能をすべて利用して、小さなアプリを書けるようになる

4.参考資料を見つける

テーマの学習に役立つ資料を複数見つけよう。

参考資料は、1冊では不十分だ。大学のレポートだって、参考文献が1冊だったら単位はもらえないだろう。 この段階では、「この本だけ見て勉強する!」と決めたりしないで、良さそうな本をできるだけ多く見つけることが大切だ。ただし時間をかけずに。 アマゾンとか、本のレビューサイトに行くのが良いだろう。

5.学習プランを作る

成功基準を達成するための学習プランを作ろう。 おすすめのやり方は、参考資料が辿っているような経路、つまり目次を見ることだ。 ほとんどの本で似たような学習プロセスを辿っているのであれば、それを参考にするのが良いだろう。

ただし、世の中の本全てのやり方が良いとは限らない。 「全体像をつかむ」ぐらいの気持ちで目次を眺めよう。

6.リソースをフィルターにかける

集めた参考資料のうち、どれを使うのかを決めよう。 ステップ4で挙げた資料を全て読んでいるとキリがない。 バスケットボールの選抜チームのように、良書だけを選抜しよう。

7-10:反復するプロセス

ここから先は、ステップ3で決めた成功基準を満たすまで、何度も繰り返すプロセスになる。

7.使い始められるようにする方法を学ぶ

まずは、エディタを起動して、HelloWorld!を実行するところまでをまずやってみよう。 この時に、あまり遠くまで行きすぎないようにすることが大切だ。

最も大きな成功を得られるのは、参考資料に没入しすぎず、最小限のことだけを学ぶことだ。 常に成功基準に立ち戻ろう。

8.遊びまわる

使える道具を手に入れたら、いじり倒してみよう。

このステップは、面白く、かつ、恐ろしいところでもある。 このゲームにルールはない。したいことを何でもできる。 あらかじめ資料を全て読まず、自分でいろいろやってみて発見することが大切だ。

これはどういうしくみで動いているのだろう? こうするとどうなるのか?

こういった、自分の疑問によって本当に重要なことの方に導かれる。

9.役に立つことができるところまで学ぶ

このステップの目標は、子供の頃のような好奇心に引っ張られる学習を取り戻すことだ。

ステップ8で生まれた疑問に対し、全ての参考資料を動員してモジュールのことを深く学ぶ。 ただし、完全にその章を読みきる必要はない、必要なところだけで良い。

本を最初から最後まで通して読んでも、何も出ない。 必ず、ステップ3の成功基準を忘れないようにしよう。 成功基準は「本を読みきること」ではないはずだ。

10.教える

あるテーマについて深く理解したいと思っているなら、教える以外の方法は無いと思って良い。

このステップまできたら、安全地帯を離れ、テーマについて深く知っていない人に対して先生になるべきだ。

教えるという行為を通じて、自分が実はよくわかっていなかった部分、つまり"知識の隙間"をはっきりさせ、再学習することができる。

同僚でもブログでも動画でも良い、人に説明しようとすることは、自分が学んだことのなかに含まれる隙間を埋める手段として優れている。

おわりに

これらの10個のステップは、魔法の公式では無い。

私たち人間が生まれつき持ち合わせていて、私たちの大半を突き動かしている好奇心のメカニズムを使っているだけだ。 もし自分が学びたいテーマがあるとしたら、このプロセスを取り入れ、意欲的に勉強してみよう。