未来そうぞう日記

知的障害を持った息子と巡る日曜の東京、神奈川周辺の散歩、未来予想(妄想?)、そして気になる話題を報告します。

プログラミングという遊び

今週のお題「何して遊んだ?」

 

小学校低学年のころ、□に入る数字を答えよという問題が苦手だった。

 (a)2+□=8

ならば、右辺の8から左辺のわかっている2を引いて6、

 (b)□+4=9

これも同じく右辺の9から左辺のわかっている4を引いて5。これはわかる。

一方、

 (c)5-□=3

ならば、左辺のわかっている5から右辺の3を引いて2、

 (d)□ー1=6

しかし、右辺のわかっている1に6を足して5。

 

なぜだ!

 

当時の自分は前半(a),(b)と後半(c),(d)でルールが違うのは足し算と引き算で違うと言ことで納得したが後半(c),(d)の二つは共通性が感じず、なんか違和感を感じた。

引き算ならば最後の問題も引き算では計算すべきなのでは? 納得しないままルールを丸暗記した。

 

それから中学1年の数学でプラス、マイナスという概念を習い、方程式を覚えた。

 ・引き算はマイナスの値を足すという意味に置き換えることができる。

(c)は5+(-□)=3、(d)は□+(ー1)=6と。

つまり、(c)は□の前にマイナスがつくパターンである一方(d)はつかないパターン。だから、ルールが違っているのは当たり前だとなんか腑に落ちた。

 

そして、さらに方程式の解き方を覚えた。

 ・両辺に同じ値を足す、または引いてもOK

これも自分にとっては画期的であった。上記(a)から(d)が全て同じルールで解けるのだ。

(a),(b),(d)は□が入っている辺のわかっている値を両辺から引けばOK。

 (a)2+□=8 → 2+□ー2=8ー2 →□=6

 (b)□+4=9 → □+4ー4=9ー4 →□=5

 (d)□ー1=6 →□+(ー1)ー(ー1)=6ー(ー1) →□=7

引き算もマイナスのマイナスはプラスというもう一つのルールがわかっていれば

(c)は作業は2回必要だがルールは同じ。□を足して、左辺の値を引けばOK

 (c)5-□=3 →5ー□+□=3+□ →5ー3=3+□ー3 →2=□

ルールはいくつかあるが全てに共通なルールで、これらを組み合わせることでどんな問題も解ける。これがわかった瞬間「何か」が繋がった気がした。例えるなら映画「マトリックス」でネオが何かを理解し、緑の文字のプログラムコードが見え、覚醒したあの瞬間のような感じだ。

それまで勉強は理科や社会の方が好きだったのですが、俄然数学が楽しくなりましたね。

 

そして、パソコンのプログラミングにハマることに。当時のパソコン少年のバイブルと呼ばれた「こんにちわマイコン」を隅から隅まで読んで、記載されているコードを入力し、数式などをいじってどう変わるか試してみたりと、いろいろやりました。

プログラミングはルールを覚えて、それを組み合わせること。それが思い通り動くという快感がプログラム沼に「のめり込ませ」ましたね。また、学校で習った数学が勉強の知識が役に立つということもここで味わったのも良い経験だったかもしれません。

 

今、プログラミングというと仕事のように感じる人も多いですが、当時の自分にとっては最高に楽しい「遊び」だったですね。

 

そして、あれから40年。ここ10年くらいはプログラミングは若手メンバーに任していたのですが、1年前の転職を機に復活。つい最近も必要が生じて初めてのPython。50の手習いというが、新しい言語にチャレンジして思った通りに動くと、あの時の熱い思いが蘇る感じでいいですね。