2022年4月11日
|2022年4月15日
学習するプログラミング言語を選ぶ前に、どんなプログラミング言語があるかを知っておきましょう。それぞれの特徴を理解しておくことが、初心者にとっては大切です。今回は、メジャーなプログラミング言語14個を紹介します。
HTMLは、Hyper Text Markup Language(ハイパーテキスト・マークアップ・ランゲージ)の略で、正式にはプログラミング言語ではなく、マークアップ言語に分類されます。Web系開発を行う場合、ほとんどのケースでHTMLが採用されており、学習コストも低いため、プログラミング学習の入り口として学習されている方が多い印象です。
マークアップ言語とは、コンピュータが文章構造を理解できるように、文章や画像をタグで囲むことで、その内容に意味づけをしていく言語のこと。Webサイトの土台となる、文章構造を作ることを目的としています。
例えば、次の文をWeb上に表示する場合を例にしてみます。
■ 画面表示
この部分は見出しです。
この部分は文章です。
このままではコンピュータが文章構造を理解できませんので、コンピュータが理解できるようにマークアップすると次のようになります。
■ HTMLファイル
<h1>この部分は見出しです。</h1>
<p>この部分は文章です。</p>
これで、コンピュータがどこが見出しでどこが本文か判断することができるようになりました。
Web系に興味がある方は、HTMLと次に紹介するCSSをおさえておきましょう。
CSSは、Cascading Style Sheets(カスケーディングスタイルシート)の頭文字をとったもので、スタイルシート言語とも呼ばれています。HTMLで作った文書構造の体裁や見た目を整える言語です。
例えば、先ほどマークアップした<h1>の文字色を赤にしたい場合、CSSの記述は次のようになります。
■ HTMLファイル
<h1>この部分は見出しです。</h1>
<p>この部分は文章です。</p>
■ CSSファイル
h1 {
color: red;
}
■ 画面表示
この部分は見出しです。
この部分は文章です。
HTMLだけでは、文章が単調に並ぶだけの簡素なWebサイトになってしまいますが、CSSで見た目を整えることで、訪問者が見やすいWebサイトになります。プログラミング学習の入り口として、HTMLと一緒によく学習されています。
JavaScriptは、Webブラウザ上で動くプログラミング言語です。
JavaScriptを用いることで、Webサイトにスライドショーやモーダル画面を実装したりすることができ、サイトに動きを付けることができます。
また、jQuery、Vue.js、React、AngularJSなどのライブラリ(プログラムのまとまり)が豊富であるとともに、Node.jsという実行環境をインストールすることでサーバーサイドでも実行することできるため、幅広い用途で使用することができます。
SQLは、最も普及しているデータベース言語のひとつで、「エスキューエル」または、「シークェル」や「シーケル」とも呼ばれたりします。
SQLはデータベースを操作する言語であり、厳密にはプログラミング言語ではないため、アプリケーションの作成や操作をする機能はありません。ただ、システムやアプリ開発の際には、何らかのデータベースへのアクセスが不可欠であり、プログラミングには欠かせない言語です。また、開発の分野に限らず、インフラ分野などIT業界で幅広く使われている言語なので、SQLの需要が減ることはないでしょう。
Javaは、静的型付け言語かつオブジェクト指向型言語の代表格で、世界的に見ても人気のある言語の一つです。
静的型付け言語
あらかじめ変数や関数の返り値に「型」を定義する言語のこと。プログラムを書くときに、必ず型を定義しないといけないのは少し手間ですが、コンパイル時に、エラーを把握できるメリットがあります。
オブジェクト指向型言語
プロパティやメソッド(プログラムの共通の動作)を「オブジェクト」という単位で扱う、オブジェクト指向を基準として設計している言語のこと。複数人で作業する場合でも分担しやすく、コードの修正がしやすいメリットがあります。
JavaはOSに依存をしないことから、どんな環境でもソフトを動かすことができるため、開発の幅が広く、「多くの現場で採用されている」「求人数が多い」というのも人気の理由の一つです。例えば、次のようなものを開発できるので、作りたいものをイメージしながら勉強するのがいいでしょう。
・Webサービス (例)Twitter・EVERNOTEなど
・デスクトップアプリ (例)OpenOffice
・ゲーム (例)Minecraft
・組み込みシステム (例)Blu-rayプレイヤー
・スマートフォンアプリ(Android用)
・商用システム (例)みずほ銀行のシステム
Python(パイソン)は、AI(人工知能)や機械学習の開発に適したプログラミング言語として注目を浴びています。AI開発だけでなく、Web上のデータ収集(スクレイピング)やデータ解析にも強く、組み込みアプリ開発からWebサイト制作など幅広い分野で利用可能な言語です。
身近なところでは、YouTube、Instagram、DropboxといったWebサービスや、ロボットのPepper(ペッパー)もPythonが使われています。
また、コードが非常にシンプルで、初心者でも学習しやすい言語なのも特徴の一つです。
AIや機械学習に興味がある方は、Pythonを選ぶのがいいでしょう。
C#(シーシャープ)は、Windowsで有名なMicrosoft社が開発したプログラミング言語の一つです。Javaと同じオブジェクト指向型言語で、構文もJavaと似ています。
Windows向けのアプリケーション開発に使われる言語だと認識されている方もいるかもしれませんが、実際はMacOSやiOS、Android向けのアプリ開発やWebアプリケーションも開発できる汎用的なプログラミング言語です。
また、Microsoftが提供する各種ツールによる開発サポートがあるため、学習しやすく、Microsoft社の製品との連携を行う開発には特に向いているといえるでしょう。
C#で作られている代表的なものは、Microsoft社の公式ポータルサイトであるMSNや、検索エンジンのBingです。
C++は汎用プログラミング言語のひとつで、オブジェクト指向型言語です。「シープラスプラス」と読みますが、「シープラ」や「シープラプラ」と呼ばれることもあります。先ほど紹介した「C#」と文法や名前は似ていますが、互換性はなく全く別の言語のため、用途も異なります。
例えば、「C++」は、IoT用ソフトウェア開発や大規模な業務システム開発に使用され、「C#」はゲーム開発やWindowsデスクトップアプリ開発などで使用されることが多い言語です。
PHPは、動的なコンテンツの作成に適したプログラミング言語で、「PHP:Hypertext Preprocessor」が正式名称です。PHPはHTMLと相性がいいのが特徴で、HTMLで記述したコードの中に埋め込んで、動的にHTMLを生成することができます。プログラミングの知識がなくても簡単にWebサイトを作成できる事で有名なWordPressもPHPを使って開発されています。
PHPは、構文がわかりやすく、基本的なことを覚えたら簡単なプログラミングをすぐに実践しやすい言語といえるのでプログラミング初心者にオススメの言語です。
Goとは、検索エンジンでおなじみのGoogleが開発した比較的新しいプログラミング言語です。
Goの特徴として、
・高速な処理が可能
・並列処理が得意
・メモリの安全性が高い
が挙げられ、メルカリやクックパッドなどの開発に使用されています。Webサービスの開発に限らず、スマートフォン向けのアプリやドローンなどの組み込み系の開発にも採用されています。
学習においては、C言語やJavaと似ている部分があるため、これらの言語に触れたことがあれば習得しやすい言語です。
Kotlin(コトリン)は、2011年ごろに発表されたプログラミング言語で、Android公式開発言語として注目を浴びています。Javaと同じ静的型付けオブジェクト指向型の言語ですが、Javaよりもシンプルなコードで記述することができ、Javaとの相互利用もできるように配慮されているのが特徴です。
Kotlinで開発されている身近なものは、Yahoo!ニュースやLINEなどのAndroid用アプリです。
知名度が上がってきてはいるものの、まだまだ日本語で読めるリソース(情報)が少ないため、プログラミング初学者が学ぶには少しハードルが高い言語かもしれません。
Swift(スウィフト)は、2014年にApple社が発表し、2015年に公開されたプログラミング言語です。Mac、iPhone、iPad、Apple WatchなどのApple製品のアプリケーションの開発に適していて、近年では一般的なWebアプリケーションの開発もできるようになりました。
コードがシンプルで読み書きしやすく、安定性が高いのが特徴です。また、Swiftが開発される前に使用されていたObjective-Cとの互換性もあります。
Apple製品のアプリケーション開発をしたい方は、Swiftを選ぶのがいいでしょう。ただし、XcodeとApple IDを準備しておく必要があるうえに、開発したアプリケーションを公開する場合は、年間登録費がかかるDeveloper IDが必要な点には注意してください。
Rは、統計解析や機械学習に使用されるプログラミング言語で、データの解析からグラフへの出力等の統計解析を行うことに特化しています。そのため、汎用性は低くWebアプリケーション等の開発はできませんが、データエンジニア、データサイエンティスト、データアナリストといった職種には欠かせない言語といえるでしょう。
また、統計は数学の一分野となるため、Rを本格的に使いこなすには、統計や数学などの専門的な知識も必要になります。
構文もやや複雑で、日本語でのリソースが少ないため、初心者にとっては敷居の高い言語になりますが、逆にいえばIT業界での希少性が高いことにつながるため、習得すれば仕事の選択肢を増やすことができます。
Ruby(ルビー)は、オブジェクト指向型のプログラミング言語で、日本で開発されました。
RubyのフレームワークであるRuby on Railsとセットで使われることが多く、Webサイト制作、ECサイトの構築、SNS開発など、幅広い分野で使われています。
Rubyは無料で使用できるうえに、複製・変更、再配布が可能な言語です。また、コードがシンプルで読み書きしやすく、日本生まれの言語で情報も得やすいため、初心者におすすめのプログラミング言語といえるでしょう。
プログラミング言語は種類が多いので、なかなか決まらなくても気にすることはありません。
ここからは、初心者がプログラミング言語を選ぶときのポイントを4つ紹介します。
プログラミング言語には、それぞれ特徴があり、開発するものによって使う言語が異なります。学習したい言語がまだ決まっていない方は、興味のある分野から探してみましょう。
Web制作/Webアプリ・Webサービス開発をしたい | HTML , CSS , JavaScript , PHP , Ruby , Java , Python , Go |
スマートフォン向けアプリ開発をしたい | Swift(iOS、Macアプリ) Kotlin , Java (Androidアプリ) |
デスクトップアプリを開発したい | C# |
AI(人工知能)開発、機械学習を学びたい | Python , R , C言語 |
組み込み系(IoT)開発したい | C言語 , C++ , Python , Java |
ゲームを開発したい | C# , C++ |
「コーポレートサイト」などのいわゆるホームページを作るWeb制作をしたい場合、HTML・CSS・JavaScriptといった、フロントエンドで実行されるプログラムの言語を学習するといいでしょう。
「ECサイト」や「SNS」のようなWebアプリやWebサービスの開発をしたい場合は、フロントエンドの学習後に、RubyやPHPといったバックエンド(サーバーサイド)で実行されるプログラムの言語を学びましょう。また、Webアプリケーション開発向けのフレームワーク(Ruby On Rails / Laravel)をあわせて学んでおくと、コーディング作業を短期間で効率的にできるようになります。
WebアプリやWebサービスは、インターネット環境さえあればできる手軽さが魅力。そのために需要が高く、仕事も見つけやすい分野といえます。また、Web系の開発には、習得しやすいプログラミング言語が多いため、初心者にもおすすめです。
フロントエンド
ユーザーが直接目にして操作できる部分。フロントエンドの言語は、画面やボタン、ユーザの入力欄などをプログラムしており、Webブラウザ上で実行されます。
バックエンド
ユーザーからは直接見れず、操作できない部分。サーバーサイドの言語は、ユーザーが入力する内容のデータ処理やデータベースへの保存などをプログラムしており、サーバー上で実行されます。
「LINE」のようにスマートフォンにインストールして利用できるアプリを開発したい方は、まずどのOSのアプリを作りたいかを明確にしましょう。スマートフォンのOSには、「iOS」と「Android」があり、開発言語はそれぞれ違います。iOSアプリ開発をしたい場合はSwift、Androidアプリ開発をしたいならJavaやKotlinを学習するのがおすすめです。
デスクトップアプリは、コンピューターにインストールして動かすアプリケーションのこと。デスクトップアプリの開発は、WindowsもMacも対応しているC#がおすすめです。ちなみに、Javaも開発ツールを使い分けることで、Windows、Macの両方のアプリ開発が可能ですが、特にJavaで開発する理由がなければ、C#を選んだ方が無難でしょう。
AI開発や機械学習で使われるプログラミング言語には、Python、 C言語、Rがあります。
その中でも、まずはPythonから習得するのがおすすめです。Pythonは、構文がシンプルで読み書きしやすく、さまざまな機械学習に便利なライブラリやフレームワークが揃っています。また、Pythonは汎用性が高く、AI開発以外にも、アプリ開発やゲーム開発、データ分析、Webサイト制作も可能です。
AI開発や機械学習には専門的なスキルが求められますが、将来的な需要は右肩上がりになることが期待できるでしょう。
組み込み系は、インターネットに接続される、センサー搭載のIoTデバイスが肝になります。そこで大切なのは、IoTデバイス自体にセンサーやCPUを組み込み、制御するスキルです。
IoTの構築に適したプログラミング言語は、Python、C言語、Javaがあげられますが、その中でも、処理速度が早いC言語が長きに渡り使用されており、組み込み用のライブラリも豊富です。組み込み系に興味がある方は、C言語を学習するのがおすすめです。
どういうゲームを開発したいかによって、使用するプログラミング言語は違うので、まずはどういった種類のゲームがあるか見ていきましょう。
ゲーム開発で主に使われるプログラミング言語は、C#、C++、JavaScript、Swift、Rubyなど。そのなかでもおすすめなのは、C#とC++です。
C#は、コンシューマーゲーム、PCゲーム、ブラウザゲームの見た目、スマートフォンアプリゲームの開発ができます。Unityをはじめとした開発環境が揃っているため、Unityの特徴を押さえてから、C#の学習をするといいでしょう。
C++は、コンシューマーゲーム、PCゲーム、スマートフォンアプリゲームの開発ができます。言語の習得難易度は高いですが、コンピューターが理解しやすいプログラムを作れるので、処理速度が早くなめらかに動くゲームの実装が可能です。
なお、最近のゲームに多い、オンライン要素が入ってくると、サーバーサイドの技術も必要になるので注意してください。
プログラマーやITエンジニアとしての就職を考えている場合、求人の多さでプログラミング言語を選ぶのもいいでしょう。以下の表は、ITエンジニアの求人情報/サイト「レバテック キャリア」の2022年3月度のプログラミング言語別求人数トップ5を抽出しています。開発できるものが多いJava(4,790人)が1位でした。求人数が多いのは、市場でのニーズが高いということなので、キャリアアップを目指しやすくなるでしょう。
参照:レバテック キャリア
プログラミング言語によって、開発できるものが違うため、年収にも差が出てきます。「せっかくなら、年収が高い言語を習得したい」という方もいるかもしれませんね。
以下の表は、2020年に日経 xTECHが実施した「プログラミング言語実態調査」のプログラミング言語別年収ランキングトップ5を抽出しています。トップ5の言語は、平均年収が600万超えでした。JavaScriptは、Web系の開発には欠かせない言語です。また。システム開発やゲーム開発でも使われることがあるため、平均年収が高いと考えられます。高収入を目指したい場合は、JavaScriptを習得するのがいいかもしれません。
参照:開発言語別の技術者年収ランキング大公開、Pythonは6位・COBOLが11位・首位は?
人気があるプログラミング言語は、IT業界の現場で使われることが多いといえます。そのため、学習するプログラミング言語を人気性で選ぶのもいいでしょう。
ソフトウェア品質の評価と追跡を手掛けるTIOBE Softwareが発表した、2022年3月版の「TIOBEインデックス(TIOBEプログラミングコミュニティーインデックス)」では、トップ10が以下の結果になりました。
1位のPython(14.26%)は、AI開発や機械学習だけではなく、Webアプリ開発、ビッグデータの解析、IoTなどの分野で使われることから、評価があがったと考えられます。
ここまで、プログラミング言語の4つの選び方について紹介しましたが、それでも迷ってしまう方が、中にはいるかもしれません。迷った場合はJavaがおすすめ。3つの理由をこれから見ていきましょう。
Javaは開発範囲が広いという強みがあります。
たとえば「Twitter」のようなSNS、「楽天市場」のようなECサイト、人気ゲームの「Minecraft」、「Blu-rayプレイヤー」のような家電、「Android」上で作動するアプリケーション、「みずほ銀行」などの企業の商用システム。Javaで開発できるものは幅広いです。
また実行速度が速く、プログラムの制作段階でエラーを発見できる言語のため、アクセスが集中する大規模Webサービスなどにも携わることができます。
Javaは静的型付けオブジェクト指向型の言語です。習得にかかる時間や労力は多くかかりますが、Javaを習得できればプログラミングの基本的な考え方は理解できている状態です。最初にJavaを学ぶことで、他の言語を学びやすくなり、多言語の習得もしやすくなります。他の言語へ移行しやすいことで、開発できるものの選択肢も広がるでしょう。
Javaは、需要が高いプログラミング言語といわれていることをご存じでしょうか。それには3つの理由があります。
まず、Javaの歴史は長く、多くの開発で使用されてきた実績があるため、新規の開発が減少しても、Javaで既に開発されているシステムの保守は継続されること。
次に、システムだけではなく、拡大し続けるスマートフォンアプリ市場でも、Javaでの開発が増えているため、求人数が安定して多いです。
また、静的型オブジェクト指向型の言語であるJavaは、大人数でのシステム構築の際も、部品を組み上げていくように進められるため、大規模システムの開発には今後もJavaが採用され続けると予想されます。
以上のことから、他のプログラミング言語の開発が増えたとしても、Javaの需要の高さは継続するといえるでしょう。
Javaを実際に手を動かして学ぶために最初に必要になることは環境構築です。
プログラミング初学者にとっては、JDK(開発キット)やEclipseなどのIDE(統合開発環境)、環境変数の設定など学習環境を整えるだけで一苦労。うまく開発環境が構築できず、コードを書く前に挫折する方もいます。
学舎さくらでは、Javaの環境構築をはじめ、Javaの基本文法の学習、人気の高いJavaのフレームワークである「SpringBoot」の学習やJavaの資格であるJavaSilverの取得まで徹底サポート。
研修後半には「SpringBoot」を用いて、同世代の方々とチーム開発まで経験出来ます。
Web説明会を随時開催しているので、気になる方はぜひ参加してみてください。
さまざまな種類があるプログラミング言語。学習するプログラミング言語をどれにするか迷うときは、「開発したいもので選ぶ」ことが大切です。開発したいものがすぐに見つからない場合は「求人の多さ」「年収の高さ」「人気性の高さ」で選ぶ方法もあります。
まず、自分が好きなもの、興味があるものが、どのプログラミング言語でできているか調べることからはじめてみてはいかがでしょうか。
最新記事
プログラミング学習に暗記は不要!未経験から効率的に学習する方法
2024年4月18日
この記事の目次1 【結論】プログラミング学習に暗記は必要ない1.1 【理由1】すべて暗記するのは不可能なため1.2 【理由2】カンニングしてもいいため1.3 【
プログラミングに必要なパソコンのスペックとは?初心者向けの選び方
2024年4月18日
プログラミングには、最低限のスペックを備えたパソコンが必須です。とはいえ、初心者の人は「プログラミングに必要なパソコンのスペック」を把握していないでしょう。今回
インフラエンジニアのやりがい5選!向いている人や一日の仕事の流れも解説
2023年10月20日
ITエンジニアのなかでもインフラエンジニアに興味を持っており、「どのようなやりがいがあるのだろう?」と気になっている人もいるのではないでしょうか。 type転職