順番通り決められた動き
まず、目の前に機械があるとします。その機械は、もちろんですが電源を入れると動作します。
では、その機械がもっと複雑なものになったと考えてみましょう。この機械は、電源が入ると「順番通り」決められた動作をします。この時動作する順番と内容はどこかに保存されていて、それを読み込むことで動作するとしましょう。
次に、「順番通り」決められた動作を、自由に決められるならどうでしょうか。その機械は、動作Aを行うことも、Bを行うこともできるようになります。
プログラミングに関して、抽象的な形で考えてみましょう。
プログラミング言語とはどんなものでしょうか。 一つずつ理解していきましょう
まず、目の前に機械があるとします。その機械は、もちろんですが電源を入れると動作します。
では、その機械がもっと複雑なものになったと考えてみましょう。この機械は、電源が入ると「順番通り」決められた動作をします。この時動作する順番と内容はどこかに保存されていて、それを読み込むことで動作するとしましょう。
次に、「順番通り」決められた動作を、自由に決められるならどうでしょうか。その機械は、動作Aを行うことも、Bを行うこともできるようになります。

そうなれば、一気にその機械の使い道が増えてくるでしょう。抽象的に考えるなら、プログラミングとは機械にある動作をさせるための手段です。また、プログラミングという行為は、プログラミング言語を使って記述します。
プログラミング言語は、機械に望む動作をさせる指示書を書くための言葉なのです。

それでは、指示書を書くための言葉を、いつ、どこで使うことができるのでしょうか。 日本では、主に日本語という言語を使って話をします。 では、プログラミング言語は?
プログラミング言語は、機械が読めるような場所で書く必要があります。 また、機械が読めるような形になっていないといけませんね。
まず、機械が読めるような形とはどんなものでしょうか。 もちろん電気を使って動作する機械ですので「電気」で信号を表現します。
電気を信号として考える、ということは、どんなことなのでしょうか。 一番最初に話した、電源をつけるという話を思い出してください。
そうなると電気を「つける」と「つけない」を使って、2つの信号が表現できそうですね。 電気がついていることを1、ついていないことを0にして、どこかに保存することができるとしましょう。 また、保存も「いっぱいできる」としてみましょう。
すると、1110001010100…. のようなものが作れると思います。 つまり、数字で言えば「2進数」に当たる、何らかの情報が表現できますね。

このように、電気を利用した信号を、基本的な足し算ができる機能を使って計算し、それらをさらに複合して文字を定義していきます。定義した情報は、メモリと呼ばれる保存領域に保存しながら、またメモリから情報を読み込みながらもっと複雑な情報を表現していきます。
そうやって、ようやく人間が理解でいそうな文字という存在を、機械が表現できるようになります。そして、今まで起きた、「一つできるようになったことを反復、複合して」新しい表現が可能になる。この繰り返しによって、徐々に機械と「対話」できる状態に向かっていきます。