プログラミングとは、コンピュータに対して、コンピュータにやって欲しいことを命令を書くことです。
コンピュータは命令しなければ何もしないし、して欲しい事を聞くこともないので、人間が何らかの命令をしなければ動きません。コンピュータにやって欲しい事がある場合はプログラミングをします。
プログラミングして出来るのがソフトウェアで、アプリ等とも言われています。そのソフトウェアを動かすためのパソコンやスマートフォンの本体のことをハードウェアと言います。
プログラミングをしなくても使えるコンピュータ
ここで言うコンピュータのハードウェアは、パソコンやスマートフォンの事です。これらの機器を買ってくると、電源を入れて、アイコンをタップするなどすれば自分がやりたいことが出来るようになっています。
これは既にパソコンメーカー、そのスマートフォンにソフトを提供しているメーカーなどが、プログラミングをして使えるソフトを使えるような状態にしているからで、既にプログラミングされた製品を使っている状態です。
つまり、プログラミングは他の人によってされていて、自分ではプログラミングしなくても便利に使えるのが現在のパソコンやスマートフォンです。
自分でプログラミングをする必要はあるのか
プログラミングはすべての人には必要ではありません。
販売しているパソコンやスマートフォンで使うような高度なソフトは大勢が何ヶ月もかけて作っているので、個人で作ろうと思ってもそう簡単にはできません。
しかし、ちょっとした事なら誰でも簡単にプログラミングできます。
例えば、ある所からある所にデータをコピー作業が沢山ある場合、マウスでデータをコピー、そのデータを貼り付けというのをその回数手動でやらなければいけないような事はよくあります。
そのような作業を自分でプログラミングして、一発で終わらせるような事もプログラミングです。
その作業が1回30秒かかっていて、それを120回やらないと行けない場合、手動では1時間かかります。その作業のプログラミングが3分で終わった場合、残りの57分は他のことが出来ます。
これを毎日やる場合、1回3分間プログラミングしただけで、月に数十時間節約できます。
このように、プログラミングは人が楽するために使う物で、そのためにプログラミングを学習します。
学習なんかしたくないという方も多いかも知れません。学習するくらいなら面倒な事を繰り返せば良いように思う方もいるでしょう。
同じような学習で誰もがやっている事の例として、紙のコピーなどがあります。
コピーがなければ、紙に書いてあることを書き写すのに手書きで書き写すとか、印刷所に持って行って印刷してもらうなどが必要ですが、コピー機を導入して、紙をセットして、コピーボタンを押すという学習さえ出来れば、簡単に紙をコピー出来ます。
プログラミングをしない、学習しないというのは、コピー機を導入するコストがない、コピー機の使い方がわからないというような事につながります。
それでもプログラミングはコピーに比べると、学習して使えるようになるまでのハードルが高いという問題があります。
コンピュータ自体を仕事にしないなら、学習する意味があるかは難しい部分があります。
将来プログラミングはより簡単になります
1990年代頃までのプログラミングはハードルがかなり高かったのは事実です。
2020年に入っても主要なプログラミングの学習はまだまだハードルが高いですが、ノーコード、ローコードと呼ばれるプログラミング環境が続々と登場しています。
ノーコードは、通常は必要だったキーボードから文字を入力する必要があったプログラミングで、マウスで選んでいけば出来るようなプログラミング環境です。
ローコードは、文字の入力が少なく、学習のハードルがかなり低くなったプログラミング環境です。
どちらの場合でも、プログラミングで従来は必要だった文法などのややこしい事を覚える必要性はかなり減りますが、プログラミングの基礎はある程度必要です。
そのため、将来どうなったとしてもプログラミングの基礎は学んでいて損をする事はありません。
プログラミングの基礎
プログラミング自体は2020年から小学校でも必修となっています。小学校でやるくらいの内容なので、誰でもわかります。
プログラミングを学ぶには、それを学ぶための基礎が必要です。コンピュータがどのように動いているか、プログラミングは何をするのかという基本です。
例えば、コンピュータの画面に赤い丸を表示するという、誰でもすぐに出来そうなプログラムを書くとします。
しかし、コンピュータは画面という存在も、赤も、丸もわかりません。
そのため、画面とは何か、赤とは何か、丸とは何か、表示とは何かなどをすべてコンピュータに教えて、赤い丸を表示する命令を書く必要があります。
どこまで何をやる必要があるかは異なり、前述したノーコードなら、マウスで画面上にその赤丸を書くだけかも知れません。
場合によっては、赤とは○○であるとか、基本的な事を教えた上で、赤い丸を表示できるようにしなければいけないかも知れません。
そのために必要になるのがプログラミング的思考です。
プログラミング的思考とは
画面に赤い丸と表示するというプログラムなら、画面、赤、丸などの概念をコンピュータに教えて、画面に表示できるようにしなければいけません。
このような、何かを実現するために必要な事を論理的に考える能力をプログラミング的思考としています。
同じような事はすべての事に当てはまり、車の運転をするなら、車の免許証を持っているか、車はあるか、車の鍵はあるかなどから確認する必要があります。
さらに細かく書けば、車の免許証の有効期限や条件、運転しようとしている車はその免許証で認められている物か、車の車検証、保険の有無などもありますが、実際に何かをやるために必要な項目を分解出来るようになる必要があります。
実際にコンピュータでのプログラミングなら、このような細かなことが必須になります。