はじめてプログラミングを学習する人の中には、途中で挫折してしまう方が非常に多いです。挫折の理由は、『目標が不明確』、『勉強方法が間違っている』など、さまざまなものがありますが、プログラミングの基礎でつまづいてしまい諦めてしまう方がたくさんいます。
基礎は簡単というイメージを持っている人もいるかもしれません。しかし、プログラミング初心者にとって、習得ハードルは非常に高くなります。
今回、プログラミング学習でつまづきやすい基礎を5つご紹介します。具体的につまづきやすい基礎を表現する際、実際にコードを使用しますが、この記事ではC#で例を示させていただきます。
初心者がプログラミング学習でつまづきやすい基礎まとめ
初心者がプログラミング学習でつまづきやすい基礎を5つまとめてみました。それぞれのつまづきやすい基礎を詳しく解説します。
環境構築
1つ目は、環境構築です。
プログラミングを学習するためには、まず環境構築が必要になります。環境構築をすることで、実際にプログラムを書きながら覚えることができるため、学習を進める上で必須です。
『環境構築は簡単なのでは?』と思われる方もいるかもしれません。しかし、GUIでインストールできないものもあるため、アプリケーションをパソコンにインストールするような手順で環境構築ができないものもあります。また、プログラミング言語やフレームワーク、統合開発環境など、さまざまなプログラムやアプリケーションをインストールしなければなりません。そのため、独学の場合、『Hello ,World』を出力させるまでにかなり時間がかかることもありますし、自分の力で『Hello ,World』を出力させられない人も多いのです。
環境構築ができない場合、そもそも学習を進めることができないため、挫折してしまう原因になります。
クラス
2つ目のつまづきやすい基礎は、クラスです。
クラスとは、オブジェクト指向プログラミングの概念を採用したプログラミング言語で用いられ、変数やメソッドなどをまとめたものを意味します。
【C#のクラス】
class Wizardia { //※わかりやすくするため、メンバー変数やコンストラクタ、プロパティ、メソッドは省略 }
プログラミング言語によって異なりますが、C#の場合、クラスは下記で構成されます。
- メンバー変数(フィールド)
- メソッド
- コンストラクタ
- プロパティ
クラスはオブジェクト指向プログラミングの中の基礎に位置付けられます。再利用性や拡張性を高めることができるため、オブジェクト指向プログラミングにおいて必須です。
しかし、プログラミング初心者にとって、まずオブジェクト指向を理解することが難しいです。オブジェクト指向という概念を理解できないとクラスの深い理解は得られません。また、コンストラクタやプロパティなども理解する必要があるため、初心者がつまづきやすい部分のひとつです。
条件分岐
3つ目は、条件分岐です。
条件分岐は、ある条件がTrueの場合に処理を実行することができる構文を意味します。例えば、変数に代入されている数字が10以下なら一連のステートメントを実行するというような形です。
基本的に多くのプログラミング言語において条件分岐は下記の2つを意味します。
- if文
- switch文
if文は条件式がTrueの場合に、一連のステートメントを実行します。また、Falseの場合はelse文のブロックが実行されます。
【C#のif文】
if (条件式) { // 条件式がTrueの場合に実行される処理 } else { // 条件式がFalseの場合に実行される処理 }
switch文は、式の値に基づいて当てはまる分岐をひとつ選択し、その中のコードを実行します。
【C#のswitch文】
switch (式) { case 値1: // 値1に対する処理のコードを書く break; case 値2: // 値2に対する処理のコードを書く break; // caseは必要に応じて追加することができる default: // どのcaseにも当てはまらない場合に実行する処理 break; }
プログラミング学習の基礎の中で条件分岐は比較的理解しやすいほうです。『もしも~なら』という考え方は、日本語にも存在するため、イメージしやすくなります。
しかし、条件分岐の概念ではなく、条件式につまづくケースが多いです。本格的なプログラミングで使用される条件分岐は、『変数aに1が代入されているなら~』というような簡単なものではありません。例えば、下記のような例が挙げられます。
【C#の複雑な条件式のif文】
if ((a == 1 && b == 2) || (c == 3 && d != 4)) { // aが1かつbが2であるか、cが3かつdが4でない場合に処理を実行 }
if (a + b * c > d || a != b && c <= d) { // a + b * cがdより大きいか、aとbが異なりかつcがd以下である場合に処理を実行 }
このような複雑な条件式は初心者にとって理解しづらいものになります。そのため、プログラミング学習の基礎でつまづいてしまうポイントのひとつです。
ループ
4つ目は、ループ文です。
ループ文は繰り返し処理を意味します。条件式を満たす場合、ステートメントを実行し続ける構文です。
プログラミング言語などによっても異なりますが、代表的なループ文は下記の2つです。
- for文
- while文
for文は条件を満たす場合に繰り返し処理が実行されます。
【C#のfor文】
for (初期化式; 条件式; 更新式) { // 繰り返し処理 }
また、while文は条件式を満たす間、繰り返し処理が実行されます。
【C#のwhile文】
while (条件式) { // 繰り返し処理 }
本格的なループ文は条件式が複雑になります。また、繰り返し処理をイメージすることが初心者とって難しいため、プログラミング学習でつまづくポイントのひとつです。
関数
5つ目は、関数です。
関数は処理をまとめたコードの塊のことを意味します。例えば、足し算をする関数、引き算をする関数というように、それぞれの関数で処理する内容を決めて使いまわすのが一般的です。
【C#の関数】
public int Add(int a,int b) { int result = a + b; retuen result; }
アクセス修飾子、戻り値、関数名を書き、そのあとに引数を決めます。アクセス修飾子には、publicやprivateなどがあり、戻り値は値の型を入力します。
関数は、概念が抽象的であるため、初心者にとってわかりづらいです。また、構文が複雑であり、実用性がイメージしづらいため、つまづきやすいポイントにひとつになります。
ちなみに、C#やJavaでは、クラス内の関数のことをメソッドと呼ぶことがあります。言語によって呼び方が異なる場合もあるため、その点は覚えておくといいでしょう。
まとめ
今回は、プログラミング学習でつまづきやすい基礎を5つご紹介しました。プログラミング学習において重要なことは、できるだけつまづく部分を排除し、挫折のリスクを減らすことです。そのため、はじめてプログラミングを学ぶ方や最後までやり遂げたいという人は、プログラミングスクールに通うことを検討してみてはいかがでしょうか?