こんにちは。倉内です。
初めてプログラミングを学ぶとき、どのプログラミング言語を選ぶといいでしょうか?
とりあえず体験してみたいだけであれば学習コストが低いものを選ぶのがいいと思います。また、やりたいこと(たとえば、Webサービス作りたい、機械学習やりたい、ゲーム開発したいなど)があるなら、もちろんそれを実現するのに適した言語やフレームワーク、周辺技術を学ぶほうがいいでしょう。楽しく学び続けるためには大切なことです。
しかし、プログラミングを学習して未経験からITエンジニアを目指そうと考えているなら、「そのプログラミング言語は業務において需要があるか?」つまり「未経験でも応募できる求人が多いか?」という視点を持ってみてもいいかもしれません。特に、新卒や第二新卒ではなく中途採用で未経験からITエンジニアになる場合、実務経験を売りに転職できるわけではないので、需要が極端に少ないものを学んでもそもそも応募できる求人がないという状況におちいる可能性があります。
そこで今回は、paiza転職およびEN:TRY*1の求人データからどんな言語やフレームワークの需要が高いかを見ていこうと思います。
エンジニア求人から見る需要
少し前ですとプログラミング言語の場合、「初めて学ぶ人はC言語から始めるのじゃ!」「初心者がとっつきやすいのはPHP」と言う人が多かった印象がありますが、最近はRubyやPythonを勧める人も多くなってきたように思います。
Webサービスの開発ではRuby(paizaもRubyで作られています)、機械学習ではPython(データを扱うのに便利なライブラリなどが豊富)と言われることが多いです。また、この2つの言語は初めてプログラミングを学ぶ人でも理解しやすく、学習においても人気が高いです。
一方で、実際に求人募集が多い言語はどれでしょうか。これからpaizaで掲載している求人をもとに言語別の割合を見ていきましょう。
なお、今回は1つの求人票に複数の言語が書かれている場合は重複でカウントしています。集計日は2020年2月4日です。
ちなみにpaizaはITエンジニアのための就職・転職サイトなので、プログラミング言語、フレームワークだけでなく、「イヤホンOK」「1920×1200以上のモニター支給」「副業OK」のような条件での絞り込みも可能になっています。
プログラミング言語
前提として、現在paizaで求人検索する際に選択できる全プログラミング言語は以下のとおりです。求人数は常に変動しているので、検索結果が調査時点で0件のものもあります。
なお、集計ではPython2とPython3、HTML5+CSS3とHTML+CSSは合算しています。
Java、C、C++、C#、PHP、Ruby、Python2、Python3、Perl、Objective-C、ActionScript、R言語、JavaScript、HTML5+CSS3、HTML+CSS、SQL、PL/SQL、CoffeeScript、Haml、Sass、Scala、Erlang、Go言語、Swift、VB、COBOL、ABAP、Kotlin、Rust、AHDL、Bash、Clojure、ClojureScript、Common Lisp、CUDA、C/C++、ECMAScript、Elixir、F#、Groovy、Haskell、Lua、MATLAB、Nim、Objective、Caml (OCaml)、Prolog、Scheme、TypeScript、Verilog HDL、VHDL
paiza転職(経験者採用)の結果
まず経験者採用の求人から見てみます。結構ばらけているのですが、一番多かったのはJavaScriptでした。JavaScriptはフロントエンドの開発には欠かせない言語ですね。
そのあとJava、PHP、HTML+CSSとここまでが10%を超えていて、続いてPython、C#、Rubyとなっています。
EN:TRY(経験が浅い・未経験者の採用)の結果
つづいて経験が浅い方、業界未経験の方でも応募可能な求人を見てみます。
こちらではJavaがもっとも多いという結果になりました。そのあとにPHP、C#(意外にも)、JavaScriptと続きます。PythonとRubyはCやC++よりも割合が少ないですね。
これらはあくまでpaizaの求人データなので、他のサービスではまた違った結果が出てくるかもしれませんが、どちらにしてもJavaとPHPの需要が高いというのは言えるのではないかと思います。
フレームワーク
フレームワークはいくつかの言語のものをピックアップしてご紹介します。まずはJavaとPHPを見てみましょう。
JavaはSpringが一番多く、次いでStrutsとなっています。どちらもMVC(Model View Controller)アーキテクチャが適用されているフレームワークです。
Strutsは歴史が長く有名なフレームワークですが、脆弱性の問題が取り上げられた2017年以降は別のフレームワークを推奨する流れがあり、今から学ぶのであればSpringがよいかなと思います。
PHPはやはりLaravelがトップになりました。Laravelは初心者でも取り組みやすいこともあり人気も高いフレームワークです。また、Cake PHPは実績が豊富で情報が多いのでこちらもおすすめです。
つづいて、RubyとPythonです。
RubyはRuby on Rails、PythonはDjangoがほぼ独占という結果となりました。経験者採用の求人ではFlaskも需要がありますね。
最後にJavaScriptのフレームワークを見てみます。(Bootstrapをここに含めるのはちょっと違うのですが…よく使われるフレームワークなので入れておきます)
JavaScriptはフレームワークの種類が多いですね。ただ、jQuery、Node.js、Vue.js、Reactあたりの人気どころを押さえておけばまず間違いないと思います。
ここまでの結果を見て、エンジニアの方は「まあそうだろうね」という感想を持つと思いますが、もしかしたら今から初めてプログラミングを勉強してIT業界に入っていくという方は驚く部分もあったかもしれません。
たとえば、あまり「Javaがいいよ!Javaやろう!」って聞かないですもんね。(スクールを検討している・通っている人は聞いたことあると思いますが)
Javaに限らずPHPもですが、とにかく案件数が多いという特徴があります。受託開発が多いですが、Webサービスの開発でもかなり採用実績が多いので、自社サービスの開発で使われている例もたくさんあります。また、最近はKotlinが人気のAndroidアプリ開発ですが、Javaもまだまだ使われています。
次からはEN:TRYの求人で需要が高かったJavaとPHPをピックアップして、それらを学ぶメリットと学習方法について紹介します。
Javaの学習方法
Javaに「BtoBの業務システムで使われている」というイメージを持っている方は、「うーん…Javaかぁ…」と思うかもしれません。
安定稼働の実績が豊富であり、堅牢性が高いため、確かに金融系のシステムや公共性の高いシステムで採用されることが多いのは間違いありません。
しかしJavaはOSに依存せず動作するという特徴があり、しかもRubyやPythonのようなインタプリタ型言語に比べて実行速度も速いため、さきほど述べたとおりWebサービスやAndoroidアプリなどでも広く利用されています。
例を挙げればきりがないですが、TwitterやEvernote、楽天もJavaで作られています。
正直なところ、Javaは習得するのが難しめの言語です。初めてプログラミングをやる方がJavaをやり始めると多少なりとも大変だと感じるかもしれません。
ただ、プログラミング初心者にこそJavaをおすすめしたい理由があります。具体的には…
- 記述のルールが厳しいためプログラミングの基礎固めによい
- データ型やクラスの概念を確実に身につけられる
- 求人数・案件数がダントツで多い
- 求人数が多いということは開発者も多いので、教えてもらえる機会が多い
- Javaを最初に習得すればそのあと他の言語を学ぶハードルが下がる
といったところでしょうか。もちろん将来的にどうなるかは分かりませんが…少なくとも数年で需要がなくなるとは考えにくいので学習して損はないでしょう。
(参考)【2020年最新】Javaの需要と今後の将来性を徹底解説 - アトオシ
実際に私自身、大学の授業と新卒の研修でJavaを学びました。難しく感じることもありましたが、おかげで研究で扱ったC#やpaizaのスキルチェック問題を解くのに初めて手を出したPythonも習得しやすかったのではないかと思います。
paizaラーニングの「Java入門編」講座では、動画で分かりやすく説明しながらブラウザ上で演習課題も解くことができます。特に初めてJavaに触れる方にはおすすめの学習法です。
また、入門編が終わったあとは、JavaでのWebアプリケーション開発を環境構築なしで試せる「Webアプリ開発入門 Servlet/JSP編」もぜひ受講してみてください。
Javaをもっと勉強したい方は以下の記事も参考にしてください。
PHPの学習方法
PHPはサーバサイドの開発で広く使われている言語で、Laravelというフレームワークのおかげでまた人気が上がってきています。
PHPは文法が覚えやすく、理解もしやすいため初心者にもおすすめの言語と言われています。PHPも入門編の講座がありますのでご紹介します。
また、Laravelを学べる講座やWebアプリケーション作成ができる講座も公開しています。開発環境を整えなくてもブラウザ上ですべてコードを書けるので、「ちょっと興味が出てきた…」という方はぜひやってみてください。
ちなみにJavaとPHPはもちろん、主要なプログラミング言語で問題を解けるゲームもご用意しています。
基本文法は反復練習をしてしっかり定着させておくことで、そのあとの少し発展的な内容(クラスやメソッド、関数など)をやるときに楽になります。ぜひ遊んでみてください。
未経験からITエンジニアになるための準備
未経験から独学で、もしくはスクールなどに通って勉強をして、ITエンジニアになった方はもちろんたくさんいらっしゃいます。
そういった方たちに共通しているのは、継続した学習とアウトプットをたくさんおこなっているという点でしょう。弊社にも実務未経験からエンジニアとして入社した人がいます。その人がどんなことをやっていたかは以下の記事でお伝えしています。
一方でなかなかITエンジニアになるという目標を実現できずにいる人もいらっしゃいます。そういう場合は、求人数が多かったり未経験者でも歓迎してる求人を積極的に見つけて受けてみたりといったように少し視点を変えてみるのも大切です。
「EN:TRY」は、開発経験がない未経験者や若手エンジニアでも応募できる求人情報を中心に掲載しています。スキルチェック問題を解いて、スコアが一定基準を超えれば、事前の書類選考なしで複数求人へ応募できます。
まとめ
未経験からITエンジニアを目指している人が学習するといいプログラミング言語とフレームワークを「需要の高いものを選ぶ」という視点で見てきました。
もちろんやりたいことが明確でそれを目指す!という強い意志がある場合は別ですが、何を勉強しようか悩んでいる、もしくは転職活動があまりうまくいかず困っているならこういう選び方もあると思っていただけるとよいかと思います。
どの職種でもそうかもしれませんが、実務を通して学べること、もっと言うと実務でしか学べないことというのもたくさんあります。
JavaやPHPは長いあいだ使われている言語ですし、情報量もかなり多いので調べたらたいていの答えが出てくるのも初心者にとってはありがたいですね。コミュニティでもJavaは回答してくれる人が多く、参考書もレベルに合わせてたくさん出版されています。
今回は最初に学ぶプログラミング言語として需要の高い言語を選び、ITエンジニアになって実務経験を積むことを重視するという話をしてきました。そして経験を積んでみて「やっぱりPython使って機械学習やりたい!」と思ったら、今度はやりたいことを優先して転職活動してみるとよいでしょう。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら
*1:paizaが運営する、実務経験が浅い方および未経験の方向けの転職サービスのこと