Photo by Alex Indigo
こんにちは。谷口です。
大企業の早期退職者募集、大規模配置転換のニュースを見て「リストラされないよう手に職つけるべきか」と思ったり、その中でも「これからの時代はITだ、ITエンジニアになれば食いっぱぐれないで済む」と考えたりする人も多いのではないでしょうか。
もちろん、エンジニアを目指すきっかけは人それぞれですし、きっかけ自体は何でもいいのです。
ただ、こういった動機でエンジニアを目指そうとしている人が「これを学んでおけば一生食っていけるプログラミング言語はなんですか!?」みたいな質問を聞いて回っているのを見ると「そんなものないし、そんなことを聞いてくる人はたぶんエンジニアに向いていない」と思うので、今回はそういう話をします。
未経験からITエンジニアを目指したいと考えている人にとって参考になればと思います。
これさえやっておけば食っていける技術って何だろう
おそらくこういった質問をする人は、まだほとんど全然プログラミングの勉強とかしたことがなく、というか今まで大してITに興味を持ったことがない方なのだと思います。で、最低限の勉強で、最大限の利益を得たいと思っている。わかります。勉強って面倒くさいので。
ただ、多少ITに興味がある方だったらわかると思いますが、これひとつ学べば食いっぱぐれないで済む技術なんてありません。というか、このさき10年食っていける技術があるかどうかも、誰にも予測できません。今だって、数年前には存在もしていない、誰も予想だにしていなかった技術やトレンドが主流になってたりしますから。
ここまで読んで、「IT業界ってそんな不安定なのか」と思った人もいるかもしれませんが、そういった意味では不安定だと思います。技術はどんどん進化しているし、情報系の研究をずっとしている人たちが牽引している世界ですから。
ひとまず「エンジニアになりたい」という方は、現時点で需要がある技術の習得を目指すのがよいかと思います。もしくは、やりたい仕事がある企業で使われている技術とか。Web開発をしたい人であれば、Railsとか、JavaScriptとか、Laravelなど…これもいろいろな言語やフレームワークがありますから、一概にこれさえやっておけばOKと言えるものではありませんが。最近は独学で勉強できるサービスが充実してきているので、まずは取り組んでみるとよいのではないでしょうか。
最低限の勉強でやっていけるのか
一生食っていける手に職をつけたい人の場合、たとえばいわゆる士業などを目指したほうが、よほど安定して食っていけると思います。しかしなぜそういった道を目指さないかというと、勉強して資格をとるのに時間がかかるし難しくて大変だからですよね。
ではなぜエンジニアを目指すかというと、おそらくは就業するための資格などがなくて、自分でもできそう、最低限の勉強でできそうに見えたからですよね。
でも、たぶんそういった人が想像しているよりも勉強しなければならないことはずっと多いです。そして、その勉強はこれからエンジニアとしてやっていく限り永遠に終わりません。知識の更新はずっとついてまわります。ひとつのプログラミング言語が多少書けるようになれば一生食っていけるとか、そんな次元の仕事ではありません。
実際、たとえばWeb開発ひとつとっても、まともに実務をこなすには
・Railsを使っている企業なら、Rubyのプログラミングスキルに加えてRailsを使いこなすスキル
・JavaScript(及びJavaScriptフレームワーク)、HTML/CSSのスキル
・SQLやデータベース関連の知識
・Git・GitHubなどバージョン管理システムの知識
・LinuxなどOSの知識
・bashなどシェルスクリプトの知識
・ネットワークやセキュリティなどに関する知識
…などなどの知識が最低でも必要です。
それこそ未経験からエンジニアになろうと思ったら、なる前の勉強も必要ですし、さらに言えば実務に入ってからのほうが学ぶことはもっと多いです。
もっと言うと、中途で未経験からエンジニアを目指す場合、大学・大学院で情報系を専攻・研究してきた上でエンジニアになったような人たちには基本的にかないません。勉強してきた内容の広さも深さも、情報に対する感度もレベルが全然違いますから。それでも、未経験からエンジニアになるのであれば卑屈にならずに学び続けるしかありません。
開発技術以外のスキルについて
加えて、開発業務はプログラミングさえできればできるものではありません。
ほかにもいろいろなスキルが必要ですが、ひとつ重要なのが「課題解決力」です。エンジニアは、プログラミングをするのが仕事ではなく、ITを使って課題解決をするのが仕事です。
で、どんな仕事でもそうだとは思いますが、課題って「すでに自分ができること」で解決できるものばかりじゃないですよね。特にエンジニアの場合、課題解決のために使ったことのない言語やフレームワークやその他いろいろなツールを使わなければならない、という状況はままあります。このとき、手段と目的を履き違えている人は「自分が使った経験があるもの」だけで無理やり解決しようとします。(そしてなかなか解決できない)
エンジニアの仕事では、いろいろな角度から考えた上でベストな解決法を導き出さなければなりません。ですからやはり、最低限プログラミングやITに関する基礎知識があり、その上で新たな情報収集や知識のアップデートができていることが重要となるわけです。
まとめ
ITエンジニアになったら、自動で手に職がついてくるわけではありません。未経験の分野に方向転換をして、自分の手に職をつけてくれるのは、ほかでもない自分自身です。
手に職をつけるというのは、自分でそれ相応の技術を習得するということです。そして、その技術は一朝一夕で身につくレベルのものではありません。どんな職種にも言えますが、誰でもちょっと勉強すればできるようになるレベルのスキルや知識にそれほど高い市場価値はないです。
最低限の勉強・最低限の労力で食いっぱぐれないスキルを身につけたい人は、ITの仕事を目指さないほうがよいのかもしれません。
paiza転職は、転職時のミスマッチをなくし、エンジニアがより技術面にフォーカスしたやりがいある仕事を探せる転職サービスです。プログラミングスキルチェック(コーディングのテスト)を受けて、スコアが一定基準を超えれば、書類選考なしで複数の会社へ応募ができます。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら