はじめに
本記事では、学習について再考し、おすすめの学習の方法を提言する。
学習とは
本記事では、ある分野を構造的に理解することを学習と定義する。また、学習の観点として、広さ・深さ・正確さ・関係性を下記のように定義し、頂点をある分野を構成する情報とした下図のような木構造を簡易的に考える。それぞれが木構造と学習においてどの部分に相当するかを下記に列挙する。
- 広さ
- ある分野の広い範囲の情報を網羅することが広さの学習
- 木構造においては頂点あたりの辺数に相当
- 深さ
- 分野をさらに境界づけて分割した分野を詳細に理解することが深さの学習
- 木構造においてはの木の深さに相当
- 正確さ
- それぞれの情報を正確に理解することが正確さの学習
- 木構造においては頂点ごとの情報の正確性に相当
- 関係性
- 情報どうしを単体ではなく関連づけて理解することが関係性の学習
- 木構造においては辺に相当
おすすめの学習方法
先ほど紹介した考え方を用いて、自分は以下のような学習方法を提言する。
この方法は多くの分野で汎用的に用いることができると自分は考えている。
(1)初学者→初級者 ~知る~
初学者の時点ではその分野を知ることが重要である。また、この段階では、正確さや深さや関係性の学習にかかるコストが高いため、それらの部分は意識せず広げることのみを意識すべきと自分は考えている。
この用途には、各分野のチュートリアルや入門用の記事が適している。また、今であればChatGPTを利用してサンプルを動かしたり概念の概要を学んだりといった方法もある。当然ではあるが、この部分の学習のための教材は非常に多い。
(2)初級者→中級者 ~理解する~
(1)を一定時間続けると初級者になるが、次は理解するために学習する必要がある。
先ほどの知る段階では、正確さ・深さ・関係性が十分でなく、理解するというのはこの部分を補填する行為である。正確さの部分については一次情報またはそれに近い情報を参照する習慣をつけることで自然と補填できると自分は考える。また、深さの部分については一次情報を元により詳しい情報を掘っていくことで補填できると考える。
ただ、関係性の部分については、ドキュメント等で明示的に示されているものでないとなかなか学習するのが難しい。自分の場合は、様々な人のスライドや記事や本などを読むことでそれぞれの情報を多角的に捉え、この部分を補填するようにしている。
さらに、理解するにはアウトプットが必要である。自分の場合は、Qiitaやnote等でブログを作成したり社内のLTで発表したり実務で使ったりといったところでアウトプットをしている。特にブログやLTの場合は構造化を意識してアウトプットをしており、この行為が正確さ・深さ・関係性の学習に非常に役立っていると感じる。
(3)中級者→上級者 ~抽象化する~
先ほどの(1)と(2)を繰り返すことで中級者として成長できるが、次は抽象化するために学習する必要がある。
抽象化するメリットとしては、学習した分野の構造を再度俯瞰することで、構造的により洗練された理解をすることができる点である。(2)の際に紹介したアウトプットは(3)においても役立つ。
また、アナロジー思考を利用することでもう一つの抽象化のメリットを享受できる。アナロジー思考とは、ある未経験の事象に対して共通した特徴を持つ他の事象を応用するような思考法である。つまり、分野間での共通性を頭に入れて学習を進めることで、差分のみを学ぶことができ、効率よく学習することができるというメリットがある。
例えば、プログラミング言語を複数学習した人は他の言語の学習も高速にできるということは耳にしたことがあると思う。この場合は、プログラミングパラダイムや言語仕様などを抽象度高く捉えられているため、差分に着目して学習できるからであり、まさにアナロジー思考を利用した例と言える。
まとめ
昨年末に書いた下記の記事を大幅更新する形で本記事を書いた。学習という分野の学習も約半年間行ったことで、自分の見方が更新されたように、どの分野であっても継続的に学習をしていくのが重要であると自分は考える。本記事の学習方法が参考になれば幸いである。