自分にあった勉強法について

この記事の目的は?

自主的なプログラミングの勉強を初めて、2, 3ヶ月ほどが経ちました。

その間に得られた「勉強に関する知見」を自分なりに整理し、まとめることで、今後の自分のスタイルの確立に役立てるためのエントリです。

 

 

勉強の方法について

最近までの自分にとって「勉強」とは、「インプット」のことでした。

プログラムができるようになりたければ、プログラムの本を読む。

言語について知りたければ、言語の本を読む。

練習としてサンプルコードを写経することはあっても、それはあくまで補助的な手段で、「知識を貯めること」が勉強の本質だと思っていました。

 

ですがここ最近まで勉強を続けた実感としては、「技術の勉強」とはむしろ「アウトプット」のことではないかと思うようになりました。

知識が重要なのは間違いないのですが、技術者としてのレベルアップに必要なのは「技術を使う練習」なのではないでしょうか。

 

そう、「勉強」ではなく「練習」。

スポーツや芸術と同じです。

体を使って覚えなければ、いつまで経っても覚えられないのです。

 

そんなわけで、何度か前のエントリで「こんな本を読みます!」といくつか挙げましたが、最近はそれらを読むことに耽るよりも、とにかく手を動かすことを重視しています。

 

インプットを蔑ろにしていいという話ではありません。もちろん知らない知識を吸収することは重要です。ですがそれ以上に「実際に知識を使う時間」が大事という話です。

 

そしてこれは自分だけかもしれませんが、知識を吸収することを目的とした勉強は、なんというか長続きしません。

「インプットしなければならない」という気持ちでいると、知識を吸収することが目的になってしまい、「何のための知識なのか」という点が置き去りにされてしまう気がしています。

それが置き去りにされてしまうと、知識が定着しにくい気がするのです。

 

学校でも、数学の授業に対して「三角関数とか微分積分とか将来使わないじゃん」という人がいたと思いますが、そういう人は多分「意味のない(意味を感じられない)知識を覚えるのが苦手な人」だったのではないかと思います。

 

学生時代の自分はそういうこともなく、使う使わないに関わらず覚えられたほうが優秀だと無条件に信じていたのですが、最近は「そんなわけねーじゃん」と思っています。

意味があると思えない知識を覚えられないのは不思議ではないし、覚えられない人が劣っているわけでもありません。むしろ闇雲に暗記するより、背景を理解してから覚えようとしている分、合理的な気がします。

 

話が逸れましたが、大事なのはインプットに気を取られることではなく「何をアウトプットしたいのか」だと思います。

そしてここ数ヶ月の実感としては、良質なアウトプットに集中していれば自然と必要最低限のインプットは集まってきます。何かに取り組んでいれば、自力で解決できないものは自ずと浮かび上がってくるし、向上心があれば意識していなくても情報は集められます。

 

どちらが欠けてもいけないとは思いますが、インプットとアウトプットの比率はアウトプットの方が高くていいんじゃないかなー、というのが今の自分の考えです。

 

勉強の時間帯について

自分は社会人なので、勉強に充てられる時間は限られています。

平日は仕事からの帰宅後か、通勤中、仕事の休憩中。

休日はその時々で予定が変わるので不定です。

なのでここでは、時間が決まっていて比較的計画が立てやすい平日について考えてみます。

 

先述したように、今の自分にとってはインプットよりもアウトプットの方が重要です。

ですが平日にプログラミングのアウトプットが出来る時間帯は、仕事からの帰宅後しかありません。プログラミングの練習をするにはパソコンが必要だからです。

スマホでもやれるみたいですが、あの小さい端末ではコーディングしづらすぎて自分には出来ません。

 

とはいえそれ以外の時間帯……通勤中や仕事の休憩中も有効活用はしたいです。

なので最近は、そういった時間帯に興味のある技術ブログや記事なんかを読むようにしています。 いわば完全インプットの時間帯です。

 

インプットしている中で使えそうな知識を発見してもすぐに試すことが出来ないのは少々困りものですが、概ねこのパターンで回すようにしてからはインプットとアウトプットのバランスが少しずつよくなってきたかなーと思っています。

 

やりたいことをやりたいときにやる。

IT業界を楽しく生き抜くための「つまみぐい勉強法」 (技評SE選書)

IT業界を楽しく生き抜くための「つまみぐい勉強法」 (技評SE選書)

 

上の本は実際に読んだわけじゃないのですが、紹介やレビューの内容から、おそらく今の自分の考えに近いことが書かれているのではないかなーと思っています。

それがつまり、「やりたいことをやりたいときにやる」です。

 

勉強していて強く感じたのが、「興味のあるものはコロコロと入れ替わる」ということでした。

かつての自分ならば、他のものに興味が移ったとしても、いましている勉強を続けようとしていました。一度決めたことはやり通さなければならないという刷り込みもあったと思います。

ですが最近はそれでは続かないことがわかってきたので、面白そうなものがあればさっさとそっちに舵を切るようにしています。

既に興味がなくなったものをつまらないと思いながら勉強するより、楽しいことを楽しんで勉強するほうが、人生的にも健全です。

 

そして突然舵取りを変えても、いまのところ「自分の腕で食っていく」という目標を逸れてしまったという感じはありません。

プログラミングに関するものであれば、何も考えずに面白そうなものに飛びついていても、きっとそれが血肉になってくれるんだろうなーという気がしています。

IT業界は広範な知識が必要なので、多少の寄り道は無駄にはならないでしょう。

 

まとめ

スタイルの確立についてまとめるなら、こんな感じでしょうか。

 

  • インプットよりもアウトプット重視
  • 通勤中や空き時間はインプット、帰宅後はアウトプットに集中
  • やりたいことをやりたいときにやる

 

少しずつ、自分との向き合い方が見えてきたような気がします。

今後もこの調子で、少しずつエンジニアとしての自分を確立していきたいですね。