仕事になるプログラミングとは?
プログラミングスキルは一生涯役に立つスキルだと言えますが、どういうスキルなのか、イメージばかりが先行し、具体的に理解している方は意外と少ないように感じます。
なにを今更と思う方も多いかと思いますが、まずはプログラミングを習得するとはどういうことか、改めて整理したいと思います。
そもそも、プログラミングとは「プログラミング言語という、コンピューターにも理解ができる“言語”で、コンピューターに指示書を作成すること」になります。
そして、プログラミング言語で書かれたコンピューターへの指示書のことをソースコードと言います。
つまり「ソースコードを記述すること=プログラミング」です。
これもご存知の方が多いと思いますが、実際の人間同士が会話で使う言語にも、日本語、英語、ドイツ語、といった風に様々な種類があるように、プログラミング言語にも、C言語やJava、Pythonなどいくつもの種類があります。
日本語と英語では文法が異なったり、使われる単語が違うように、プログラミング言語も、それぞれで異なった文法や単語を持っているため、基本的には互換性のようなものはありません。
さらに言えば、言語ごとに強み弱みというものがあります。
こういう用途で使うのであれば、このプログラミング言語を選ぶのが一般的、あるいは、この分野ではこのプログラミング言語は絶対に選ばれない、という風な制約もあります。
そのため、「どのプログラミング言語でプログラミングできるようになったか?」が仕事を得る、という意味では非常に重要になります。
もちろん、いずれのプログラミング言語も、コンピューターに指示を出すための言語というところは共通しているため、「プログラミング言語を1つ習得できれば、他のプログラミング言語の習得は比較的簡単」という意見もあります。
実際、いくつものプログラミング言語に精通したITエンジニアは少なくありません。
とはいえ、最初にどのようなプログラミング言語を習得するかは、ITエンジニアとしてのキャリア形成に大きな影響を与えるのは間違いなく、非常に重要なポイントです。
事項で、「仕事を得られるプログラミング言語」をご紹介したいと思います。
習得難易度と年収を星の数で5段階評価
というわけで、仕事を得られるプログラミング言語をいくつか紹介したいと思います。
今回は比較的、将来性があるとみなされているプログラミング言語に絞っており、ここで紹介したプログラミング言語以外にも、様々なプログラミング言語があります。
なお習得難易度の★が多いほど学びにくく、年収の★が多いほど、高年収が期待できるという意味です。
①Java
習得難易度:★★★☆☆
年収:★☆☆☆☆~★★★★★
androidアプリの開発、電化製品などに組み込まれた組み込みシステムの開発、さらには企業向けの大規模システムの開発にも使われる汎用プログラミング言語がJavaです。
様々な場所で利用されているプログラミング言語であるため、Javaが扱えれば、様々な仕事に参加できるため収入が安定する、と言われます。
また様々な場所で使われているということは、非常に高度な技術を持つJavaプログラマーのニーズが高いということでもあり、年収2000万円前後の方もいらっしゃいます。
一方で、Javaは汎用プログラミング言語として学ぶ方も多いため、“並の技術力”では年収が伸びにくく、年収300万円前後やそれ以下の方がいるのも事実です。
このように技術力による年収格差が顕著であり、習得難易度は「普通にソースコードが書ける」レベルに到達するまでは難しくないですが、高年収プレーヤーになりたいと思うと、なかなか道は険しいプログラミング言語と言えます。
なお、Javaは教本や情報サイトの数が多く、プログラミングスクールにおいても、指導可能言語として絶対に入っているプログラミング言語です。
そういった面では、プログラミング初心者にとって学びやすい言語の筆頭かもしれません。
②Python
習得難易度:★★☆☆☆
年収:★★★★☆~★★★★★
ソースコードの書きやすさを武器に欧米を中心に高い人気を持つプログラミング言語がPythonです。
日本ではPythonよりもRubyの方が一般的でしたが、人工知能(AI)開発に強い言語として注目を集めており、国家資格である基本情報技術者試験でもプログラミングの問題で選択できる言語の一つになるなど、急速に広がりを見せています。
もともと扱いやすい言語だったうえに資格試験の出題範囲となったことで学習環境も整備され、Pythonそのもの習得難易度は高くありません。
ただ、Pythonが日本で利用されるのは、人工知能やビックデータ処理システムなど、“高価値システム”である場合が多いです。
そういった“高価値システム”への造詣を深めるのは簡単ではなく、世界的に人材不足が発生しています。
そのこともあり、Pythonは比較的平均年収が高いと言われます。
③Scala
習得難易度:★★☆☆☆
年収:★★★☆☆~★★★★★
Scalaは有力なポストJava言語の一つです。
その特徴はJavaより後発の分、Javaよりソースコードが書きやすいだけでなく、ScalaはJavaと共存、つまり同じ環境で動作し、相互に連携できるという点です。
つまり既存のJavaシステムをScalaで保守・拡張しても一切の悪影響が出ない、ということです。
実際、イギリスの新聞社であるガーディアンは、いままでJavaで構築していたシステムをScalaに移行しています。
今後、ScalaはJavaの後継言語として活躍の場を広げる余地があるだけでなく、現在のところ、圧倒的にJavaより利用できるエンジニアが少ないということもあり、Javaより平均年収が高い傾向があります。
ただし、その分、日本で学ぶための環境(教本の出版数など)は、Javaより劣っている印象を持ちます。
④Kotlin
習得難易度:★★☆☆☆
年収:★★★☆☆~★★★★☆
Kotlinも有力なポストJava言語の一つです。
Javaより書きやすく、Javaと共存できるという点はScalaと同じです。
KotlinのScalaに対する強みはGoogleから「androidアプリ開発の正式対応言語」に認められたことです。
結果、Scalaは日本国内でも話題になり、関連情報を提供するサイトなども増え、Kotlinの方がScalaより多少、学びやすい環境があるように思います。
なお、平均年収的にはJavaよりは高いものの、大規模な企業向けシステムでの採用も多いScalaより、僅かに低いです。
⑤Ruby
習得難易度:★☆☆☆☆
年収:★★☆☆☆~★★★★☆
Ruby日本生まれの世界標準プログラミング言語です。
近年はライバル言語であるPythonなどに押され、人気がなくなっただとか、将来性がないと言われることも多くなりましたが、それでも十分に案件があって、平均年収は500万円を超えていると言われており、学ぶ価値の高いプログラミング言語の一つです。
Rubyの強みは日本生まれの言語であるため(開発者も当然日本人)、PythonやScala 、Kotlinよりもずっと情報が豊富で、学習環境が非常に整っているという点です。
⑥Swift
習得難易度:★★★☆☆
年収:★★★☆☆~★★★★☆
iPhoneやiPad、Macbookといったアップル製品向けアプリの公式開発言語がSwiftです。
一応、Linux系OS上でも動作しますが、実際のところ、アップル製品向けアプリケーション開発以外で使われる場面は極めて稀かと思います。
一時よりシェアを落としたと言えども、iPhoneやiPadには根強い人気があるため、Swiftの仕事も安定して存在しており、学習環境的にもそれなりに整っている、という印象を持ちます。
結局「プログラミングを学べば仕事に困らない」は本当か?
「プログラミングを学べば仕事に困らない」は半分本当、半分嘘だと思います。
すでにお伝えした通り、プログラミングに使われるプログラミング言語には様々なものがあり、ニーズの高いプログラミング言語を習得すれば、仕事に困らないと思いますが、逆にニーズの低いプログラミング言語を習得しても、仕事を得るのは難しいです。
そして、プログラミング言語のニーズは一定ではありません。
Scala やKotlinなどポストJava言語への移行が進んで、Javaのニーズがゼロになる日が来るかもしれません。
逆に、JavaがScala やKotlinのメリットを打ち消すようなバージョンアップを果たし、Scala やKotlinへの移行が下火にする可能性だって否定できません。
つまり、プログラミング学習は「一回、勉強すれば良い」というものではないのです。
そうしたことから、私は「プログラミングは“学び続ければ”仕事に困らない」が正解ではないかと思います。
まとめ:仕事にするには努力は必要
仕事を仕事として成立させるためには、「ニーズがある」ことと、それに「応える手段がある」ことの二点が揃っている必要があります。
その点を理解して、スキルセットを構築していける方であれば、仕事に困らないでしょう。
逆にいえば、なんとなく「時代はITだ」と軽い気持ちでプログラミングを学んだ後、スキルのブラッシュアップをしないでいると、あまり良い仕事に就けないように思います。