情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

学生でも社会人でも分かる!!初めてのプログラミング入門 第1回 プログラミングとは

プログラミングとは何か? #1

この連載記事はプログラミングについて1から解説することを目的としています。

なので、まずはそもそもプログラミングとはどういうものであるかを説明するところから始めたいと思います。

この連載記事に辿り着いた皆さんはきっと日頃からパソコンを色々なことに使っていることかと思います。

仕事で使っているという方や、ゲームをするのに使っている方や、はたまた、大学の授業のレポートを書くのに必要という方もいるかもしれませんが、皆さんはパソコンを使う時、どのようにしてパソコンを操作しているでしょうか?

恐らくはマウスやキーボードを使ってパソコンを操作しているのではないでしょうか(中にはそれ以外のものを使っているという方もいらっしゃるかもしれませんが、マウスとキーボードを使っている方が大半かと思います)。

マウスを使えばマウスポインタを動かしたり、画面上に表示されている何かしらのものをクリックしたり、ドラッグしたりすることができます。

キーボードを使えば文字を入力したり、矢印キーでスクロールバーを動かしたり、更には、コピーペーストのような便利な操作を行うこともできます。

それでは、このマウスやキーボードによるパソコンの操作というのは、結局、パソコンに対して何をしているのでしょうか。

実は、パソコンの操作というのはパソコンに対して何らかの命令を与えているということでもあります。

たとえば、パソコンのデスクトップにある「ごみ箱」のアイコンをダブルクリックしてみると、「ごみ箱」の画面が表示されます。

これは結局、「ごみ箱」アイコンのダブルクリックによって、パソコンに対して「「ごみ箱」の画面を表示しろ」という命令が与えられて、その結果、パソコンが与えられた命令通りに「「ごみ箱」の画面を表示した」ということなのです。

パソコンは動いている間ずっと私たちユーザが何か命令を与えるのを待っています。そして、いざ命令が与えられるとその命令に従った何かしらの行動を起こすのです。

なので、ユーザとパソコンの関係というのは「命令を与える者」と「命令を受ける者」の関係なのです。

そして、ユーザがパソコンに対して命令を与えるための手段がマウスやキーボードです。

という訳で、ユーザとパソコンとマウスやキーボードの関係を図に表すと下のようになります(細かいことを端折ったかなり単純な(単純化させ過ぎな)図になっていると思われるかもしれませんが、今後この連載記事ではこのような図を多用していきますので慣れてください)。

パソコンマウスやキーボードユーザマウスやキーボードによる操作

さて、ここまで全くプログラミングとは関係のなさそうな話をしてきました。プログラミングの話をするのではなかったのかと不可解に感じている方もおられるかもしれませんが、実は、今までの話はプログラミングと関係のある話なのです。

実は、マウスやキーボードと同じく、プログラミングというのはパソコンに対して命令を与えるための手段の1つなのです。

そういう意味で、先程の話はプログラミングと関係のある話だったのです。

つまり、パソコンに対して命令を与えるための手段には下の2つがあります(もしかしたら、これ以外にも何か他の方法があるかもしれません)。

  • マウスやキーボード
  • プログラミング

皆さんはマウスやキーボードによるパソコンの操作には慣れ親しんでいることと思います。なので、上の箇条書きの1つ目については既にマスターしています。

そして、プログラミングを習得するというのは、上の箇条書きでは2つ目に当たる、パソコンに対して命令を与えるためのもう1つの手段をマスターするということなのです。

プログラミングをマスターすることによって、皆さんが使える、パソコンに対して命令を与えるための手段が増えるということです。

プログラミングとは何か #2

上の説明でプログラミングの立ち位置については理解できたことと思います。

図にするとこうなります。

パソコンマウスやキーボードユーザパソコンプログラミングユーザマウスやキーボードによる操作プログラミングによる操作

しかし、これではマウスやキーボードとプログラミングの違いが何も分かりません。

プログラミングというものは、具体的にはどのようにしてパソコンに対して命令を与えるのでしょうか。

実は、プログラミングによるパソコンの操作というのは2つの段階に分かれます。

それは、

  • プログラムを作る段階
  • プログラムを動かす段階

の2つです。

ここでプログラムという新しい言葉が出てきましたが、プログラミングによるパソコンの操作においてはこのプログラムというものを介在させることによってパソコンの操作を行います。

このプログラムは、勝手に作られるものではなく、自分で作らなければなりません(あるいは、誰かに作ってもらわなければなりません)(実を言うと、「プログラミング」の原語の「programming」は「プログラム」の原語の「program」に「ing」という接尾辞が付いて出来た言葉で、直訳すると「プログラムを作ること」となります。要は、「プログラミング」のそもそもの意味は「プログラムを作ること」なのです)。

そのため、プログラミングによるパソコンの操作では最初に「プログラムを作る段階」が必要になります。

実は、プログラムを作るのもパソコンを使って行いますので、プログラムを作る際にはマウスやキーボードを使ってパソコンを操作しながら作っていくことになります(この点はちょっとこんがらがりやすいかもしれません。先に下の図を見ていただいた方がイメージが湧きやすいかもしれません)。

そして、プログラムを作ることができたら、次の「プログラムを動かす段階」に進むことになります。プログラムを動かすというのはある意味で私たちがいつもマウスやキーボードを動かしてパソコンを操作しているのと同じで、これによって実際にパソコンを操作する、すなわち、パソコンに命令を与えることができます。

つまり、プログラムを作るだけではパソコンに命令が与えられることはありませんが、作成したプログラムを動かすことによってプログラムに基づいてそこで実際にパソコンに対して命令が与えられるということです。そして、パソコンは命令が与えられるとその命令に従った何かしらの行動を起こします。

図にすると下のようになります。

パソコンマウスやキーボードユーザパソコンプログラムマウスやキーボードユーザマウスやキーボードによる操作プログラミングによる操作

この図をよく見てみると、左のマウスやキーボードによる操作の場合は3つのものしか関与していないのに対して、右のプログラミングによる操作の場合は4つのものが関与していることが分かります。

しかも、右の図は左の図とよく似ていて「プログラム」という余分なものが「マウスやキーボード」と「パソコン」の間に入っただけに見えます。

一体、「プログラム」というものが間に入るとどんな良いことがあるというのでしょうか?

ただただ本当に、無駄なものが入っただけなのではないのでしょうか?

実は、この「プログラム」という部分こそがプログラミングというものを理解するための鍵となる部分なのです。

そのため、まずはこのプログラムというものが何なのかを見ていく必要があります。

プログラミングとは何か? #3

さて、プログラミングとは何かということについて更に詳しく見ていくために、また、プログラムとは何なのか見ていくために、マウスやキーボードによるパソコンの操作とプログラミングによるパソコンの操作を更に詳しく比較しましょう。

今度はマウスとキーボードによる操作の具体例を挙げながら話していきたいと思います。

現在私のパソコンのあるフォルダには1枚の画像ファイルが保存されています。

フォルダの内容

私はこの画像を半分のサイズにリサイズしたくなりました。

このような場合には私はマウスやキーボードを使ってどのような操作を行わなければならないでしょうか。

画像をリサイズするのにはウィンドウズに最初からインストールされている「ペイント」というソフトを使うことにしましょう。

「ペイント」で画像をリサイズするには、まずリサイズしたい画像ファイルを「ペイント」で開かなければなりません。

これは画像ファイルを右クリックすると出現するメニューの「プログラムから開く」の「ペイント」をクリックすることによって行うことができます。

メニュー

この項目をクリックすると「ペイント」が起動し、ファイルが開かれます。

画像ファイルのオープン

そうしたら、「ペイント」で実際に画像のサイズ変更を行わなければなりません。

「ペイント」では画像のサイズ変更は「サイズ変更と傾斜」というウィンドウから行うのですが、このウィンドウを表示するにはキーボードのCtrlキーを押しながらWキーを押します。

サイズ変更と傾斜

「サイズ変更と傾斜」ウィンドウが表示されました。

サイズ変更をするにはこのウィンドウの「サイズ変更」の「水平方向」と「垂直方向」を設定します。

今回は半分のサイズに変更するので両方に50と入力します。入力したら「OK」ボタンをクリックします。

画像のサイズの変更

これで画像の大きさが半分になりました。

画像のサイズの変更

最後に画像を上書き保存します。上書き保存するにはキーボードのCtrlキーを押しながらSキーを押します。

保存が終わったら「閉じる(×)」ボタンをクリックして「ペイント」を終了します。

ここまでの操作で画像ファイルのサイズを半分にすることができました。

これが正にマウスやキーボードによるパソコンの操作の一例です。

マウスやキーボードによる操作の場合、マウスやキーボードを操作する度にその場でパソコンに適切な命令が出され、パソコンは命令通りの動作を行います。

実は、プログラミングによる操作の場合はこの点が大きく違っています。

プログラミングの場合はその場その場でパソコンに命令を出すのではなく、まずパソコンに出したい命令を全て先に書いてしまうのです。そして、命令を書く作業が完全に終わってしまってから「「書かれている通りに命令を実行しろ」という命令」のみをパソコンに出すことによって、最初に書いた命令を一気に全て実行させるのです。

このようにして行うのがプログラミングによるパソコンの操作です

ですから、パソコンに対する命令を全て先に書いてしまうのが上で書いた「プログラムを作る段階」に相当し、「「書かれている通りに命令を実行しろ」という命令」のみをパソコンに出すのが「プログラムを動かす段階」に相当します。

ということは、プログラムとは何かと言えば、実は、

  • パソコンに対する命令を記述したもの

だったのです。

パソコンにやってほしいことを命令として記載している文書がプログラムなのです

さて、上でマウスとキーボードを使って画像を半分の大きさにリサイズする例を出しましたが、この例を出したのはマウスやキーボードによるパソコンの操作とプログラミングによるパソコンの操作を比較するためでした。

なので、同じことを今度はプログラミングによる操作で行おうとするとどのようになるか考えましょう。

プログラミングによるパソコンの操作はプログラムを作る段階と動かす段階に分けられるのでした。

なので、まずはプログラムを作らなければなりません。作らなければならないのは勿論「画像を半分の大きさにリサイズするプログラム」です。

上でプログラムとはパソコンに対する命令を記述したものだと書きました。ですから、画像を半分の大きさにリサイズするプログラムというのは、画像を半分の大きさにリサイズするために必要なパソコンに対する命令を順番に記述したものだということです。

ということは、上で実演した、画像を半分の大きさにリサイズする作業から具体的なパソコンの操作手順を抜き出して書き出していけばプログラムに近いものが出来るということではないでしょうか。

それを試してみた結果が下です。実は、プログラムというのはイメージ的には正に下のようなものになります

  • 画像を右クリックする。
  • 「プログラムから開く」を選ぶ。
  • 「ペイント」を選ぶ。
  • Ctrlキーを押しながらWキーを押す。
  • 「水平方向」に50と入力する。
  • 「垂直方向」に50と入力する。
  • 「OK」ボタンをクリックする。
  • Ctrlキーを押しながらSキーを押す。
  • 「閉じる(×)」ボタンをクリックする。

さて、上で「イメージ的」と書いたのには理由があります。

実は、上の箇条書きをパソコンに対する命令としてそのままパソコンにやらせようと思っても、パソコンは思った通りに動いてくれません(というか、パソコンにはそもそも上のような箇条書きに書かれている内容を理解してそのまま忠実に実行してくれる機能は搭載されていません)。

パソコンというのは人間に比べると計算能力や記憶能力には優れていますが、言語能力にはあまり優れていません。

そのため、残念ながら、パソコンは上のような日本語で書かれた文章を理解する能力さえ持ち合わせていません。

なので、あくまでも上の箇条書きはプログラムの「イメージ」であり、実際のプログラムとは異なります

とは言え、これは余談ではありますが、もしパソコンがもっと賢くて日本語を理解することができ、上のような箇条書きの内容を理解してその命令を実行することができたなら、上の箇条書きはプログラムと言えることになります。

将来パソコンがもっともっと賢くなっていけば上の箇条書きがプログラムと呼ばれるようになる日がもしかしたら来るかもしれません。

しかし、現在のパソコンは日本語を解することはできません。英語を解することもできません。基本的に人間の言葉は、少なくとも完璧には、理解することができません(パソコンに翻訳させた文章の酷さを考えてみれば分かるでしょう)。

ではどうすれば良いのか、つまり、どうやってプログラムを書けば良いのかというと、パソコンが理解することのできる専用の言語を使って書きます。

この専用の言語のことをプログラミング言語と言います(あるいは、プログラム言語と言う人もいます)。

つまり、要は、上の箇条書きをプログラミング言語を使って書き直せばプログラムになるということです。

ちなみに、日本語や英語や中国語など、人間が話す言葉に色々なものがあるように、プログラミング言語にも様々なものが存在します。なので、実際にプログラムを書く時にはどれか1つのプログラミング言語を使ってプログラムを書くことになります。

プログラムが作れたら次はプログラムを動かす段階です。

上でも書きましたが、プログラムを動かすのはある意味マウスやキーボードを使ってパソコンを動かすのと同じで、プログラムの動かし方というものが決まっています。

プログラムを動かす際にはその決まりに従って動かすということになります。

そして、プログラムを動かすとパソコンが実際にプログラムに書かれている通りに動いて、やりたかったことが実現できるという訳です。

これがプログラミングによるパソコンの操作の詳細です

全体の流れの確認のために上の図を再掲しておきましょう。

パソコンマウスやキーボードユーザパソコンプログラムマウスやキーボードユーザマウスやキーボードによる操作プログラミングによる操作

プログラミングのやり方が大まかに理解できましたでしょうか。

プログラミングの利点

プログラミングがどういったものであるか何となく分かってきても、もしかしたらまだ腑に落ちない点があるかもしれません。

上の図を見ても明らかですが、マウスやキーボードによるパソコンの操作とプログラミングによるパソコンの操作を比べると、プログラムというものが間に入っている分だけプログラミングによる操作の方が断然難しいです。

マウスやキーボードによる操作の場合はマウスやキーボードを動かした通りにパソコンが動くので単純明快です。しかも、マウスやキーボードの使い方さえ覚えてしまえばある程度パソコンを動かすことができます。

しかし、プログラミングによる操作の場合はプログラムを作るという部分がとても大変そうです。

その場その場でパソコンを動かすのと違ってまずプログラムを書かなければならないとなると、どういう命令をパソコンに出せばパソコンがどういう動きをするのか想像しながら書いていかなければならなくなります。ある意味頭の中でパソコンの動きをエミュレートするようなものです。

しかも、プログラムは日本語では書けません。プログラムはプログラミング言語という専用の言語で書かなければなりません。

ということは、プログラムを書くにはまずもってプログラミング言語を覚えなければならないということでもあります。

マウスやキーボードならまだしも、パソコンを使うのに新しい言語を覚えなければならないなんてげんなりです。

結局、プログラムを書くには、あるいは、プログラムが書けるところまで行くのにさえ、非常にコストが掛かります。それはプログラムを書いたりするのに掛かる時間もそうですし、自身で色々なことを勉強したり、練習したりしなければならないのも苦痛かもしれません。

しかし、もしかしたらプログラミングにはそれをするだけのリターンがあるかもしれないのです。

最後に、ある意味初心者の方にとっては死活問題かもしれないこの点について話して今回の記事を締め括りたいと思います。

先述の通り、どうやらプログラミングには色々と難点もありそうでした。

しかし、勿論利点もあるのです。利点がないのなら私もこんなプログラミング講座なんて書いていません。

プログラミングの最も大きな利点というのは「繰り返しが非常に得意」だということです。

実は、この「繰り返し」というのがプログラミングにおける本当に重要なキーワードとなっています。プログラミングの醍醐味と言えば「繰り返し」と言っても過言ではないでしょう。

さて、もう1度プログラミングのやり方を思い返してみてください。

プログラミングはプログラムを書く段階と動かす段階に分けられたのでした。

この、書く段階と動かす段階を分離したということが「繰り返し」を行う必要がある場合に非常に利いてくるのです。

どういうことかと申しますと、プログラムというのは一度書いてしまえば動かすのは何度でも繰り返し行うことができるのです。しかも、プログラムを動かすというのは、要は、パソコンに「「このプログラムに書かれている通りに命令を実行しろ」という命令」のみを出すということなので、つまり、プログラムを1回動かすにはパソコンを1回操作するだけで済みます。

この、プログラムを書く段階は1回しか行う必要がなく、プログラムを動かす段階は何度でも簡単に行うことができるというプログラミングの特性こそが正にプログラミングの利点です。

つまり、プログラミングの最大の利点は「繰り返し」にあります。

たとえば、上で画像を半分の大きさにリサイズする例を考えましたが、もしリサイズしたい画像の枚数が1枚ではなく、10枚だったらどうなるでしょうか。

まず、マウスやキーボードによる操作の場合は1枚の画像をリサイズするのに下のような操作が必要でした。

  • 画像を右クリックする。
  • 「プログラムから開く」を選ぶ。
  • 「ペイント」を選ぶ。
  • Ctrlキーを押しながらWキーを押す。
  • 「水平方向」に50と入力する。
  • 「垂直方向」に50と入力する。
  • 「OK」ボタンをクリックする。
  • Ctrlキーを押しながらSキーを押す。
  • 「閉じる(×)」ボタンをクリックする。

つまり、全部で9回の操作が必要です。

ということは、10枚の画像をリサイズするには90回の操作が必要だということです。

次に、プログラミングによる操作の場合ですが、取り敢えず画像をリサイズするプログラムは既に出来ているものとして、プログラムを動かす段階のことを考えましょう。

上で述べた通り、プログラムを動かすのは1回の操作でできますので、1枚の画像をリサイズするにはそのためのプログラムを動かす1回の操作だけで出来ます。

ということは、10枚の画像をリサイズするには10回の操作しか必要ないということです。

1回の操作に掛かる時間が全て同じだとすると、プログラミングによる操作の場合はマウスやキーボードによる操作の場合に比べて実に80回も少ない操作回数で作業を終えることができ、作業時間もそれに合わせて短くなるということです。

しかし、今はまだプログラムを作る段階のことを勘定に入れていないのでした。実際にはプログラムを作るのに幾許かの時間が掛かります。

ということは、マウスやキーボードによる操作とプログラミングによる操作のどちらが早く作業を終えられるかはプログラムを作る段階に掛かる時間がどれくらいになるかに掛かっているということです。

この時間がもし80回の操作を行うのに掛かる時間より短いならプログラムを作って作業した方が早く終わるということですし、逆に長いならマウスやキーボードの方が早いということです。

少なくとも、プログラミングによる操作の場合の方が早く終わる可能性はあります。

それに、今は10枚の画像をリサイズする場合で考えていましたが、これがもし100枚の画像をリサイズするのだったらプログラムを作るのに800回の操作を行うのに掛かる時間より短い時間しか掛からないならプログラミングの方が有利だということになりますし、1000枚の画像なら8000回の操作、1万枚の画像なら8万回の操作という風にリサイズしなければならない画像が増えれば増えるほどプログラミングの方が有利になります。

さて、ここまでの話を纏めると、同じことを何度も繰り返さなければならないような作業の場合、プログラムを作った方が作業を早く終わらせられる可能性があるということです。つまり、作業効率が良いということです。

そして、この世の中は「繰り返し」で溢れています。心臓の拍動は一生の間続く「繰り返し」ですし、呼吸も吸って吐いての「繰り返し」です。寝て起きるのも「繰り返し」ですし、会社に行って帰ってくるのも「繰り返し」です。

商品を仕入れるのも発送するのも「繰り返し」です。ブログに記事を投稿するのも「繰り返し」です。FXのトレードも買っては売り、売っては買いの「繰り返し」です。

そう、この世の中は「繰り返し」で溢れています。

確かに、プログラムを作るという作業は非常にコストの掛かるものです。

しかし、この世の中は「繰り返し」で溢れていて、だからこそ「繰り返し」に強いプログラミングはこの世の中で大きな力を発揮する可能性があるのです。

このように、効率性がプログラミングの最も大きな利点ですが、次に大きいのは正確性です。

どうしてもミスを犯してしまう人間と比べて、パソコンというのは命令には忠実に従う存在です。

なので、一度プログラムを書いてしまえばそのプログラムが正しい限りパソコンが間違えることはありません。

  • 効率性
  • 正確性

大体この2点がマウスやキーボードによるパソコンの操作とプログラミングによるパソコンの操作を比べた場合のプログラミングによる操作の利点です。

なので、パソコンでの作業を効率化したいとか、作業の正確さを向上させたいという希望を持っている方にとってはプログラミングは良い手段になり得ます。

つづく

ここまでの説明で読者の皆さんもプログラミングがどういうものなのか、更に、プログラミングのどういう点が利点なのか分かっていただけたのではないでしょうか。

今回の記事はこれでおしまいです。

次回は実際にプログラミングによるパソコンの操作を体験していきたいと思います。

実際に体験することでプログラミングがどういうものなのかより良く理解することができ、そして、最終的には実際のパソコンの操作に応用できるようになります。

プログラミングは奥の深い世界ではありますが、直感的で簡単なところから始めていきますので心配は無用です。

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-プログラミング, 講座