こんにちは、新人エンジニアの岩本です。
今回はジョン・ソンメズ著の『SOFT SKILLS』で紹介されている勉強法を解説していきます。
エンジニアは勉強がマストな職です。常に知識をアップデートしないと、すぐに周りと差がついてしまいます。
でも闇雲に勉強を続けても、効率が悪いです。どうせならきちんと勉強法を学んで、短い時間で最大の成果を出しましょう。
独学における2つの大前提
まず、勉強法を詳しく解説する前に独学する際の2つの大前提を紹介します。
この2つを意識するだけでも、勉強効率はかなり上がると思います。
- 自分の手を動かして学ぶ
- 学んだことを他人に説明する
順次解説します。
自分の手を動かして学ぶ
本や記事を見て分かった気になってませんか?
実際自分でコードを書いてみると、全然理解出来なかったりします。
これはプログラミングに限らず、あらゆることに言えることです。
サッカーの本を読んだからといって、サッカーは上手くなりません。サッカーが上手くなりたいなら、サッカーを実際にプレイする必要があります。
プログラミングが上手くなりたいなら、実際に自分の手でコードを書く必要があります。
学んだことを他人に説明する
学んだことを他人に説明するには、完全に理解した上で自分の言葉に直す必要があります。
実際にやってみるとわかりますが、理解したと思っていても、他人に説明しようとするとうまく言葉が出てこないことがよくあります。
これはまだ理解が浅い、完全ではないからです。
僕自身このブログを書き始めて、他人に説明することの難しさを知りました。
しかしその体験を通して知識の隙間を埋めることができます。
説明する相手は誰でも構わないので、とにかく学んだことを他人に説明してみることが大切です。
【最大効率化】10ステップ勉強法
ではここから本書の10ステップ勉強法について詳しく解説します。
まず10ステップ勉強法とはその名の通り、以下の10ステップを踏む勉強法です。
- 全体像を掴む
- 学習範囲を決める
- 成功の基準を決める
- 参考資料を見つける
- 学習プランを立てる
- 参考資料を絞り込む
- ある程度使えるようにするための方法を学ぶ
- 遊び倒す
- 役に立つことができるところまで学ぶ
- 教える
僕が実践してみて思ったことも含めて順次解説します。
1. 全体像を掴む
まずは学びたいテーマの全体像、規模感を掴みます。
その技術で何ができるのか、どんな目的なのかを簡単に調べます。このステップで何がわからないか、何を知りたいのかを明確にしていきます。
ここはそんなに時間かけずにサラッと調べればいいかと思います。
2. 学習範囲を決める
次は学習に費やせる期間から、学習する範囲をできるだけ限定していきます。
勉強する前は全部理解できると勘違いしがちです。
しかし全部理解しようとしても、結局時間が足りず何もわからないまま時間を浪費してしまうことが多いです。
範囲を限定することで学ぶべきことに集中できるので、このステップでは明確に「この範囲!」と決めるのがいいと思います。
3. 成功の基準を決める
次に、この勉強の成功の基準を決めます。
ポイントは具体的で明確な目標を立てることです。
人は曖昧な目標よりも、具体的で達成条件が明確な目標の方が、モチベーションを保ちやすいです。
4. 参考資料を見つける
次に学びたいテーマに関する参考資料を集めます。
ポイントは異なる情報源をたくさん見つけることです。
なぜかというと、人の記憶は異なる媒体でインプットを受け取るほど強硬になるからです。
- 記事
- 書籍
- 動画
- 音声
などできるだけたくさんの情報源から参考になりそうな資料を集めてください
この時点でクオリティを考える必要はありません。ブレインストーミング的にどんどん資料を集めてください。
5. 学習プランを立てる
次にどのような道筋で学ぶのか計画を立てます。
自分で本や記事を書く場合、どんな構成にするのかを考えると、計画しやすいです。
学習プランを立てることで、迷いがなくなり、より行動に起こしやすくなります。
先ほども言いましたが、人はより具体的で明確な目標の方がモチベーションを保ちやすいです。
学ぶまでの手順が明確になれば、それだけでも勉強に手をつける確率が上がるわけです。
6. 参考資料を絞り込む
次に集めた参考資料を、学習プランをもとにして絞り込みます。
集めた参考資料に全て目を通すのは現実的ではありません。
本当に自分にとって必要な資料のみに絞り込むことで、無駄な資料を読む時間を省くことができます。
7. ある程度使えるようにするための方法を学ぶ
このステップから実際に学習を開始します。
しかしこのステップでは、資料をすべて読む必要はありません。
学ぶのは自分の手で動かせる最低限で構いません。
上でも書きましたが、人の知識が定着するのは実際に自分の手で動かした時です。
最初から全てを理解することはできないので、まず自分で動かすことができる最低限を目安に学んでみてください。
8. 遊び倒す
次に自分の好奇心の導くままに遊んでみます。
このステップにルールはありません。前のステップで学んだことをもとに、自分で何ができるか、何ができないかを実験してみてください。
この時生じた疑問は、次のステップで解決します。
このステップではとにかく自分の興味が赴くまま、手を動かしてみてください。
9. 役に立つことができるところまで学ぶ
次に、前のステップで生じた疑問を、持ってる参考資料の全てを使って解決します。資料は興味のあるところ、疑問に答えてくれそうなところのみでOKです。
実際にやってみると、自分の手で動かしたからこそ理解できることがあることに気が付きます。
それまではさほど重要だと思わなかったことが、すごく重要な概念だったみたいこともよくあります。
ここで疑問を解決できたら、それをもとに前のステップに戻って、また自分の手で遊んでみるのもいいです。
7~10のステップは何度も繰り返すことで、知識の隙間を埋め、深い理解をできるようになります。
10. 教える
最後のステップは、学んだことを他人に説明してみてください。
筆者は本物の理解を得ようとするなら、教えることは必須だと考えています。
あるテーマを深く学び、本物の理解を獲得したいと思っているなら、教えなければならない。他の方法はない。
他人に説明することに怖がる必要はありません。
相手の実力を圧倒的に超える必要はありません。
新人だからこそ教えられることもあります。
怖がらず、ぜひ他人に学んだことを説明してみてください。
技術ブログを書くのもおすすめです!(一緒にブログ書きましょう!)
まとめ
今回はジョン・ソンメズ著『SOFT SKILLS』から、勉強法を紹介しました。
勉強法は学ぶだけでは意味がありません。
実際に試してみて自分に合うようにカスタマイズする必要があります。
ぜひ自分の手で試してみて、効率よく勉強を続けていきましょう。
ここまでのご閲覧ありがとうございました!
コメント