今回の内容は、学習方法についてお伝えします。
この記事を書こうと思ったのは、僕が前職で教育担当をしているときに『自分で学習する方法が身についていない』人が意外と多いと感じたことが背景にあります。
プログラミングスクール卒業後など、誰かに教わる環境から抜けた人に多く見られます。
自分の学習方法が理解できていないと、参考書を見てもつまずいたときに解決できななかったり、その時はインプットできたのに数日すると忘れてしまったり・・・そんなことが起こってしまいます。
また現場では特にスキルよりも自己解決力が求められるので、学習方法を身につけるというのはエンジニアにおいてはかなり重要です。
すでに案件をこなしている人の中でも、意外と学習方法が確立できてない人もいると思うので、ぜひ参考にしてみてください。
目次
学び方を学ぼう

学習をするときに、参考書やYoutubeを使ったりすることも多かれ少なかれあるかと思います。
僕もよく利用するのですが、デメリットとして下記のようなことを思っていました。
<参考書やYoutubeなどのデメリット>
・本当に自分が学習したい内容に辿り着くまでに時間がかかる
・実際の現場ではあまり使わないコードをインプットしてしまう
・復習しようと思ったときにどこにその情報があるか探し直したりするのに手間がかかる
・1~10までやろうとすると膨大な時間が割かれる
など、無駄な学習コストがかかっていると感じることがありました。
時間に余裕があるときは気にならない内容です。
ですが、限られた短期間・時間の中での学習となると、もっと効率的に学習しなければないと感じると思います。
業務をこなしながら隙間時間で学習している人にはわかると思います。
そこで、僕が見つけ出した答えは「全てを網羅するのではなく、本当に必要なこと明確化し学習内容を絞ること」でした。
そして、明確化する上でのポイントは以下3つに絞られます。
<明確化のポイント3つ>
例)エンジニア
・ポイント1:まずはどうやって学習を始めるのか?
・ポイント2:何ができるようになるのか?大枠だけ理解しておくこと。細かいことは後から。
・ポイント3 :最もオーソドックスな使用方法だけ学習する、最低限の知識だけ。
この3ポイントを意識すると良いです。
というのも昔の僕もそうだったのですが、仕事で使う上での基礎的内容と他の細かい内容を混同して学習していました。
しかし実際の業務では、基本的な内容を理解していればあとはケースバイケースなシチュエーションの方が多いですよね。
やりながら調べたり、同僚に聞いたりして、その場その場で解決していくことになります。
これを繰り返すことで実際の業務でも活かせるようなスキルや知識が身に付きます。
つまり、必要最低限の知識を理解したら、あとは案件をこなしながら現場で必要な箇所を重点的に学習して経験値を蓄えていく。
このやり方がエンジニアの最も効率的な学習方法です。
学習の順序9ステップ

より効率を上げていくために、学習の順序を工夫しましょう。
以下、僕のオススメの順序です。
《ステップ1 全体像を掴む》
学習したい参考書があったら、まずは導入や目次をみてください。
そして学習しようとしているもので何ができるのかという概要だけ理解しましょう。
例えばHTML/CSSの参考書だったら、全体像としては『Webページの見た目を整えるための言語』『WEBサイトに必要な部品を配置するための言語』といったことだけわかっていればまずは大丈夫です。
《ステップ2 絞り込みをする》
何ができるかステップ1で理解できたら、その参考書での目標を決めましょう。
引き続きHTML/CSSを例に出しますが、『HTML/CSSで簡単なwebページを作れるようになる』といった感じです。
《ステップ3 目標達成の基準を決める》
ここまで達成させたら成功という基準を決めていくと、そこに向かって進むだけなので、目標のブレが少なくなります。
ステップ2で『HTML/CSSで簡単なwebページを作れるようになる』と決めたなら、『HTML/CSSで画像を横並びにして、問い合わせフォームを設置するシンプルなサイトが作れるようになる』という達成目標がいいです。
ここで注意するのは、抽象的な目標にしてはいけないということです。
『HTML/CSSの基礎を学ぶ』という抽象的なものにしてしまうと、”基礎”というのが大きな定義になってしまうので、学習の継続がしにくくなります。
《ステップ4 参考資料を探す》
できるだけ多くの参考資料があるといいです。ブログでもいいです。
なぜ多くの資料が必要なのかというと参考書や資料では書き手や発信者の伝え方が異なるからです。
のちのちその中から良質だと思うものをあとから選定していけばいいので、探してみましょう。
Udemyを覗いてみても多くの参考になるものが展開されていますよね。
《ステップ5 学習プランを作る》
ステップ4で参考資料をたくさん揃えた方がいいと言いましたが、全部を網羅してほしいわけではありません。
複数の参考資料で共通した項目が必ずあるので、何が共通項目になっているか調べてください。
その共通項目があなたがやるべき最低限の基礎知識なので、それを学習するようにしましょう。
どの参考資料も基本的には各章を順序よく進めていくと学習できる構成になっていますが、不要な内容も混じっているのでふるいにかけるイメージです。
HTML/CSSでいうとおそらく『見出しテキスト』『フォームの基礎知識』などが共通項目になります。
《ステップ6 学習開始》
ここに来て初めて学習を開始していくことになりますが、前提として限られた時間の中での学習効率を良くしていくことが目的です。
なので、必要最低限に絞った項目の学習が終わったら、すぐに作業に移っていきましょう。
《ステップ7 完璧主義はやめよう》
学習方法でうまくいかないパターンは「完璧に知識をつけるまでは次のステップに行かない」という考え方です。
完璧な状態を待っていてはいつまで経っても進めません。
ゲームをする時や家電を買った時に、説明書を隅々まで読みますか?
読みませんよね。それと同じです。
細かいことは手を動かしながら覚えていくと思います。
学習もそれと同じなので、ある程度基礎ができたら作業に移りましょう。つまずいた場合は再度学習し直せばいいんです。
《ステップ8 つまずいた時の対処法》
作業していると必ずつまずくポイントが出てくると思います。
そこで活躍するのがステップ4です。調べていた参考資料を再度引き出してきましょう。
それらの目次には現在あなたが求めている答えに近いものがあると思います。答えに近しい項目だけ調べて学習しましょう。これが最も効率的な学習なのです。
《ステップ9 知識の定着》
知識を定着させる一番の近道はアウトプットすることです。
誰かに教えると良いでしょう。近くに教える人なんていないという方は、twitterで発信してもいいし友達に話してみるレベルでもいいです。
Youtubeを撮影してみるのも良いと思います。
おそらく最初は撮影の時点で、自分が何を言っているのか分からなくなったりすることもあると思いますが、それでいいんです。
言葉にしてアウトプットができる=頭の中で言語化できている証拠です。怖からずどんどん誰かにアウトプットしていきましょう。
番外編:メンターを探す

学習方法の一つにメンターに頼るという選択もあります。
有名なサービスとしては『メンタ』がありますが、料金に対して内容や質が適正じゃない講師・メンターもいるので気をつけてましょう。
メンターとなる人を見つける基準は以下4ポイントです。
1:あなたがしたいことを実際にしている、したことがある実績をもっている人から学ぶ
2:フィーリング的にその人とうまくやっていけるか
3:憧れるような存在の人から学ぶ
4:成功の数よりも失敗の数が多い人から学ぶ
今回は以上です。
ぜひこの内容を参考にして学習効率を高めていただければと思います。
感想などLINEでお待ちしております!