プログラミングの勉強を始める前に知っておくべきこと

プログラミング言語

プログラミングの勉強を始めたいけど、どれから始めていいのか見当がつかない。

そんな疑問を抱えている方も少なくはないでしょうか。

一口にプログラマーと言っても、業務分野によって細分化されており、将来どのようなシステムを作りたいのかを思い浮かべ、自分がなりたいプログラマーはどれかを考えて見て下さい。

プログラミングを学びたい目的によっては、プログラミング言語の選び方も大きく変わってきます。

この記事ではプログラミングの勉強を始める前に知っておくべき、主なプログラミング言語の特徴や学習の難易度、主なプログラミング言語の業界での人気について分かり易く解説します。

尚、代表的なプログラマーの業務分野については以下の別記事で解説しております。

プログラマーに転職する前に知っておくべき仕事内容と勉強方法
プログラマーは未経験者からの転職希望者が多い職種でもあります。プログラマーが開発するシステムの種類は幅が広く、業務の概要を転職前に知っておくことが大切です。この記事ではプログラマーの仕事内容やプログラミングの勉強方法について解説します。

プログラミング言語の業界での人気について

「人気=需要」と考えた場合、需要の少ないプログラミング言語を勉強しても、あまり意味がありません。

今、どんなプログラミング言語が業界で人気なのか、将来性はどうなのかも大変重要です。

『TIOBEインデックス』の2021年1月ランキングによると、C言語がトップで、続いてJava、Pythonの順にランクされております。

また、最近ではPythonの人気が上昇基調にあり、今後も続くと思われます。

 

「TIOBEインデックス」

出典:TIOBE Software

<https://www.tiobe.com/tiobe-index/>

 

この記事では、世界に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言語のようにハードウェアを直接操作できるため、OSを介してGUIのアプリケーションやモバイルアプリケーションまで幅広いプログラムが構築できるプログラミング言語です。

データ解析処理や統計などの高速で動くソフトウェアが求められるケースではC++が多く使用されております。

また、同じ機能であれば、C言語で書くよりもコンパクトに書けるのもC++の特徴の一つです。

それでは、多くのプログラミング言語の入門書が最初に書くプログラム「Hello World」の文字列を出力表示するプログラムをC++で書いて見ます。

 

 

上図の黒い部分に「Hello World」の文字が出力表示されました。

開発ツールは(VisualStudio2019)を使用

開発環境

マイクロソフトから開発ツール(VisualStudio2019)が提供されております。

プログラミング能力認定試験

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で確認して下さい。

学習の難易度

初めて学習するプログラミング言語としては比較的ハードルが高い言語です。

Java

Javaは世界中の基幹システムで使われているオブジェクト指向プログラミング言語であり、長年に渡って使われてきたため多くのライブラリやフレームワークがあります。

Javaは、Java仮想マシンにより、Windows、Mac、Linuxといったプラットホームにかかわらずコードを実行することが可能です。

OSに依存しないという点は重要で、Javaの人気が高い理由の一つです。

JavaはWebアプリケーションのサーバーサイドプログラム、金融システムなどの厳しい要件に対応できるプログラミング言語です。

サーバーサイドとは、サーバー側で動くアプリケーションのことで、Web上のアプリケーションが良い例です。

また、JavaはWebとも相性が良く、幅広いプログラムが構築できるプログラム言語です。

開発環境

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%以上

学習の難易度

初めて学習するプログラミング言語としてはハードルが高い言語です。

代表的な「インタープリタ型言語」の種類と特徴

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%

学習の難易度

初めて学ぶプログラミング言語としては学習しやすい言語です。

Ruby

Rubyは日本で開発されたオブジェクト指向プログラミング言語です。

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 %以上

学習の難易度

初めて学ぶプログラミング言語としては学習しやすい言語です。

JavaScript

JavaScriptはWeb上でプログラムを実行させるスクリプト言語であり、HTMLやCSSと組み合わせてWebサイトを作成するのに用いられます。

HTMLとCSSだけでは表現できない動きのあるページ作りには欠かせないスクリプト言語です。

HTML はマークアップ言語で、コンテンツに構造と意味を与えます。

見出しや段落を定義したり、画像を入れたりします。

CSS は HTML コンテンツに適用するスタイリング規則の言語です。

背景とフォントの色を設定したり、複数カラムにコンテンツをレイアウトしたりします。

尚、JavaScriptとJavaとは名前は似ていますが全くの別物です。

参考: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コンテンツの開発・設計の能力を認定する。

合格ライン:非公開

学習の難易度

初めて学ぶプログラミング言語としては学習しやすい言語です。

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上級/準上級試験があります。

学習の難易度

初めて学ぶプログラミング言語としては学習しやすい言語です。

まとめ

いかがでしたか。

初心者がプログラミングの勉強を始める前に知っておくべき事が見えてきましたか。

ご自身が思い描いているプログラマーに何が求められているのかが、ある程度つかめたのではないでしょうか。

学習のステップとしては、シンプルなプログラミング言語から始めて、次の段階で最終目標のプログラミング言語へステップアップするのが挫折をせずに目標を達成できる良い方法です。

繰り返しになりますが、プログラミング言語の難易度、業界での人気も考え、Web系を目指すのであればPHPやRubyを学び、機械学習やAIを目指すのであればPythonを学習するのが一般的です。

本記事がお役にたてれば幸いです。

コメント