プログラミング言語の習得難易度と仕事
-
プログラミング言語とは、コンピュータに対して一連の動作を指示するための人工言語の総称です。 指示された一連の動作をプログラムと呼び、プログラミング言語を記述してコンピュータに指示することをプログラミングと呼びます。
おそらくこのページをご覧の方は、どのようなプログラミング言語を学ぶと仕事に役立つのか、または転職・就職に有利なのか、といったことが知りたいと思います。 このページでは、プログラミング言語ごとに仕事の種類、習得難易度、おすすめ度の計3項目を評価・比較しています。
あくまでもプログラミング言語が未経験の方への一般論とお考えください。 仕事の種類や習得難易度は、他のプログラミング経験の有無や就職地域、その人の年齢などで変化します。 それに、どのプログラミング言語も極めるのは大変で時間を必要とします。 本ウェブサイト管理人の主観に基づき、独自に評価していることをご了承ください。
■Java 〜代表的なWeb系システムの開発言語〜
JavaはWeb系システムの構築において、人気の高いプログラミング言語です。 サーバー側でまとめて処理するバッチの開発にも利用されていますが、オンラインシステム開発に利用される方が多いと思います。 オンライン担当者の仕事は、HTML、JavaScript、Javaなどを組み合わせてWebシステムの画面や処理プログラムを作成することです。 オンライン担当者にとっては、HTML、JavaScriptの習得は必須と言えます。
2000年以降から多くの企業がJavaで開発したシステムを導入していますので、人気が下降傾向になっても需要がなくなることはないでしょう。 また、システムだけでなく携帯などのアプリ開発にも利用されています。 Javaエンジニアを募集している企業も多いので、習得をおすすめできるプログラミング言語です。 Web系システムの仕事は、組み込み系の仕事と比べると、本格的に仕事ができる様になるまでの期間が短いと思います。
■PHP 〜ホームページ制作で広く利用されている言語〜
PHPはホームページ制作などで、幅広く利用されているプログラミング言語です。 レンタルサーバーでも利用が許可されていることが多く、習得しやすいプログラミング言語なので、ある程度のPHPプログラミングができる人は多いのではないでしょうか。 PHP自体の人気も高く、PHP経験者を募集している企業も多数あります。 しかし、正直なところPHPを単独で習得しているだけでは、思ったように仕事がないかもしれません。 本格的に仕事で利用するとなると、HTMLやJavaScriptの習得は必須といえるでしょう。 Web系システム開発で利用される他の言語も合わせて習得しておくことをおすすめします。
■C言語 〜代表的な組み込み系システムの開発言語〜
はじめて言語を習得する場合、C言語を勧められることが多いと思います。 勧める理由として「C言語を習得すると他の言語も習得しやすい」などと言われることもあるかもしれません。 一理ありますが、他の言語に関しても同じことがいえます。
C言語プログラマーの仕事には、業務系システム開発や組み込み系システム開発などがあります。 Web系システム開発の仕事もありますが、JavaやC#等と比べると非常に少ないです。 C言語を習得するかどうかは、自分がしたい仕事に就くことができるかで、判断すれば良いでしょう。
業務系の仕事は、業務処理をするプログラムをC言語でプログラミングします。 組み込み系の仕事は、機械を制御する為にプログラムを組み込みますが、そのプログラムをC言語でプログラミングします。 組み込み系エンジニアの場合、他のエンジニアと比べて需要が高く単価も高くなることが多いです。 また、C言語以外の複数のプログラミング言語での開発経験がなくても、比較的仕事がとりやすいです。 ただし、本格的に仕事ができる様になるまで時間がかかると思います。 システム開発が未経験では、組み込み系エンジニアとして採用されることは難しいでしょう。
■Visual Basic .NET 〜広い分野で使用されている習得しやすい言語〜
プログラミング初心者にとっても、比較的習得しやすいプログラミング言語です。 「Visual Basic」と同様に広い分野で活用できるので、多くの開発現場で採用されています。 「Visual Basic 6.0」の後継となりますが、前バージョンからの変更点は多いです。 「Visual Basic」から「Visual Basic .NET」に移行するパターンも多く、様々な場面で活用できるプログラミング言語です。 「Visual Basic .NET」を習得してしまえば、「Visual Basic」関連の言語も習得しやすくなります。
マイクロソフト社が.NET戦略の一環として開発した他の言語として「C#」が挙げられます。 「Visual Basic .NET」は「C#」と相互に連携することが可能です。 マイクロソフト社が開発した言語との互換性が強いので、マイクロソフト社が開発した言語を中心に習得していくことになると思います。 マイクロソフト社が開発した言語の人気は高く需要もあります。 IT企業への転職を考えるなら、「Visual Basic .NET」から習得するのも転職を有利に進めるよい方法といえます。
■COBOL 〜金融機関などで広く利用されている歴史のある言語〜
COBOLは主にバッチプログラム開発で利用されるプログラミング言語です。 バッチ処理とは、ある時間になるとサーバー側でまとめて処理することです。 COBOLはコンピュータが苦手とする小数点以下の計算に強いので、金融機関などで広く利用されています。 また、膨大なデータの入出力(インポートやエクスポート)を処理することもあります。
COBOLを習得することの一番のメリットは、COBOLエンジニアが減っているにも関わらず、仕事がなくなることはないことです。 COBOLは1959年に発表されており、古い言語なので人気が下落傾向にあります。 しかし、古くからある大手の金融機関や公共機関では、COBOLで開発されたシステムが依然として稼働しています。 1990年以降に発表された新しい言語とは異なり、日本の「バブル」時代に多くのCOBOLシステムが構築されています。 人気が下落しても需要がなくなることはないでしょう。
■PL/SQL 〜オラクルデータベースを操作するための言語〜
PL/SQLは、オラクルデータベースを操作するために、オラクル社がSQLを独自に拡張して開発したプログラミング言語です。 オラクルデータベースは、データベース市場で常に高いシェアを占めています。 システム開発において、データベースを利用しないことは無いと言っても過言ではありません。 PL/SQLを習得していると、オラクルデータベースを採用している企業へ自分のスキルをアピールすることができます。
しかし、逆に言えば、データベースのみで構築されているシステムも存在しません。 データベースのプロフェッショナルでない限り、他の言語も合わせて習得しておくことをおすすめします。
■JavaScript 〜Web系システムの開発においては必須の言語〜
Web系システムの開発においては、習得が必須のプログラミング言語といえますが、他のプログラミング言語と合わせて習得する必要があります。 ホームページやシステムをJavaScriptだけで構築することはできません。 HTML、PHP、Javaなど、他のプログラミング言語と合わせて構築しますので、それらも習得する必要があります。 JavaScriptは基本的に他の言語と組み合わせて活用すると考えてください。 まずメインとなるプログラミング言語を習得し、その後でJavaScriptを学習すると良いでしょう。
プログラミング言語 仕事の種類 難易度 おすすめ度 備考 Java Web系・業務系 普通 JavaScript、HTMLは必須 PHP Web系・業務系 易しい JavaScript、HTMLは必須 C 組み込み系・業務系 難しい 未経験から組み込み系は難しい C++ 組み込み系・業務系 難しい C言語の拡張 C# Web系・業務系 普通 CよりJavaに近い、ASP.NETの記述に使用、Visual Basic .NETやVisual C++と連携可能 Visual Basic Web系・業務系 易しい VBA、VBScript、Visual Studioなど Visual Basic .NET Web系・業務系 易しい Visual Basicを基にしたオブジェクト指向のプログラミング言語 Perl Web系・業務系 普通 JavaScript、HTMLは必須 COBOL 業務系 易しい 単独では不利、複数言語の習得を推奨 PL/SQL 業務系 易しい 単独では不利、複数言語の習得を推奨 JavaScript Web系 易しい Web系システムで利用される他言語を習得する必要あり ActionScript Web系 易しい Flashで利用 ▼以下の言語は人気がありますが、実際に利用したことがないので詳しくは掲載できません。 Ruby − − − 日本人が開発、人気急上昇 Objective-C − − − iPhoneアプリで人気急上昇 Python − − − 欧米の企業に人気 Delphi − − − 独自フレームワークあり、オブジェクト指向言語 Go − − − 2009年にGoogleが発表、人気急上昇 Web系:Webブラウザに表示して利用するタイプのシステムやアプリケーションの開発
業務系:一定時間にまとめて処理するバッチやシステム制御プログラムの開発
組み込み系:電子機器や機械を制御するプログラムの開発