最近はエンジニアの数が増えてきています。
全く別の業界で働いていた人が、急にエンジニアに転職するというのは以前ではありえませんでしたが、最近ではそれが結構当たり前になってきました。
ツイッターなどでもよく「駆け出しエンジニア」を見かけます。
これはエンジニア業界にとっては非常に良いことです。
人が増えていく人気の業界となり、以前は「オタクの集団」と蔑まれていましたがその雰囲気は一切なくなりました。
そう言う意味で、このように多くの人がエンジニアを志すようになったというのは喜ぶべきことです。
しかし、人が増えてきたということは、エンジニアになったらそれで全てOKではないということです。
他業界から運良くエンジニアになれたとしても、長く活躍できるのかはまた別問題です。
ずっと給料が低いまま長時間労働をしているエンジニアも多くいます。
最近エンジニアになった人は、もちろんそうなりたくてエンジニアになったわけではないと思います。
リモートワークをしたい、多くの給料を得たい、フリーランスとして働きたい、などのような思いももっているかと思います。
それらを実現するためには、エンジニアとして成長を続けていく必要があります。
技術があり、任せておいて大丈夫という状態になれば、おのずと色々なプロジェクト、色々な会社から引っ張りだこになれます。
ではどのような技術を学んでいくべきなのでしょうか。
色々あるのですが、長期間活躍したいのであれば必ず学んでおくべきことが1つあります。
それはコンピューターサイエンスの基礎についてです。
プログラミングの技術は日進月歩で、どんどん新しいものがでてきます。
エンジニアとして活躍してくためには、もちろんそれらについていく必要があります。
しかし、コンピューターサイエンスの基礎というのは年月が経っても変わることがないですし、一度学んでしまえばこれから死ぬまでその知識を使うことができます。
そういう意味で非常にコスパがいい勉強と言えます。
また、コンピューターサイエンスの基礎を理解していれば、新しい何かを学ぶ時にもその労力が少なくて済みます。
また、Googleなどの有名なIT企業のエンジニアの多くはコンピューターサイエンスの基礎は身につけています。逆にそれが身についていないとそのような企業に入ることはできませんし、長い目で見た際にもらえる給料(生涯賃金)に大きな差がでます。
別にGoogleに行きたいわけではない、おれはフリーランスになりたいんだ、というような人はコンピューターサイエンスを学ばなくてよいのでしょうか?
答えはNoです。
フリーランスになるということは、全てを自分の責任で行う必要があります。
分からないから先輩に助けてもらうということはあり得ません。
コンピューターサイエンスの基礎をまなんでおけば、想定外のバグが発生したりネットワーク関連での訳のわからないバグが起きたとしてもなんとなく当たりがつきます。
しかしコンピューターサイエンスを学んでおかないとその当たりがつかず、バグを解消できず、クライアントの信頼を失い仕事を失う可能性があります。
フリーランスであろうと企業で働こうと、エンジニアとして行きていくためにはコンピューターサイエンスの基礎は必ず学ばなくてはいけません。
そうと分かっていながらも、多くのエンジニアはついついコンピュータサイエンスの勉強を後回しにしてしまいがちです。
それはあなたにとってある意味チャンスです。
早めにコンピューターサイエンスの基礎を身につけてしまえば、希少な人材になれますし、多くの一般的なエンジニアを一気に追い抜いてしまえます。
仕事が終わってついつい休みたくなるのは分かりますが、そこをちょっと踏ん張ってコンピュータサイエンスの勉強をしてみてください。
長い目で見たら絶対「あのときコンピュータサイエンスの基礎を身につけておいてよかった」と思う日が来るはずです。
先ほども少し言いましたが、コンピューターサイエンスの基礎は一生使えるものです。なので早めに身につけてしまった方が間違いなく得です。
実際にどうやってコンピュータサイエンスの基礎を身につけるかですが、もっともいいのは大学院に通うことです。
とはいってもなかなかその時間をとるのは厳しいですし、コスパもよくありません。(大学院では基礎だけでなく応用もまなぶため。また研究も行う必要があり、エンジニアとして活躍するという観点からはあまり意味のないものになってしまう可能性があります。)
エンジニアとして活躍していくためのコンピュータサイエンスの基礎であれば、独学でも十分勉強できます。
コンピュータサイエンスに関する本はいくつも出版されていますが、個人的に最もおすすめなのが『入門 コンピュータ科学 ITを支える技術と理論の基礎知識』という本です。
コンピュータサイエンスを学んだことがない人向けに書かれた本なので、情報学科出身以外の人にとっても非常に読みやすく分かりやすいです。
それでいて、ちゃんと基礎が身につきます。この一冊だけをちゃんと理解できれば、エンジニアとして長く活躍していくには十分です。
コンピュータサイエンスの基礎を身につけるためには、あれやこれやに手を出すのではなく、この本一冊だけをやるべきだと個人的には思います。
最終的に少し話が逸れて本の宣伝みたいになってしまいましたが、とにかく言いたいのは早めにコンピュータサイエンスの基礎をみにつけるべきだということです。
この1つだけで、周りとの差がつきます。
騙されたと思って一度腰を据えてコンピュタサイエンスの基礎を勉強してみてください。