プログラマ向けのサイトであるQiitaが発行しているメルマガに、
「先週ストックが多かった投稿ベスト20」という紹介があります。
文字通りQiita上でストックの多かった記事の紹介なのですが、こういった
「今ホットなのはこれだ!」
みたいな記事を見かけると、自分の知らない技術要素や用語がたくさんあって、
このままではソフトウェアの技術者として時代に取り残されてしまうのではないのかと不安になることがあります。
こういう不安が湧いてくると投稿されている技術について片っ端から勉強しないといけないような気がしてくるのですが、しかし現実には時間は有限で、新しい技術の習得に使える時間というのは限られています。
また新しい技術を習得したからと言ってもすぐには使わなかったり、技術自体が陳腐化したり、いざ使ってみるといろいろと嵌りどころがあったりと、必ずしも新しい技術を習得し使うことがプラスになるとは限りません。
しかし技術者である以上、貪欲に技術の習得しようという意識がなくなってしまえば
知らず知らずのうちに時代に取り残された技術者になっているというのもまた事実だと思います。
※ただし既存の技術についても圧倒的な知識や能力を持っていれば別だと思いますが。
では、
「多くの情報に飲み込まれることなく、技術力を伸ばしていくにはどうすればよいか?」
これについては、
問題意識を持った上で情報をインプットする
というのが今の自分の考えです。
■理由
問題意識を持っている状態で情報をインプットすると、情報の吸収率が高いからです。
簡単に言うと情報に飢えているかどうかです。
飢えていない状態で情報をインプットしても、あまり頭に入って来ず、結局時間やお金を無駄にしてしまうことが多いです。
「いま流行ってるから」
「次はこの技術がきそうだから」
「この技術を覚えておけばお金になるから」
新しく技術の勉強を始めるときに、こういった動機からじめてしまうことがよくあります。
それ自体は悪いことではないと思いますが、たいていの場合こういった動機で始めた勉強は長続きせずに途中で挫折してしまいます。
そうではなく必要性にかられて、明確な目的や問題意識を抱えた状態で技術を学ぶときには効率的に技術を習得でき、また単に知識として学ぶだけではなく、
「技術が体に身に付く」
という状態になります。
しかし、問題意識が芽生えなければ効率的に学習ができない状態のままでいることになります。
「ではどうすれば情報に飢えた状態になれるのか?」
これには、
「まず自分の頭で考え、行動してみる」
というのが今の自分なりの答えです。
例えば、自分の知っている知識だけを使って何かを作ろうとするとき、必ず限界がやってきて
「ここの仕組みどうやったら実現できるんだろう?」
「とりあえず自分なりに実装はできたけど、ソースコードは汚いしみんなどうやってるんだろう?」
「この機能を実現しようとすると、別の問題が発生してしまうけどどう解決するべきなんだろう?」
といった疑問が芽生えてきます。
この疑問が芽生えた状態が問題意識を持っている状態だと思います。
そしてこういった疑問を解決したいという気持ちを抱えた上で情報をインプットしたとき、
効率的に情報を吸収できます。
当たり前のことではありますが、自分はよく技術だけに目がいってしまって技術を学ぶ目的や技術の持つ本質を理解しないままの状態になってしまうことがあります。
ホットな技術を学ぶのは意味のあることですが、限られた時間を有効に使うためにも自分の中に問題意識を持った上で学習し、技術の本質を見落とさないように心がけていきたいです。