新人が勉強するべきなのは基盤技術

エンジニアが技術的なスキルを勉強する時、この3種類の勉強になると思う。

  1. その技術自身を勉強する
  2. 新しい技術を勉強する
  3. 基盤の技術を勉強する

その技術自身を勉強するってのは、ruby on railsを使って開発するのであれば、
railsを勉強するって事まあ、その技術を勉強しろよーって事で、普通にやってると思う。


新しい技術を勉強するというのは、新しい事をやるって事、最近出た技術という
意味ではなくて、自分にとって新しい技術を勉強するって意味も含んでるつもり
たとえば、C言語を非常にマスターしたけど、オブジェクト指向プログラミングが
わからないエンジニアが、それを勉強する為にrubyを勉強するとか。
rubyプログラマ関数型プログラミングを勉強しようとlisp処理系使い出すとか。
今まで自分になかった要素を取り込む事で、これまでと違った行動が出来るようになる。

んで、今回言いたいのは基盤の技術を勉強するという事。
自分が今使っている技術が利用しているさらに基礎の技術を勉強する。
たとえば、Railsを使っているならrubyを勉強する。
rubyを使っているなら、GCって何?とかC言語自身を勉強する。
Webプログラミングであればブラウザの勉強したりTCP/IPを勉強したり。
TCP/IPを勉強したらそもそもその情報はどうやって送ってるのか〜とかさらに下層を勉強する。
CPUがなぜ計算をしてくれるのか、メモリにはなぜデータが保存できるのか。
どんどん深く掘り込んでいく。


今自分が開発する上で、基礎の技術が必要になる事は少ないだろうけど、
自分がトラブルを体験した時、より深いラインから可能性を検討できるというのは非常に
武器になる。
後、新しい事も基本的には基礎の上に成り立っているので勉強の効率がよくなる。


最低限、基本情報処理試験の勉強はしよう。
そして、出来ればもっと深く掘り下げて欲しい。
基盤の勉強って、基礎だと思うけど、入門じゃないんだよね。
私はいまだに勉強してるし、話してて凄いスキルあるなあと思う人も
「今これ勉強してるんだよね〜」って聞くことも多い。
たぶん、基礎勉強は後10年は終わらないだろうし、20年掛けて終わるのかも自信が無い。


って、ここまで書いたけどうまくまとめられなかった。
とりあえず、基礎を勉強しる!とだけ言いたかったのですが。