fv17の日記

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

ITエンジニアの効率の良い勉強方法(1) - 遅延評価勉強法

とあるエンジニアの方からアドバイスいただいたのでメモ。

問い

エンジニアはどのように技術を学ぶべきか?
背景は、実務で高いパフォーマンスが出せるよう、適切な対象を高速に学びたい

回答

遅延評価勉強法で学ぶべし

遅延評価勉強法とは?

参考サイト(以下、「参照先」とする)
lukesilvia.hatenablog.com
amachang.hatenablog.com

以下、簡単に自分なりにまとめ

遅延評価勉強法とは

参照先から引用すると

  • その知識が必要になった時に初めて勉強する方法
  • 「○○を学んだから××をやってみる」ではなく、「××をやりたいから○○を勉強する」

上記のようにすることで、遅延評価のように必要な時に、必要な分だけ学習(計算)することになり効率的にキャッチアップできる。

遅延評価勉強法のメリット

やりたい駆動、あるいはやらなきゃいけない駆動での学習となるため、

  • 勉強へのモチベーションが高い
  • 必然的に学んだことをすぐにアウトプットするため、学習効果が高い

一方で、何だか良くわからないけど本に書いてあるから学ぶという状態だと、なぜ学ぶのか?、これを学ぶ意味はあるのか?、学んでもツマラナイ...となりがちで、

  • 勉強へのモチベーションが低い
  • 面白くないので、勉強が続かない、覚えてもすぐ忘れる
  • 意識しないとアウトプットせずに終わるため、体験的な学習ができず費用対効果が著しく低い

自分の勉強方法で見直すところ、チェックポイント

  • そもそも何を目的に学ぶかを明確にする
  • その目的や目標を達成するために、具体的に何を学ぶべきかを明確にする
  • その学ぶ対象を獲得するために、最小の労力で学ぶためにはどうするべきかを考える
  • その学ぶ対象を獲得するために、今学んでいることは本当に必要か?を自問する

特に、今やっていることは本当に必要か?という視点は常に持ちたい。

分厚い書籍とかは最初から全部読んでく方式よりも、必要な部分だけを都度読むスタイルの方が絶対良い。個人的には、

  • 入門書は全部サラッと読んで、特に必要な部分を重点的に復習・参照
  • 中級以上の本だと、全部読まずに必要な個所だけ読む

とは言っても書籍によっては、最初の章から順繰りで読んでかないと後半の章は意味不明とかもあるので臨機応変に。

より体験的な学習をして学習効率を高めるための工夫

個人的には、写経するだけの教材の場合、それだけだと全く身につかない。要はインプットしているだけの状態だと、やった気にはなるが身に付かない状態となるため、下記を意識している。

  • 演習問題解く
  • 自分でサンプル作る
  • 別途開発中の製品に組み込む
  • 特に必要なさそうだと感じた部分については思い切って読み飛ばす
  • 一旦インプットしたら、重要な部分のみ抽出してブログに書き起こしてみる