この記事では、現役エンジニアの私が、新しい技術(ツールや言語)を学ぶ際にどのような流れで習得しているのか、またそのときにどのようなことを意識しているのかをまとめてみました。
技術の習得方法を模索している方の参考になれば幸いです。
現役Web系エンジニアが自分なりの技術の勉強方法を言語化してみた
私の技術習得の流れは以下の通りです。
- 基礎学習(インプット学習)の期限を決めて学習に取り組む
- ひたすらアウトプットをする
基礎学習(インプット学習)の期限を決めて学習に取り組む
まず最初に基礎・インプット学習の「期限」を決めます。
※ 基礎・インプット学習:書籍を読んだりチュートリアルに取り組んだりコードを写経したりすること
なぜなら、期限を決めないと、ダラダラと永遠に基礎学習を続けてしまう可能性があるからです。
期限の長さについては、勉強する技術によって幅があるため敢えて決めてはいませんが、最長でも「1週間」が目安です。
また、インプットが中途半端であったとしても、それ以上延ばすことはしません。
なぜなら、いくら学習を続けても「完璧」になることはないからです。
中途半端な状態でもある程度は受け入れて前に進まないと、ずっとその場で足踏みをすることになってしまいます。
基礎学習は、いわばビート板を使った水泳のようなものです。
ビート板を使っている間は自分が泳げるように感じて気持ちがいいため、ついそれを続けてしまいがちです。
しかし、いつかは卒業しないと永遠に自分の力で泳げるようにはなりません。
プログラミングも同じです。
実際に自分の力でコードを書かないことには書けるようにはなりません。
だからこそ、期限を決めて基礎学習を終えた後は、勇気を出してスパッと次のアウトプット学習に移行するようにしましょう。
ひたすらアウトプットをする
インプットが終わったら、あとはひたすらアウトプットを行います。
ここでのアウトプットは、例えば以下のようなものです。
- 仕事で使う
- 個人サービスを作る
- ブログ記事を書く
- LTで発表する
上記のようなアウトプットを行う中で、必要に応じて勉強をしていきます。
このように「アウトプット駆動」で学習することのメリットは、以下の三つです。
- 必要なときに必要なことを学ぶので効率がいい
- 自分の理解が不足している箇所に気付くことができる
- 「自分で考えてコードを書く(ツールを使う)」ので頭に残りやすい
当たり前の話として、自分の頭で考えてコードを書かずしてコードを書けるようにはなりません。
自分の頭に負荷をかける意味でも、早めにコンフォートゾーン(インプット学習)から抜け出してアウトプットに入るのが良いでしょう。
技術の習得をする際に意識していること
前項までで、私の技術の習得方法をお伝えしてきました。
次に、私が技術の勉強をする際に気を付けていることを紹介します。
- 基本は業務で必要な技術を深める
- 完璧主義を捨てる
- 常にアウトプットを意識してインプットをする
基本は業務で必要な技術を深める
基本的に、プライベートで勉強をする際には「業務で必要な内容」を深めるようにしています。
なぜなら、業務に向けた勉強をする場合は、「質の高いアウトプット」が前提となるため、情報の取捨選択の効率が上がり、また学んだことをすぐに使えるので頭にも残りやすいからです。
さらに、業務でのアウトプットの質が上がるので、周りの自分への評価や自信にも繋がるメリットもあります。
完璧主義を捨てる
完璧主義を捨てることも重要です。
なぜなら、完璧を求めすぎると、以下のような状況に陥ってしまい、無駄な時間を過ごしてしまう可能性があるからです。
- 完璧に理解するまでチュートリアルを何周もする
- 本を最初から最後まで全て読む
特に本は、ついつい最初から読んでしまいがちですが、別にそうしないといけない決まりはありません。
目標とするアウトプットと関係のない部分を読んでもどうせ忘れてしまうので、目次や索引等を参考にして、必要になったときに必要な項目だけ読むと良いでしょう。
常にアウトプットを意識してインプットをする
インプットをする際には、必ず「これをどう使うか?」つまり、「アウトプット」を意識しています。
なぜなら、アウトプットを意識することで自分にとって必要な部分の取捨選択ができるし、記憶にも定着しやすくなるからです。
例えば、読書のときもただ漠然と読むのではなく、「これをどう使うか?」を常に考えるようにします。
そうすることでインプットの効率が上がり、アウトプットの質も向上していくことでしょう。
現役Web系エンジニアが自分なりの技術の勉強方法を言語化してみた おわりに
本文中で何度も書いてきましたが、エンジニアとして効率よく技術を習得する上で最も大切なのは、「アウトプットを前提としたインプットをする」こと、そして「実際にアウトプットを行う」ことです。
ついつい楽な道(チュートリアルなど)に逃げがちですが、結局のところは、「アウトプットをしつつ必要になったときに必要なことを学ぶ」のが最も効率の良い勉強法なので、その点は意識をしておくと良いでしょう。
最後まで読んでいただきありがとうございました。
この記事がエンジニアとして技術の習得をしていく上で少しでも参考になっていれば幸いです。