コンピュータはバカである
コンピュータは、いろいろできて難しいとよく言われます。
だからプログラムも難しいじゃないかとも思われます。
でも実はコンピュータはバカなのです。
コンピュータの特技
コンピュータの特技は何でしょう?
いろんなことを素早くやってくれる?
難しいことも簡単にやってくれる?
そんな感じに思っておられる方も多いと思います。コンピュータの一番の特技は、決められたことを嫌がらずに
いつまででも繰り返しやってくれるところです。それもめちゃくちゃ速くやってくれます。
そこが人間と違うところです。
そんじゃAIって?
コンピュータには「感」はありません。決められたことしかできません。
AIといっても過去の大量のデータから繰り返して判断して
決めてます。それもめちゃくちゃ速く。
それが人間が考えているよりも多くのデータから、人間が考えるよりも早く判断してくれるので賢く見えます。
私が思うに、実は人間も今まで生きていた中で、見てきたこと聞いてきたことを頭の中にずーっとためていて、『感』といわれるものもそれらのデータを無意識に引っ張ってきて判断しているのかと思います。
そういう意味では人間とコンピュータは同等レベルのことをやっているんだと思います。
コンピュータにできること
パソコンでは、色々なことができます。文章を書いたり、メールを送ったりホームページを見たり、動画を見たり。
でも基本的なパソコンの出来ることは、『計算』です。日本語で『電子計算機』というだけあって、『計算』がコンピュータの基本です。その計算もコンピュータで扱う数字は0と1だけです。
コンピュータで使っている文字や写真、音声、動画もすべて元は0と1の塊になっていてそれを、頑張って人にわかるように文字に変えたり、写真に変えて表示してくれているだけです。
こう見てみると、コンピュータって単純でバカに見えてきませんか?
プログラミングはバカなコンピュータに教えること
先に書いたようにコンピュータの特技は決められたことを嫌がらずに繰り返すすることです。プログラミングは、その「決められたこと」をコンピュータに教える仕事です。どうみても、人間が上位ですよね(笑)
ただし、間違ったことを教えると間違ったことをします。コンピュータは単純なので、教えてもらったことが間違いか正しいかは判断もしませんし、反抗もしません。時々止まったりしますが、あれは反抗ではなく働きすぎで疲れただけです(笑)
なので、間違ったことは間違ったままやってしまいます。それがバグってやつです。
バグは教え方が悪いのでそこは人間の反省すべきところです。
プログラムのコツは、「まずは単純化する」
それではプログラムのコツってどこでしょうか?「決められたこと」をコンピュータに教えるにあたって、いかに嚙み砕いて教えるかがコツです。
前にも述べたように、コンピュータはバカです。いきなり難しいことをいっても理解してくれません。そこでコンピュータに物事を教える(プログラミングする)時には物事を単純化する必要があるということを覚えておいてください。
例えば、「1から5まで足した答え」という問題があったときに、人間は、この文章を理解して、「1+2+3+4+5」という式を頭に浮かべて順番に足していって15という答えを導き出します。
コンピュータに「1から5まで足した答え」といっても実際なんもしてくれません。
ちゃんと人間が理解したよう「1+2+3+4+5」とくだけた状態で教えてあげないと何もしません。
やってほしいことを分解して単純化することをまずやってください。
論理的思考
もう一つのコツは『論理的思考』です。プログラミングになかなかなじめない人の多くは論理的思考が苦手な人です。当然、数学的な知識も必要なことは必要なのですが、初心者向けのプログラムのお勉強ではほとんど数学的な知識は必要ありません。論理的な思考ができるかどうかが大きなカギになります。
単純なところでは
『もし~ならば~する』
『もし~ならば~で、そうでなければ~』
というような論理的な組み立てが苦手な人、あまり今までそのような思考をされていなかった人は
プログラミングにとっつきにくい傾向があります。
でも実は、日ごろから人は大小はありますが、論理的な思考で行動しています。
たとえば、
「今月の残金が1000円だから外食はやめておく」
というようなことを考えることはあります。ここで金額の大小は置いておくとして(笑)
これをもう少し論理的に詰めていくと
もし『今月の残金が1000円より多くある』ならば『外食できる』
というように置き換えられます。
上の「今月の残金が1000円だから外食はやめておく」は普通に考えられますね。それを「もし『今月の残金が1000円より多くある』ならば『外食できる』」このように組み替えることでプログラムに変えられます。
「外食をやめておく」という行動は表現が難しいですよね。
「外食に行く」というのは「行く」という行動があるので行動として表現しやすいのですが、「しない」というのは「行動しない」ことなので行動として表現しづらいです。
プログラムでもそうです。「処理をする」というのは処理を書けばいいのですが、処理をしないは処理を書けませんので、「処理をする」方のプログラムを書いて、条件がマッチしたら「処理をする」で、しなかったら「処理をしない(=何もしない)」というような書き方をする必要があります。
このような論理的な考えを基本としてプログラムを書く必要があります。すぐには難しいかもしれませんが、日ごろ考えていることも一度ちょっと論理的にしてみて訓練してみましょう。
それでは今回はここまで。次回から実際にプログラムに入っていきます。
コメント