こんにちは、
PLAIDアドベントカレンダーの22日目を担当します。
株式会社プレイドのエンジニアの伊藤です。
学習することについて話します。
はじめに
エンジニアという職業をはじめて2年近くが経ちますが、「勉強が大変な仕事だね。」といった内容のことを言われることが多い気がします。個人的には、すべての職業において勉強が必要だとは思っているのですが、最近のWEBの技術は移り変わりも速く、似たような技術がいくつも存在する状況を考えると、確かにエンジニアはことに勉強しなければならない仕事というのも頷けます。
実際に、筆者もわからないことだらけで勉強しなければ仕事にならないため、働きながら勉強を続けているわけですが、色々勉強のやり方を調べた結果どれもうまくいかず、そのなかで試行錯誤しながら実践していることをご紹介できればと思います。
実践していること
聞くこと
ひとりで無駄に悩んで時間をかけてしまい結局分からず誰かに相談しに行ったら瞬殺だったり、ミーティング中によく分からないにも関わらず羞恥心から分かっているふりをしてしまったりすることってありませんか?
私自身も入社当初は羞恥心や自尊心から素直に聞くことがうまくできず、なかなか前に進まないことがかなりありました。
このような経験は誰にでもあると思いますが、時間のない業務中や限られた勉強時間のなかでいかに速く学習するかは、社会人が学ぶことにおいて重要なテーマです。
そして、働きながら学ぶうえで、もっとも大事なことは働いている時間をいかに学びの場にするかだと思います。そのための重要な方法のひとつが、聞くことです。
聞かなければ何も得られませんが、素直にわからないことを表明して、聞くことで何かが得られる機会になります。
プログラマが知るべき97のこと の「学び続ける姿勢」というエッセイでも、
常に自分よりレベルの高い人と仕事をするようにする。自分よりレベルの高い入が周囲にいないと、学ぶことは難しくなる。誰からでも何かが学べるというのは確かだが、自分より賢明で経験も豊富な人から学べることは、やはり圧倒的に多い。...
と言っているように、レベルの高い人、生産性の高いエンジニアに聞くことは一定の効果があると思います。また、アンチパターンやベストプラクティスなど実際に経験してみないと何故それが良いのか分からないこともあり、実際の現場のなかで、経験者からその理由を聞くことも一人で勉強するよりも理解度が高かったです。
アウトプットの場を用意する
ただ、聞いてばかりだと、頭には結局残らないことがおおいので、アウトプットの場を用意して自分の血肉にする必要があります。そのため、二つ目に実践していることは、勉強したことのアウトプットの場を用意することです。
学生時代の勉強は試験や対策問題集といったアウトプットの場が多く、問題集を解いたり、試験の復習をすることで知識の定着を図っていたと思います。しかし、業務中のシーンでは目の前にアウトプットの場がある状態で聞いていることも多いと思いますが、普段のシーンではアウトプットの場がすぐにないことのほうが多いはずです。そのため、社会人の場合、本を読むことや人の話を聞くことはあっても、アウトプットの場は意識的に自ら作っていく必要があると感じました。
たとえば、私が本を使って勉強するときに実践している方法としては、以下のとおりです。
- 本をある程度読む (e.g. 一章 / 一節)
- 本を閉じて、その章に何が書いてあったかを文章にしてまとめる。
- 本を眺めて、答え合わせをする。
- もう一度 1 に戻る。
色々試した結果、やるのはしんどいですが、この実践方法がもっとも身になったので続けています。
何を知りたいのかを明確にしてかいつまむ
上記では、アウトプットの工夫について書きましたが、ご察しの通り、この方法で技術書を一冊読もうとすると、1ヶ月とか平気で使ってしまいます。それでは、コスパがあまりにも良くないため、次nに本を一冊読まないで読みたいところだけ読むということを実践しました。
本を手に取ると、どうしても一冊全部読まないと気がすまないという完璧主義が働きがちなのですが、実は、一冊読んでも印象に残っている部分は10%程度くらいしかなかったり、その本から欲しかった情報は全体のたった2, 3 章でしかなかったりしたので、それならば最初から読む場所を絞ろうと思って、完璧主義をやめました。 (私はこの完璧主義の克服がかなり難しかった。)
やることはシンプルで、以下のようにやってます。
- この本で何を知りたいかを箇条書きで 3, 4 項目書く。
- 目次を見て、読む章を決める。
- 上記のアウトプットの方法に則って本をよむ。
これのおかげで、本を読む冊数が圧倒的に増えていて、個人的には非常に満足しています。
いままで、この本のあの章が読みたいのに、そこまで行く前に挫折したという経験を何度もしていたのですが、これを実践してからその感覚がなくなりました。
最後に
ここでまとめた話はあくまで私が試行錯誤しながら、なんとなくしっくりきていることで、
当然すべての人にとってのシルバーバレットではありませんし、「俺が考えた最強の勉強法」とかいうものでもありません。
もしかしたら、ここで記載したやり方はどこかで読んだことがあるようなものかもしれません。
ただ、昔から勉強法とかを調べるのが好きで、いろいろ試して続かないことばかりだった結果、自分の性格に適したやりかたを模索して、試行錯誤した結果の形になります。
今後もより学習効果の高い自分にあった方法にアップデートするために改良していけたらなぁと考えています。
P.S. 来年は技術的な記事を書きたいですね。