プログラミングの勉強を始めたいけど、どれから始めていいのか見当がつかない。
そんな疑問を抱えている方も少なくはないでしょうか。
一口にプログラミングと言っても、将来どのようなシステムを作りたいのかプログラミングを学ぶ目的によってはプログラミング言語の選び方も大きく変わってきます。
この記事では、プログラミングの勉強を始める前に知っておくべき主なプログラミング言語について、特徴や学習の難易度、人気度から分かり易く解説します。
なお、代表的なプログラマーの業務分野については以下の別記事で解説しています。
この記事では、世界に200種類以上あるといわれているプログラム言語の中から日本でよく使用されている代表的なプログラミング言語について紹介します。
なお、学習の難易度については各プログラミング言語の能力認定試験が参考になりますので認定試験の運営団体及びURLを記載しました。
代表的な「コンパイラ型言語」の種類と特徴
※コンパイラー型言語とインタープリンタ型言語については、以下の別記事で解説しておりますので参考にして下さい。
C言語
C言語はプログラムの自由度が非常に高く、汎用性も高いためアプリケーションの開発から機械制御まで幅広い分野で活用されております。
コンパイル型言語のため動作速度が速く、ファイルサイズを小さくできるため、OS周りのシステムや組み込みハードウェア、IoT分野などで多く活用されています。
但し、プログラマーが記述する範囲が多く、ハードウェアの制御知識が必要になるなど、難易度の高いプログラミング言語でもあります。
尚、C言語はGUI(Graohic User Interface)を構築するのは苦手な言語です。
GUIとは、ユーザーインターフェースの一部で、情報の提示に画像や図形を使用して操作をマウスやタッチパネルなどの画面上の位置により指示を行うものです。
開発環境
マイクロソフトから開発ツール(VisualStudio2019)が提供されております。
(VisualStudio2019)のCommunity版は個人であればマイクロソフト公式サイトから無償でダウンロードできます。
C言語プログラミング能力認定試験
(参照元)運営団体:株式会社サーティファイ
<https://www.sikaku.gr.jp/js/cp/ind/about/content/>
1級:認定基準
C言語を駆使し応用プログラム(言語処理系ユーティリティなど)が作成できる能力を有し、使用しているOSについて理解をしている。
2級:認定基準
小規模のプログラム(500行程度)が適切に(理路整然、簡潔、正しく、速く)書け、各種基本アルゴリズムを理解している。
3級:認定基準
C言語の概念を理解し、簡単なプログラムが書ける。
合格ライン:全級とも得点率60%以上
学習の難易度
初めて学習するプログラミング言語としてはかなりハードルが高い言語です。
「C言語」を学べるプログラミングスクール
C++
C++はC言語にオブジェクト指向やテンプレートなどの機能が追加されたC言語を機能拡張したプログラミング言語です。
また、C言語のようにハードウェアを直接操作できるため、OSを介してGUIのアプリケーションやモバイルアプリケーションまで幅広いプログラムが構築できるプログラミング言語です。
データ解析処理や統計などの高速で動くソフトウェアが求められるケースではC++が多く使用されております。
また、同じ機能であれば、C言語で書くよりもコンパクトに書けるのもC++の特徴の一つです。
ここで参考までに、多くのプログラミング言語の入門書が最初に記述している「Hello World」の文字列を出力表示するプログラムをC++で書いて見ます。
開発ツール(VisualStudio2019)を使ってプログラミングした結果、Microsoft Visusl Studioデバックコンソールに「Hello World」の文字が出力表示されました。
開発環境
マイクロソフトから開発ツール(VisualStudio2019)が提供されております。
プログラミング能力認定試験
C++ のプログラミング能力認定試験は日本国内では見当たりません。(当サイト調べ)
学習の難易度
初めて学習するプログラミング言語としてはかなりハードルが高い言語です。
尚、オブジェクト指向については以下の別記事で解説しております。
「C++言語」を学べるプログラミングスクール
C#
マイクロソフトが開発したオブジェクト指向プログラミング言語であり、Windowsとの相性が良くWindows向けアプリケーション開発には多く使用されています。
C#はマイクロソフト社が提供する各種ツールによって開発がサポートされているため、使いやすいプログラミング言語として知られています。
C#はWindows向けアプリケーション以外にもMacやiOS、Androidといった他のOSにも対応しており、Webアプリケーション開発もできる汎用的なプログラミング言語となっています。
また、Unityを使うことでゲーム開発も行えるのがC#の特徴の一つであり、3Dゲーム開発や2Dゲーム開発にも対応しています。
開発環境
マイクロソフトから開発ツール(VisualStudio2019)が提供されています。
プログラミング認定資格試験
運営団体:Microsoft
<https://docs.microsoft.com/ja-jp/learn/certifications/exams/70-483>
C#のプログラミング認定資格試験は、「70-483 Programming in C#」がありましたが、2021年1月31日をもって廃止となりました。
後継の認定試験については、上記URLで確認して下さい。
学習の難易度
初めて学習するプログラミング言語としては比較的ハードルが高い言語です。
「C#言語」を学べるプログラミングスクール
Java
Javaは世界中の基幹システムで使われているオブジェクト指向プログラミング言語であり、長年に渡って使われてきたため多くのライブラリやフレームワークがあります。
Javaは、Java仮想マシンにより、Windows、Mac、Linuxといったプラットホームにかかわらずコードを実行することが可能です。
OSに依存しないという点は重要で、Javaの人気が高い理由の一つです。
JavaはWebアプリケーションのサーバーサイドプログラム、金融システムなどの厳しい要件に対応できるプログラミング言語です。
サーバーサイドとは、サーバー側で動くアプリケーションのことで、Web上のアプリケーションがよい例です。
また、JavaはWebとも相性が良く、幅広いプログラムが構築できるプログラム言語です。
SIer業界には特に強いプログラミング言語です。
開発環境
JDK(Java Development Kit)を使用します。
Javaの公式サイトから無償でダウンロードできます。
プログラミング認定資格試験
Oracle認定Javaプログラマ(Oracle Certified Java Programmer)
(参照元)運営団体:Oracle社
<https://education.oracle.com/ja/oracle-certified-java-programmer-bronze-se-7-8/trackp_364>
試験区分
- Bronze(ブロンズ)
- Silver(シルバー)
- Gold(ゴールド)
資格区分
ベンダー資格(SilverとGoldは国際試験、Bronzeは国内のみ有効)
合格ライン:非公開
Javaプログラミング能力認定試験
(参照元)運営団体:一般社団法人サーティファイ
<https://www.sikaku.gr.jp/js/jv/ind/about/content/>
1級:認定基準
オブジェクト指向に基づく分析・設計(UML)により業務システムの流れを把握し、変更仕様に従ってプログラムの保守ができる能力を有する。
また、UMLの表記はユースケース図、シーケンス図、クラス図などの基本的な知識を有する。
2級:認定基準
Java™に関する一般的な知識を有し、小規模なプログラム(アプリケーション、アプレット)が適切に書ける。
オブジェクト指向についての一般的な概念を理解している。
3級:認定基準
Java™に関する基本的な知識を有し、簡単なプログラムが書ける。
オブジェクト指向についての基本的な概念を理解している。
合格ライン
全級とも得点率60%以上
学習の難易度
初めて学習するプログラミング言語としては学習し易い言語です。
「Java」を学べる主なプログラミングスクール
スクール名称 | 特徴・学習スキル | 紹介記事 |
個別指導型のプログラミングスクール Java/SQL/Servlet/JSP/JavaScript/etc | 記事を見る | |
GEEK JOB | 就職支援に重点を置いた学習カリキュラム Java/Ruby/etc | 記事を見る |
レイズテック | 現場で使える実践的なノウハウが学べる Java/Wordpress/AWS/etc | 記事を見る |
侍エンジニア | オリジナルカリキュラムでマンツーマン指導 Java/PHP/Ruby/Python/C++/C#/etc | 記事を見る |
テックアカデミー (Javaコース) | 現役エンジニアによるオンラインスクール PHP/Ruby/Python/Java/Unity | 記事を見る |
代表的な「インタープリタ型言語」の種類と特徴
Python
Pythonは、機械学習や人工知能を搭載したソフトウエア開発や統計処理や数値計算を得意とするプログラミング言語です。
Pythonは、コードを書きやすくするために「オフサイドルール」初稿というコードの書き方の規則があるため、だれが書いても同じようなコードになるよう工夫されています。
また、Pythonは豊富なライブラリを使えるのが特徴の一つです。
ライブラリとは一定の機能を果たす一連の関数が埋め込まれたプログラムのことで、すでに用意された機能を呼び出して使えるため、ライブラリを有効活用することで、プログラムの作成が効率的に行えます。
ここでも最初に練習で書く「Hello World」の文字列を表示をする簡単なプログラムを、Pythonで書いて実行してみます。
結果は下図のように「Hello World」の文字が表示されました。
ここで注目したいのは、同じ「Hello World」を表示するプログラムがC++に比べてPythonではprint(″Hello World″)だけで済んでしまう点です。
プログラムがとてもシンプルなのが実感できます。
開発環境
Pythonの公式サイトから開発ツールとして(Python3.9.1)が無償でダウンロードできます。
プログラミング能力認定試験
Python試験
(参照元)運営団体:オデッセイコミュニケーションズCBTセンター
<https://cbt.odyssey-com.co.jp/pythonic-exam.html>
Python 3 エンジニア認定基礎試験
出題範囲は主教材であるオライリー・ジャパン「Pythonチュートリアル 第3版」より出題
問題数:40問(すべて選択問題)
合格ライン:正答率70%
Python 3 エンジニア認定データ分析試験
出題範囲は主教材である翔泳社「Pythonによるあたらしいデータ分析の教科書」より出題
問題数:40問(すべて選択問題)
合格ライン:正答率70%
学習の難易度
初めて学ぶプログラミング言語としては学習しやすい言語です。
「Python」を学べる主なプログラミングスクール
スクール名称 | 特徴・学習スキル | 紹介記事 |
アイデミー | AI(人工知能)に特化したスクール Python/JavaScrip/jQuery/etc | 記事を見る |
DIVE INTO CODE | 総学習時間720時間の充実したカリキュラム Python/JavaScript/Ruby/etc | 記事を見る |
テックキャンプ | 短期集中や週末集中などスタイルが選べる Python/Ruby/Ruby on Rails/SQL/etc | 記事を見る |
AI(人工知能)やIoTに特化したスクール Python/JavaScript/etc | 記事を見る |
Ruby
Rubyは日本の「まつもとゆきひろ氏」によつて1995年に公開されたオブジェクト指向プログラミング言語です。
Rubyは、Ruby on Railsなどのフレームワークを使用して、Webサイト開発の現場で使用されるのが一般的です。
Ruby on Railsを使うとアプリケーションを作る際に毎回必要な記述を省略でき、必要最低限のプログラミングだけで済むようになります。
また、便利なパッケージ管理システムであるGemが使えるのもRubyの特徴一つです。
GemはRuby用のサードパーティ製ライブラリで、Gemをインストールすることで、多くのライブラリが活用できるようになります。
日本では、スタートアップ企業などに人気の高いプログラミング言語です。
開発環境(Windows版)
Ruby公式サイトからRuby+Devkit 2.7.x (x64)がダウンロードできます。
※MacにはRubyが標準でインストールされています。
Ruby技術者認定試験
(参照元)運営団体:非営利団体Ruby Association
<https://www.ruby.or.jp/ja/certification/examination/>
Ruby Association Certified Ruby Programmer Silver version 2.1:
Rubyの文法知識、Rubyのクラスとオブジェクト、標準ライブラリの知識について、基本的な技術レベルを持つことを認定します。
合格ライン:正解率75 %以上
Ruby Association Certified Ruby Programmer Gold version 2.1:
Silverで求められる範囲(文法、オブジェクト指向、組み込みライブラリ、実行環境など)を更に掘り 下げた知識。
標準添付ライブラリ知識やアプリケーション設計に必要となるクラスやオブジェクトに関する知識を追加し、Rubyによるプログラム設計技術を持つことを認定します。
合格ライン:正解率75 %以上
学習の難易度
初めて学ぶプログラミング言語としては学習しやすい言語です。
「Ruby」を学べる主なプログラミングスクール
スクール名称 | 特徴・学習スキル | 紹介記事 |
ポテパンキャンプ | 実践的カリキュラムで開発スキルを習得 Ruby/Ruby on Rails/JavaScript/etc | 記事を見る |
ランテック | Web系開発が習得できる実践的カリキュラム Ruby/Ruby on Rails/JavaScript/etc | 記事を見る |
DMM WEB CAMP | チーム開発など実践的な技術を総合的に学習 Ruby/Ruby on Rails/JavaScrip/etc | 記事を見る |
テックブースト | ブロックチェーン、AI、IoTなども学べる Ruby/Ruby on Rails/JavaScript/PHP/etc | 記事を見る |
DIVE INTO CODE | 総学習時間720時間の充実したカリキュラム Ruby/Python/JavaScript/etc | 記事を見る |
JavaScript
JavaScriptはWeb上でプログラムを実行させるスクリプト言語であり、HTMLやCSSと組み合わせてWebサイトを作成するのに用いられます。
HTMLとCSSだけでは表現できない動きのあるページ作りには欠かせないスクリプト言語です。
HTML はマークアップ言語で、コンテンツに構造と意味を与えます。
見出しや段落を定義したり、画像を入れたりします。
CSS は HTML コンテンツに適用するスタイリング規則の言語です。
背景とフォントの色を設定したり、複数カラムにコンテンツをレイアウトしたりします。
参考:HTMLとCSSは厳密にはプログラミング言語としては分類されていません。
開発環境
JavaScriptには複数の開発ツールがありますが、この記事では統合開発環境(IDE)のVisual Studio Codeをおすすめします。
Visual Studio Codeはマイクロソフト公式サイトより無償でダウンロードできます。
※Visual Studio Codeは名前が似てますが、VisualStudio2019とは全く別物です。
プログラミング能力認定試験
JavaScriptの認定試験には以下の3種類ありますが、この記事ではHTML5プロフェッショナル認定試験のみ紹介します。
・HTML5プロフェッショナル認定試験
・Microsoft 試験70-480
・CIW JavaScript Specialist
HTML5プロフェッショナル認定試験
(参照元)運営団体:特定非営利活動法人「エルピーアイジャパン」
<https://html5exam.jp/outline/>
レベル1
マルチデバイスに対応したWebコンテンツ制作の基礎の実力を測る。
レベル2
システム間の連携や最新のマルチメディア技術に対応したWebアプリケーションや動的Webコンテンツの開発・設計の能力を認定する。
合格ライン:非公開
学習の難易度
初めて学ぶプログラミング言語としては学習しやすい言語です。
「JavaScript」を学べる主なプログラミングスクール
スクール名称 | 特徴・学習スキル | 紹介記事 |
ポテパンキャンプ | 実践的カリキュラムで開発スキルを習得 JavaScript/Ruby/Ruby on Rails/etc | 記事を見る |
ランテック | Web系開発が習得できる実践的カリキュラム JavaScript/Ruby/Ruby on Rails/etc | 記事を見る |
DMM WEB CAMP | チーム開発など実践的な技術を総合的に学習 JavaScript/Ruby/Ruby on Rails/etc | 記事を見る |
テックブースト | ブロックチェーン、AI、IoTなども学べる JavaScript/Ruby/Ruby on Rails/PHP/etc | 記事を見る |
DIVE INTO CODE | 総学習時間720時間の充実したカリキュラム JavaScript/Ruby/Python/etc | 記事を見る |
PHP
PHPはWeb開発で多く使用されるスクリプト言語です。
PHPとHTMLはWEB制作などで一緒に使われることが多く、HTMLで制作されたページにPHPを組み込んで動的な要素を加える使い方をします。
Web上で動的な要素を加える点ではJavaScriptと似ていますが、PHPはサーバー側で実行されるのが特徴で、JavaScriptがWebブラウザ上で実行されるのとは大きく異なります。
開発環境
Windowsに(XAMPP)を使ったローカル開発環境を構築
XAMPPは以下のプログラムを一つにまとめたパッケージです。
- Apache(WEBサーバー)
- MySQL(データベースエンジン)
- PHP(開発言語)
- Perl(開発言語)
以下のXAMPP公式URLからWindows用のプログラムをダウンロード ⇒ インストール
<https://www.apachefriends.org/index.html>
XAMPPインストール完了 ⇒ XAMPPを起動
XAMPPを起動したら表示されるメニューから「Apach」と「MySQL」を起動
以上でXAMPPを使ったPHPのローカル開発環境が整います。
PHPの開発環境構築には他の方法もありますが、初心者が簡単に構築できるXAMPPに絞って紹介しました。
尚、Macには標準でPHPがインストールされております。
プログラミング能力認定試験
(参照元)運営団体:PHP技術者認定機構
<https://www.phpexam.jp/summary/>
PHP7初級試験
ITスキル標準(ITSS):レベル1
概要:PHPプログラミングの基本知識を問う試験
『初めてのPHP』(PHP7版)を主教材とし、一般的な知識やPHPオンラインマニュアルなどからも出題されます。
出題形式:選択式(複数または単一選択)
合格ライン:正解率70%以上
※他にPHP5初級試験及びPHP5上級/準上級試験があります。
学習の難易度
初めて学ぶプログラミング言語としては学習しやすい言語です。
「PHP」を学べる主なプログラミングスクール
まとめ
いかがでしたか。
初心者がプログラミングの勉強を始める前に知っておくべき事が見えてきましたか?
ご自身が思い描いているプログラマーに何が求められているのかが、ある程度つかめたのではないでしょうか。
始めは、学習の容易なプログラミング言語から始めて次の段階で最終目標のプログラミング言語へステップアップするのが挫折をせずに目標を達成できるよい方法です。
プログラミング言語の難易度、業界での人気度も考え、Web系であればPHPやRubyを学び、機械学習やAIを目指すのであればPythonを学習するのが一般的です。
また、Javaは高速かつ動作が安定しており、信頼性の高いシステムを構築する際に活用されことが多く、大規模なシステム構築で採用されることが多い言語です。
OSやハードウェアの違いを意識しなくて済み、業務システムなど幅が広い分野で活用できるプログラミング言語であり、未経験者が初めて学ぶのに適した言語の一つです。
本記事がお役にたてれば幸いです。
コメント