プログラミングとは何をすることなのか?

Loading

まずは初歩の初歩として プログラミング とはなにかについて説明したいと思います。

この現代において、IT技術は社会のすみずみにまで浸透しています。
スマホでネットの記事を見る、タブレットで動画を見る、仕事でパソコンを触る……などなど、誰しもが日々なんらかのアプリケーションを利用して生活していることでしょう。

ところで、これらの便利なアプリケーションたちは、一体どうやって作られているのでしょうか。
「誰かが プログラミング をして作っている」
と、なんとなくぼんやりと理解しているかもしれません。
では、この「 プログラミング 」とは具体的には何をしているのか、みなさんは答えられますか?

以下では「プログラミングとはなんなのか」についてなるべく易しく解説していきたいと思います。

目次

「 プログラミング をする」とは「機械に命令をすること」

プログラミングという言葉で、プログラマーたちは何をしているか?

ずばり答えを言うと、「 プログラミング 」とはスマホやパソコンなどの機械に何かをしろと命令することです。

例えば「お皿を片付ける」人のことを考えてみます。
その人は自分でテーブルの上にあるお皿を見つけて、自分でそれを手にとって、自分でそれを棚に戻すという「判断」をするでしょう。
しかし、機械はそういった「いい感じに判断して処理する」ということができません

そこでプログラミングの登場です。
なんらかの「判断」をする必要がないほど詳細に手順を教えて命令することで機械に処理をさせる。
それがプログラミングでやることです。

詳細な手順を教えればパソコンは理解してくれる

ロボットにお皿を片付ける命令をする(=プログラミングをする)ことを考えてみましょう。
プログラムには、次のような命令を(こまごまと)機械に与えることになります。

  1. センサーで周りを見渡せ
  2. 白くて丸くて薄くて陶器でできたもの(=お皿のことです)を見つけたら、その位置までアームを上に上げろ
  3. 目標の高さになったら、アームをお皿に伸ばせ
  4. もし、アームが周りのものにぶつかったら(例えばテーブルとか)、もういちど2からやり直せ
  5. なににもぶつからずお皿まで伸ばせたら、お皿を掴め
  6. …………(以下、省略)

このように自分で「判断」する必要がないほど細かい命令なら、機械は理解できます

これが、「プログラミングをする」という言葉の意味になります。

プログラミング でできること

スマホやパソコンに細かい命令を出すことで、一体何ができるでしょうか?
例えば次のようなことができます。

  • アプリケーションを作る
  • WEBサイトを作る
  • ゲームを作る
  • ロボットの動きを制御する
  • ルーティンワークを自動化する
  • AIを作る

などなど、実に様々です。
これら全て、人間が書いたプログラムを書くことによって、機械に思い通りの処理をさせることで実現していることなのです。

プログラミング 言語

ところで、これらの命令は日本語で書いているのでしょうか?それとも英語?

いいえ、機械は日本語や英語のような、人間が話して理解できる言葉で書かれるわけではありません。
プログラムは全て、機械が理解できる言語、プログラミング言語で書かれています。
(ちなみに、日本語や英語のような人間が理解できる言語を「自然言語」と呼びます)

日本人に対しては日本語を、アメリカ人に対しては英語を、中国人に対しては中国語を話すように、機械に対しては機械語を、すなわちプログラミング言語で命令を与えなければなりません。

もしかしたら、みなさんの中にはCやC++(シープラプラと読みます)、あるいはJava(ジャバ)とかPython(パイソン)という言葉を聞いたことがある人がいるかもしれません。
上にあげた例は全てプログラミング言語の例です。
英語以外にも中国語やフランス語、イタリア語やドイツ語があるように、プログラミング言語にもいろいろと種類があるのです。

自然言語のようにプログラミング言語にも種類がある

プログラミング 言語はなんでいろんな種類があるの?

そうすると、もしかしたら次のような疑問を持つかもしれません。

「じゃあ、パソコンの種類によってはCしか理解できないものとか、C++しか理解できないものとか、Javaしか理解できないものとか、そういう区別があるの?」

いいえ、必ずしもそうではありません。
実を言うと、パソコンは購入した最初からプログラミング言語を知っているわけではありません
プログラミング言語を通して機械に命令するには、あらかじめ「翻訳機」のようなものを渡してあげる必要があります。
これを専門用語で「実行環境をインストールする」あるいは「実行環境を整える」などと言います。
この実行環境という言葉の意味や、その具体的な内容に関しては、また別の記事で詳しく説明したいと思います。

今はとりあえず、「Cの翻訳機を渡してあげればCで、C++の翻訳機を渡してあげればC++で、Javaの翻訳機を渡してあげればJavaで、パソコンに命令することができる」とおぼえておいてください。

ではなぜそのようないろいろな種類のプログラミング言語があるのでしょうか。

答えは言語によって得意とする命令が違うからです。

最近では人工知能(AI)が一般に普及し、日々の生活に利用されていることはご存知かと思います(あなたが無人島に10年以上住んでたりしない限り)。
耳ざとい人は、もしかしたら「AIを作るにはPythonが適している」などの言葉を聞いたことがあるかもしれません。
あるいは「CやC++は実行速度が早い」とか「Javaは大規模開発に向いている」、「Ruby(ルビー)は簡単にプログラミングできる」などということは知っていたりするかも。
これらは全て100%正しい!!……とまでは言い切れないのですが、少なくともそれぞれの言語には特徴があることだけは確かです。

システムエンジニアは、プログラミングで実現したい目的に対して、どのようなプログラミング言語が適しているか、それぞれの言語の特徴をもとに決断してプログラムを作っています。

初心者も言語ごとの特徴を知っていなければならないの?

言語の特徴をしらなきゃダメ?

では、プログラミングをこれから学びたいと思っている人(この記事の読者は9割がたそうだと思います)は、これらの特徴を知ってからでないと学べないの?と思うかもしれません。

いいえ、そんなことはありません。

趣味にせよ、仕事にせよ、プログラマーとして活躍している人たちは最初からそのような特徴をもとにプログラミングを学習したわけではありません。
中には、「Cに興味があったからCを学んだ」とか、「たまたま必要で覚えたのがJavaだった」などの理由で言語を選んだ人が大半だと思います。

そんな理由でいいのです。

筆者も、最初はJavaからキャリアをスタートしました。
その後自分なりにスキルアップのつもりで、少しづつ他の言語にもトライしたのです。

みんなそうやってプログラマーになりました。

最初はなにか一つ、適当なプログラミング言語を選んでみましょう。
興味があるからといった理由でもいいですし、この言語の求職の年収が高いから、といった理由でもかまいません。
なにか一つプログラミング言語を覚えれば、「プログラミングってこういうものか」と勘所が掴めます。
別の言語を学ぶのはそのあとでもいいのです。
もっと言うと、最初に学んだ言語、それ一本で世の中を渡っているプログラマーもい(ると思い)ます。

Hello, world!!

まずは何か一つの言語からプログラミングを覚えてみましょう。
そのためのお手伝いをCODAがします。

ようこそ、めくるめくプログラミングの世界へ。

「Hello, world!!」