ITのはてな

プログラミングの独学を始める社会人必見!そもそもプログラムってなに?

「プログラミングを勉強してIT人材になりたい!」

「でも、そもそもプログラミングってなに?」

「プログラミング言語を覚えるのは難しそう」

そんな悩みを持つ方も多いのではないでしょうか。

実は、プログラミングをするのにプログラミング言語は必須ではありません。

実際、2020年から小学校で必修化された「プログラミング教育」で、プログラミング言語を教えることはありません。

教えるのは「プログラミング的思考」です。

プログラムは「処理手順を記したもの」で、例えば鉛筆で紙に書くことでもつくることができます。

この記事では、プログラミングの本質。プログラミング的思考とは何なのか解説していきます。

“社会人も小学生もプログラミング!” でも「プログラムって?」

ここ数年ですっかり広まった「プログラミング」という言葉。

2020年4月から小学校で「プログラミング教育」も始まり、今後ますます注目が集まりそうです。

ただ、プログラミングを理解するにはあたっては、少し注意が必要です。

プログラミングとはプログラミング言語を使って、難しそうなコードを書くこと…。

では、ありません。

実は、プログラミング言語を使わなくてもプログラミングはできるのです。

そもそも、プログラミングとは「プログラムをつくること」を意味します。

では、プログラムとは何を指すのでしょうか。

辞書を引くと、以下のように説明されています。

①予定。計画。また、それを表にしたもの。予定表。

②放送・映画・演劇・各種催し物などで、各出し物の組み合わせ。また、その演目・曲目・順序・内容などを印刷した番組表や小冊子。

③コンピューターに処理させる仕事の手順を精密に記述したもの。また、それを作成すること。

明鏡国語辞典(2002-2009)

以上の説明をより簡潔にまとめると、プログラムは「処理手順を記したもの」と言うことできます。

運動会や音楽会などの学校行事を思い出してください。

学校から配布される競技や発表の順番が書かれた冊子。あの冊子をプログラムと言っていましたね。

行事で生徒たちが行う行動の手順が記されていることからプログラムと呼ばれてるのです。

ということは運動会や音楽会のプログラムをつくった先生も、実はプログラミングしていたということもできます。

学校の先生は実はプログラマー!

こう聞くと、プログラミングを少し身近に感じないでしょうか。

プログラミングは「処理手順を記したものつくること」。

なので、紙とペンがあればできるのです。

実際、運動会や音楽会のプログラムも紙に日本語で印刷してあったはずです。

プログラミングの本質は「処理手順」を考えること

ただ、コンピュータが理解できるようなプログラムをつくためには、人間の言葉で書くわけにはいきません。

そこで、登場するのがプログラミング言語です。

例えば、以下のようなプログラムがあったとします。

<AとBを比較して一致する数字を足すプログラム>

① 「1,5,7,11,18,20,22,25,28,36」という数字の集合Aと、「2,7,9,15,17,22,29,30,36」という数字の集合Bがある。

②集合Aの数字を1つずつ取り出して、集合Bの数字と同じものがあるか調べる。

③もし、共通する数字があれば、その数字をすべて足す。

このプログラムを実行すると65という数字が得られます。

これを、コンピュータが理解できるようにプログラミング言語「Python」で書くと以下のようになります。

#coding:UTF-8

A = [1,5,7,11,18,20,22,25,28,36]

B = [2,7,9,15,17,22,29,30,36]

result = 0

for i in A:
    if i in B:
        result += i

print(result)

このプログラムをコンピュータで実行すると、同じように65という数字が表示されます。

「情報って何だろう」という記事でも解説しましたが、情報を伝えるときには、伝える相手によって手段を変える必要があります。

プログラムも人間に伝える場合と、コンピュータに伝える場合で、表現方法が変える必要があるということだね。

プログラミング的思考とは

ここまで解説したことをまとめると、プログラミング言語でコードを書くということが、プログラミングにおいて本質的な作業ではないことにお気付きにならないでしょうか。

プログラムを作成するために、プログラミング言語が必須ではないからです。

運動会や音楽会の冊子のように、プログラムはプログラミング言語を使わずに日本語でも作ることができるんだったね。

大切なのは、プログラムの中身。

つまり、何かの目的を達成するために、どのような「処理手順」を踏めばいいのか。

この「処理手順」を考えることこそが、プログラミングの本質的な作業になります。

処理手順がまとまって初めて、日本語やプログラミング言語でプログラムの作成が可能になるからです。

2020年から小学校で必修化されたプログラミング教育でも重視されているのが、この処理手順を考えること。

教育現場では、この処理手順を考えることを「プログラミング的思考」と呼んでいます。

きょうのまとめ

・プログラムは「処理手順を記したもの」
・プログラムはプログラミング言語で作る必要はない
・処理手順を考えること=プログラミング的思考