プログラミングを身につけるには

このところ、義務教育でも、プログラミングをできるようにする、という目標が掲げられているので、とにかく、あちこちでプログラミングのことについて書いてある本やサイトが増えた。特に小学生くらいの子供にいかにプログラムを教えるか?ということが義務教育に取り入れられる、というニュースが駆け巡ってからは、なんと「PCなどの機器を必要としないプログラミング」についても、あちこちで聞く。「他のやらなきゃならないこともあるのに、おカネもかけられない。迷惑だ」みたいな現場の感じが良く出ているなぁ、と外野からは見ているだけだ。

たとえば、英語などの外国語でもそうだが、何事に於いても、新しいことを学習し、身につけるには「環境」が最も大事だ。例えば、同じ英語を使うといっても「power」は政治の世界では「権力」の意味だし、電気の世界では「電力」の意味だ。そして、それぞれに単語の意味は微妙に異なるニュアンスがある。どの分野で学ぶか、ということ、言い換えれば、どんな環境で学ぶか、で、単語1つでも全く違うものを相手にしなければいけなくなる。

自分がプログラミングをしてきた経験から言うと、まず子供の頃はアマチュア無線がとても楽しくて、自作の無線機などを作っていた、というところから始まる。無線機を作るには、半田ゴテが必要だしニッパーとペンチも。。。。ペンチも大きなペンチからラジオペンチ。。。。、電線にはワイヤストリッパーが。。。と工具は毎週のように増えていく。気がつけば、そういう工具に囲まれて生きている。その方面の同好の友人も増え、情報交換で仲間も増えていくし、友が友を呼んで、ますます、自分の身の回りは同好の人間ばかりになっていく。そうしているうちに、時代がハードウエアからソフトウエアに変わり、気がつけば自分はインターネット界の端っこで、結果として、だけど、インターネットを日本にもって来る役目(の片隅)に。。。みたいな、そういう感じで自分の世界を広げてきた。

おそらく、自分の次の世代も同じように「Webって面白いなー」から始まった、同好の士の集まりができてきているのだ。であれば、そういう環境に自分を置くことが、実は一番大切なことだ。義務学校教育で「これをマスターすると、褒められます」とか「将来は安泰です」みたいな、その「行為」とは別のところに行為のモチベーションを置いても、要するに、人参を目の前にぶら下げられた白けた馬がノロノロと歩いて行くだけになるのは、目に見えている、と思う。子供はそういうことでは動かないのだ。

プログラミングは、物事を論理的に見て、決断し、実行するもので、要するにそのままそれは「解決すべき問題を見つけて」→「解決方法を探り」→「解決方法を確立し」→「プログラミングという手法でそれを実現する」、と、そういうものだから「プログラミングのお勉強をしましょう」というのは、私に言わせれば、だが、正直なところ、プログラミング教育とは言わない。まずはその子供の周りに環境を意識的に整えるのが、大人のやることじゃないだろうか?

今の世代はインターネットが出現し、コンピュータのプログラムなどをやりはじめた私たちの世代から、さらに3~5世代が隔たっている。であれば、その世代の興味はもっと違うところにあるだろう。プログラミングも、今であれば、コンピュータの前に座ってキーボードとマウスを相手にしなくても、コンピュータについたマイクにあれこれ指示をすると、勝手にPCの中のソフトウエアがプログラムを作ってくれる、というところまで行きそうな勢いだ。

「ぼくがエアコンのスイッチを入れて、室温を22度にしてくれるように、プログラム作ってくれないかな?」
「わかりました。その合言葉はなににしますか?」
「温めて、にする」
「わかりました。できました。言ってみてください」
「温めて」

なんていう、そういう「音声プログラミング」だって、今は可能だ。

であれば、プログラミングをするプログラマーも、また違う仕事をする必要があるだろう。プログラミングはコンピュータが自動で作るものになるのだから、「どんなプログラムを作ったら役に立つか?」を考えることがもっと重要になる。「XXができます」ではなく「XXを作るといいです」ということを考える仕事が、より大切になる。

時代の流れは速く、法律も教育も、そして人間もついていける人はごくわずかだ。