プログラミング言語をこれから学ぼうと考える人にとって、知りたいことはたくさんあると思います。
プログラミング言語にはどんな種類があり、その先にはどんな仕事があるのか、プログラミング言語ごとの収入レベル、どんなキャリアアップパターンがあるかなどです。
本記事では、プログラミング言語に関して初心者の方が、言語の種類やその先の仕事、収入、キャリアコースが理解できるように解説します。
① プログラミング言語の種類
② プログラミング言語ごとの収入相場
③ プログラマーのキャリアアップ
Contents
1. プログラミング言語とは
プログラミング言語とは、コンピューターが理解できる言葉で命令するために記述された形式言語です。その時代ごとに流行りがあり、どのプログラミング言語を学ぶかで収入や仕事領域が変わってきます。
2. プログラミング言語の種類
プログラミング言語は、様々な種類があります。ここでは、言語ごとの特性を解説します。
2-1. HTML
1993年に開発されたHTMLは、Hyper Text Markup Language(ハイパーテキストマークアップランゲージ)の略です。HTMLは、Web系プログラミングを学ぶ時に誰もが最初に学ぶものです。
2-2. CSS
CSSとは、Cascading Style Sheets(カスケーディング・スタイル・シート)の略です。Webページのスタイルを指定する言語で、HTMLと組み合わせて使用します。
HTMLは情報の構造を定義しますが、CSSはモニター画面に表示される時の文字の色、背景の色、サイズ、レイアウトデザインなどを指定できます。
2-3. JavaScript
JavaScript(ジャバスクリプト)は、非常に人気のプログラミング言語です。Web上での複雑な機能が実行可能になる特性があります。以下のような機能があります。Javaと名称は似ていますが、内容は全く異なるプログラミング言語です。
① 更新されたコンテンツを定期的に表示する
② 2D/3Dグラフィックのアニメーションを表示する
③ インタラクティブな地図を表示する
HTMLとCSSが組み合わされてWebページが構築されると、JavaScriptはブラウザーのJavaScriptエンジンによって実行されます。JavaScriptはAPI(Application Programming Interface)によって強力な力を与えられ、 動的にHTMLとCSSを修正し、ユーザーインターフェイスを更新します。
Webサイトの上部メイン画像部分がスライドショーとして動く機能が流行っていますが、あれはjQueryというJavaScriptを使い易いように拡張してくれているJavaScriptのライブラリです。
2-4. PHP
PHPは、動的にWebページを生成できるサーバーサイドのスクリプト言語です。以下のような特徴があります。
① 多くのWebサービスで使用されている人気のプログラミング言語
② 初心者が勉強を始めやすいプログラミング言語
③ 動作確認がしやすい
④ HTMLの中で簡単にコードを動かすことができる
⑤ サーバーサイドのプログラミング言語
⑥ オブジェクト指向にも対応
⑦ データベース接続が容易
2-5. Ruby
1995年に一般公開されたRubyは、Matzことまつもとゆきひろ氏が、Perl、Smalltalk、Eiffel、Ada、Lispの一部をブレンドしたプログラミング言語です。以下のような特徴があります。
① エラーを処理するための例外処理機構を備えている
② マークスイープ方式のガベージコレクション機能がある
③ CからRubyを呼び出すAPIがあるため、C拡張を簡単に書くことができる
④ OSに依存しないスレッド機構を備えている
⑤ Windows、macOS、UNIX他、多くのOSで作動する
2-6. Java
Windowsなどの特定の環境に依存することなく、どんな環境でもソフトを動かすことができるのがJavaです。プログラミング言語別での求人案件の割合が一番多いのも、Javaの大きなメリットです。
Javaは1995年サン・マイクロシステムズ(2010年オラクルに吸収合併)によって公開され、家電やパソコンから自動車の組み込みシステムまで、多種多様な分野に普及しています。そんなJavaの特徴を、以下に記します。
① 一度書けば、どこでも実行できる(Javaのスローガンは、“Write once,run anywhere”)
② メガバンクや証券のシステムで圧倒的に利用されている
③ 大規模開発に向いている
④ セキュリティ面で秀でている
⑤ ネット上の情報も豊富で、学びやすい
⑥ スマートフォン用OSで世界トップのAndroidのスマホ開発用としても重宝されている
⑦ ITエンジニアの求人ニーズで、Javaはトップ
2-7. Python
少ないソースコードで簡単にプログラムがかけるのが、Pythonの大きな特徴です。1991年オランダのグイド・ヴァン・ロッサム氏によって開発されたPythonの名前は、1969年から始まったイギリスBBC制作の伝説の人気コメディ番組『空飛ぶモンティ・パイソン』から来ているそうです。
① WEBアプリケーションや組み込み開発、データ解析、人工知能に活用されている
② 文法がシンプルで読みやすい
③ 数値処理や画像処理、音声処理などの専門的なライブラリが豊富
④ プログラミング言語別人気ランキングではトップクラスの人気を誇る
2-8. C#
C#(シーシャープ)は、高速なソフトウェアの開発が行えて、既存のソフトウェアとの統合もできるようにマイクロソフトが開発したプログラミング言語です。
一見C言語から派生したように思われますが、C#はC++とJavaをもとに開発された全く異なるプログラミング言語です。オブジェクト指向など優れている部分は残しつつ、CやC++で評判が悪かったポインタを排除しています。
① マイクロソフトの技術であるという安心感が、開発に取り入れられる要素になっている
② ゲーム開発エンジン「Unity」を使用した環境で活用されている
③ サーバーサイドアプリケーションを作成するためのプラットフォームは、以下の2つ
→ASP.Net(Windowsサーバー上で稼働)
→ASP.Net.Core(Linuxサーバー上で稼働
2-9. C#
AppleがiPhoneやiPadなどの端末で使えるネイティブアプリを開発するために作成したのが、Swiftです。2014年に発表され、アップルのiOSやLinuxで利用できます。
アップルは2016年のWWDCの基調講演で、Swiftでのコード作成方法を教えることを目的とした「Swift Playgrounds」というiPad専用アプリ開発を発表しました。
① マイクロソフトの技術であるという安心感が、開発に取り入れられる要素になっている
② ゲーム開発エンジン「Unity」を使用した環境で活用されている
③ サーバーサイドアプリケーションを作成するためのプラットフォームは、以下の2つ
→ASP.Net(Windowsサーバー上で稼働)
→ASP.Net.Core(Linuxサーバー上で稼働)
3. 分野別プログラミング言語の状況
3-1. WEB分野
3-1-1. 業務内容
Webプログラマーは、システムエンジニアが作成した仕様書に沿って、Webに特化したプログラミングを中心にシステムの開発を行います。クライアントサイドとサーバーサイドの両方の開発に関わります。
3-1-2. プログラミング言語
HTML、CSS、PHP,JavaScript
3-1-3. 制作物例
ECサイト、SNS、企業サイト、コミュニティサイト他
3-2. ゲーム分野
3-2-1. 業務内容
ゲームプログラマーは、ゲームの企画や構成の仕様に合わせて、プログラムを組みます。キャラクターの動きやゲーム内のシステムをプログラムで作成し、意図通りの動作を実現します。
3-2-2. プログラミング言語
C、C++、C#、Unity
3-2-3. 制作物例
PlayStation、NintendoSwitch、DS、Wii
3-3. 組み込み・制御分野
3-3-1. 業務内容
組み込み系プログラマーは、電子機器の中の動作制御ソフトウェアを開発します。温度制御装置や人感センサーが内蔵されているエアコン、カーナビや自動運転ニーズの高い自動車など、近年組み込みエンジニアのニーズは高まっています。
3-3-2. プログラミング言語
Visual C++、VisualStudio.NET
3-3-3. 制作物例
デジタルカメラ、電子レンジ、テレビ放送受信機、スマートフォン
3-4. アプリケーション分野
3-4-1. 業務内容
アプリケーションプログラマー(アプリ開発者)は、システム設計からプログラム開発、動作テストなど、アプリ開発の一連の作業を担当します。ネットワークやデータベースに関する知識も必要とされます。
3-4-2. プログラミング言語
Java、C、C#、Ruby
3-4-3. 制作物例
銀行ATM、Twitter、Gmail、メルカリ他
3-5. 汎用系システム分野
3-5-1. 業務内容
汎用系システムプログラマーは、銀行や保険会社などの顧客データベースの開発を行います。事務処理のシステム開発に向いているCOBOLを身に付けると、汎用系システムプログラマーとして採用されやすくなります。
3-5-2. プログラミング言語
COBOL、Java、FORTAN、RPG
3-5-3. 制作物例
顧客データベース他
3-6. オープン系分野
3-6-1. 業務内容
オープン系プログラマーは、近年高性能化したPCをベースにシステム開発を行います。導入コストが安く、常時アップデートができることが大きな特徴です。ネットワーク化された複数のPCで、データベースにアクセスできるシステムを構築します。
3-6-2. プログラミング言語
Java、JavaScript、PHP、Ruby
3-6-3. 制作物例
販売店舗データベース、病院顧客データベース他
4. タイプ別ITエンジニア
選ぶプログラミング言語や自社開発か受託開発か、大手企業か中小企業か等、様々な要素によって同じITエンジニアでも働き方や報酬は千差万別です。ここでは、代表的なITエンジニアのタイプをご紹介します。
4-1. 大手SIerエンジニア
ITゼネコンといわれるピラミッド構造のトップに位置するNTTデータ、日立製作所、富士通、NECなどの大企業で働くエンジニアです。その企業ブランド力と与信力で官公庁の巨大なIT予算を受注し、系列のシステム会社他の下請けに卸していきます。年収も高くかつてはエリート的存在でしたが、技術的革新性は低いのが実情です。
4-2. 下請けエンジニア
二次受け、三次受け、四次受けといわれる、ITゼネコンのピラミッド構造の下層で働くITエンジニアです。スキルアップに結び付かない仕事もあり、年収も低いのが特徴です。
4-3. カリスマフリーエンジニア
メルカリやアマゾン、ZOZO、サイバーエージェントといった企業で、アプリやWEBサイト、ゲームなどの自社開発に従事するITエンジニアです。自分の市場価値を高める目的意識の高いITエンジニアが多く、年収も1000万クラスはザラにいます。業界的に有名なカリスマCTO的な人材が存在するケースも多く、そういったITエンジニアとして自己ブランディングを目指せるのも大きなメリットです。
5. まとめ
現代のビジネスシーンで、プログラミングのニーズは飛躍的に高まっています。各種プログラミングスクールも活況を呈しており、30代のビジネスマンだけでなく、40代や50代の経営層の参加も増えています。
実際の業務でプログラムのソースコードを書かなくとも、“プログラミング的思考”を身に付けることで、業務設計力やプロジェクトマネジメント力が向上するケースも多く、フィンテックやAIの流れを汲んでITの重要性はますます大きくなると思います。
世界と比較して日本の教育システムで大きく欠落しているといわれているのが、“お金の教育”と“プログラミング教育”です。プログラミングは豊かな生活を実現するために即効性の高いスキルとして、今後ますます存在感を高めていくことは間違いないでしょう。