Photo by rhodesj
こんにちは。倉内です。
先日米ガートナーから「先進テクノロジのハイプ・サイクル:2019年」が発表されました。ハイプ・サイクルとは、ガートナー社が作り出した、特定の技術の成熟度・採用度・社会への適用度を示す図のことです。
引き続きAIに関する技術は多く挙げられていますが、2018年版にはあった「ディープ・ラーニング」「ブロックチェーン」は2019年版からは消えました。
先端技術だけに限らず、IT技術って本当に移り変わりが早いですよね。とりわけWeb開発に関する技術は変化が早くて、10年と言わず5年もすればトレンドが変わる世界です。トレンドでなくなったからと言ってその技術がすぐ消えてしまうことはありませんが、だんだん使われなくなりいずれは消えていきます。
そこで今回は、ここ10~15年くらいのIT技術のトレンドを見ながら、これからITエンジニアを目指す方が技術を学ぶ上で知っておいたほうがいいことをお伝えします。
技術トレンドの変化
今回はトレンドの変化の指標として、Googleトレンドのグラフを用います。
プログラミング言語
・Web開発で利用される言語のトレンド
インターネットがはやり出したころ、リアルタイムに動的処理が実現できることで人気になったのがPerl(1986年)でした。その少しあとに登場したPHP(1995年)は今でも多くのWebサービスの開発に利用されています。
そしてRuby(とRuby on Rails)の人気が高くなり、今でも「Web開発を始めるならRubyを学ぼう」と初心者へのおすすめ言語として挙げられることも多いです。
また、登場は1991年ですが近年機械学習で注目が集まったPythonは、学習のしやすさからWeb開発においても人気が高い言語です。トレンドのグラフを見るとこの5言語の中では現在トップの人気を誇っています。
ここにJavaScript(1995年)を並べるか迷いましたが、Web開発(フロントエンド)に欠かせないので入れてみました。JavaScriptは長い間人気のある言語で、変化という意味ではJavaScriptの利用のされ方を見るほうが面白いですね。
昔はダイナミックHTML(DHTML)の実現のために使われたり、Ajaxという手法がはやったりしました。フレームワーク(Angular、Vue.jsなど)やライブラリ(jQuery、Reactなど)も豊富です。
・スマホアプリ開発で利用される言語のトレンド
次にスマホアプリの開発で使われる言語を見ていきます。まず、iPhoneアプリの開発で使われるObjective-CとSwiftです。
C言語をベースにしたObjective-Cの登場は1983年と古く、以前はiPhoneアプリ開発といえばObjective-C一択でしたが、グラフを見て分かるとおり2014年にSwiftが登場して以降その人気は一転しました。
続いてAndoroidアプリ開発に使われるJavaとKotlinですが…
一応グラフにしてみたもののJavaがAndoroidアプリ開発だけでなく、大規模な業務システムからWebサービス、家電などの組み込みソフトウェアの開発などなど用途が広いため比較が難しいですね。
Javaの人気(というか需要)は長い間続いていますが、これもこのさき永遠というわけではないと思います。ただ、現時点では求人数が圧倒的に多いのは事実です。
Kotlinは2011年に登場した新しい言語です。Javaとの比較のグラフではよく分かりませんが、単体でトレンドを見てみると徐々に人気が上がってきています。
Webアプリケーションフレームワーク
フレームワークは言語よりもトレンドサイクルが短く、数年で新しいものが登場します。
それぞれ特徴やメリット・デメリットがあるので横並びで簡単に比較はできないのですが、単純に検索キーワードとしての比較をしてみると、たとえばPHPの主なフレームワークでは以下のようなグラフになります。
CakePHPとLaravelの逆転がはっきり分かりますね。Laravelの登場で近年PHPの人気がまた上がってきているとも言われています。
Web開発技術の習得で大切なこと
IT技術のトレンドの変遷を見ると、「これ一択!」と言われていたものでも、時が経つと思ってもみなかった新しい技術に取って代わられるということが分かります。では、ITエンジニアはそんな変化の激しい中で走り続けるには何を大切にすべきでしょうか?
基礎固めとスキルのアップデート
まず「技術トレンドは時とともに変わる」ことを前提として受け入れます。Web開発に携わっているなら、当然仕事で使う技術も変わるでしょう。
そのため「この技術を習得しておけば絶対に安泰」というものは残念ながらありません。
むしろ今の時代、技術の変化にまったく対応せずとどまり続ける(そういう組織に居続ける)ほうが危険で、ITエンジニアとしてのスキルやキャリアを磨いていきたいなら新しいことを学び続けるしかありません。
ただ、だからといってコンピュータOSの基本的な仕組み、ネットワーク(通信)の仕組み、アルゴリズムなど本当に基礎となる部分は大きくは変わっていません。
Webアプリケーションの基本構成を見てみても同様です。サーバーはクラウドが主流に、モバイル端末はガラケーからスマホに…といった変化はあってもアプリケーションの構成は別物になったわけではありません。
基礎的なところは、初心者にとって手をつけづらい分野かもしれませんが、paizaラーニングでは「Web技術入門編」、「Linux入門編」、「アルゴリズム入門編」などプログラミング以外の学習コースも公開しています。
実際にWebブラウザ上で手を動かしながら、動画講座で学ぶことができるので苦手意識がある方にもおすすめです。
基礎をしっかり身につけておけば、自分のスキルをアップデートする際に効率よく学び直すことができます。
学び続けるモチベーションを保つ
特に未経験からITエンジニアを目指している方は、現職を続けながら帰宅後や休日にプログラミング学習に取り組んでいる方も多いと思うので、モチベーションを高く保つ大変さはよく理解していると思います。
ITエンジニアになってからもそれは同様です。ただ、「仕事のためにやる」だけでは続けるのが難しいですし、嫌になってしまうので工夫が必要です。
たとえば、スマホでネットをなんとなく見る時間をゆるく技術情報を収集する時間にあててみるとか、勉強会に参加してみる(社内で勉強会が開催されている会社を選んでみる)とか。TwitterなどSNSで同じ志を持つ方と繋がったりしてモチベーションを保っている人もよくお見かけします。
ITエンジニアの仕事は今持っているスキルや知識だけでは戦っていけないため、少しずつでも新しい情報を取り入れて武器を増やしていきましょう。
また、何か作りたいものがあってそれを実現するために必要なことを学ぶというやり方もおすすめです。インプットと同じかそれ以上にアウトプットは大事ですからね!
まとめ
IT技術のトレンドの移り変わりを見ながら、その変化に対応するにはどうしたらいいかということを考えてきました。
今のところ「ITエンジニアになる」だけであれば、ITエンジニアの需要はずっと高いですしそう難しくはないかもしれません。
しかし、10年どころか5年先もどうなっているか分からない業界で、やりたいことをやってそこそこいいお給料をもらって…というのを実現したいなら、個人のスキルを高めていくしかないのかなと思います。
逆に言うと自分がやったらやっただけ(スキルアップした分だけ)新しいこと・面白いことに挑戦できるチャンスがあるというのは、IT業界の面白いところだと言えるでしょう。
なお、開発経験がない人・少ない人でも応募できる若手チャレンジ求人を中心に掲載しているEN:TRYでは、コーディングスキルを測るスキルチェックでプログラミング問題を解いてランクを獲得すれば求人へ応募可能で、書類選考なしで面接・面談へ進めます。
企業選びや面接対策などはEN:TRYでもお手伝いしますので、ぜひ業務未経験からITエンジニア・プログラマを目指す人のための転職サイト【EN:TRY】EN:TRY運営事務局の担当者にご相談ください。
詳しくはこちら
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。