Introduction
プログラムって、いったい何なの。
何か最近よく聞くよね。
数年前から良く聞くようになった「プログラム」とか「プログラミング」という言葉。
いったいどういうものなのかを簡単に説明していきます。
プログラムとは
プログラムは英語で書くと「program」。
意味としては、計画書・予定表・カリキュラムなどの意味があります。
そういえば、演劇や体育祭などで配られるその日の予定が書かれているものを「プログラム」と呼んでいますね。
コンピュータ用語で使用される「プログラム」も同じ意味合いを持っています。
コンピュータへ「こうしてもらいたい」という計画書を配るような感じです。
「こうしてもらいたい」というよりは「こうしなさい」と指示するので、指示書と言った方が正確です。
そして、その指示書を書く(作る)ことをプログラミングと呼びます。
また、その指示書には、「目的を解決するための手順」を記述することになります。
その、
「目的を解決するための手順」を「アルゴリズム」と呼んでいます。
プログラミングとは、「コンピュータが処理可能なアルゴリズムを記述すること」とも言えます。
プログラミング言語
プログラムはコンピュータへの指示書と書きましたが、指示書を書くにはコンピュータへ指示を伝える言葉が必要ですね。
その言葉のことを「プログラミング言語」と呼んでいます。
困ったことに、「プログラミング言語」はとても種類が多いのです。
ちょっと頭に浮かんだものを並べたただけでも
- JavaScript
- Python
- Ruby
- PHP
- JAVA
- C
- C++
- Perl
- SQL
- VBA
- BASIC
などなど・・・。
人間が普段使用する言葉もいろいろあります。
私たちはもちろん日本語を使用しますが、海外にはたくさんの言語が存在します。国に応じて言葉を使い分ける必要があります。
同じように、プログラミング言語も必要に応じて使い分ける必要があります。それぞれの言語ごとに使用される分野が違いますし、できることの得手不得手というものがあります。
そうなると、全部の言語を覚えなければいけないのでしょうか。
そんな事はありません。どの言語でも使用される大きなポイントがあり、そのポイントを押さえておけば、他の言語でも役に立ちます。
そのポイントとは、
- 順次実行
- 条件分岐
- 繰り返し
この3つがどの言語でも使用する大切なポイントです。
先ほど登場したアルゴリズム(目的を解決するための手順)のポイントと言っても良いでしょう。
3つと聞くと少なく感じますが、様々なパターンがあるので奥が深いのですが・・・。
また、プログラム言語でも互いに似ている言語もあります。
それらは、もちろん覚えやすいでしょう。
また、プログラミング言語を分類で分ける場合もあります。
- 低水準言語(低級言語)・・・機械よりの言語
- 高水準言語(高級言語)・・・人間よりの言語
低水準や低級とよばれていても、レベルが低い言語という訳ではありません。
低水準の方が機械よりの言語なので、より早く命令をコンピュータに伝えることができます。
一方、高水準言語は人間よりで、人間がプログラムを記述しやすくなるように作成された言語です。
他にも、プログラムの実行方式で分類することもあります。
- コンパイラ方式・・・ソースコード全体をコンピュータが実行できる言葉に翻訳してから実行する
- インタプリタ方式・・・1行1行を解釈しながら直接実行する
また、使用用途により分類したりする場合もあります。
用途例:
- 人工知能
- 科学技術計算
- 統計処理
このように、プログラミング言語は多くの種類があり、それらによって、社会の様々なソフトウェアが作成されているのです。
プログラムの学習
プログラムを学習しようとする際に、まず考えるのが「どの言語を学習すれば良いのだろう」ということです。
この問いへの答えは難しいと思います。
先ほど述べたように、プログラムは多くの種類があり用途が異なります。自分が、何のためにプログラムを学習するのか、その目的に応じて考えるべきでしょう。
例えば、
- 面白そうだから
- 何となくやってみたいから
このような場合は、簡単な言語からスタートした方が良いのではないでしょうか。
Web上で学習できるscratchが人気があります。
いっその事、ゲーム機でもちょっとしたプログラム体験ができるものが存在するのでやってみても良いでしょう。
現代は、プログラムの面白さに触れてみたい場合のスタートとしては十分な環境が備わっていると思います。
次のパターンとしては、
- 将来に役立ちそうだから
- プログラマー志望だから
このような場合は、仕事に直結するような言語を最初から学び始めても良いのではないでしょうか。
本やネットの情報だけで、仕事で使用するようなプログラミング言語を習得するのは大変ですが、不可能ではありません。
しっかりした目的があれば、多少つらくても面白味を感じることが無くても続けていけるかもしれません。
他には、
- 受験やテストで必要だから
試験でプログラミングの知識が必要であれば、その試験用の言語を最初から学習した方が効率的です。
言語はそれぞれ特徴があるので、他の試験勉強を考えるとプログラミングだけに時間をかける事はできません。プログラムの面白さというよりも、点数が取れる学習を目指すべきです。
プログラムの楽しさを味わってもらいたい私としては、書きたくない言葉ですが、これが正直な意見です。
また、プログラミング言語を学習するよりも「アルゴリズム」を学習した方が効率的な場合があります。
ということで、人に応じて最初に学習する言語は変わってくると思います。
ここでは具体的な名前は出しません。
現役のプログラマーに聞いても、それぞれ勧めてくれる言語は異なるでしょう。
とにかく、始めることが一番大切です。
一つの言語をある程度理解すると、他の言語を学習する際も自然と楽になりますから。
テストで出題されるときのキーワード
学生の方が押さえておくポイントだよ
- プログラム
- プログラミング
- プログラミング言語
- プログラミング言語の分類例
まとめ
コンピュータが処理可能なアルゴリズムを記述すること
使用用途や実行方式で分類することがある
何かを作るのは楽しいものさー