プログラミングは覚えるだけなら簡単

プログラミングというものは単なる論理的な手続きの集合です。論理的な手続きの集合そのものは小学校教育から十分に鍛えられています。

例えば、家庭科のお料理をとっても論理的な手続きに則って調理します。他にも図工や美術なども論理的な手続きに則って作業をするだけです。

ここで問題になるのが、論理的な手続きの言語化です。体育の授業で柔道の背負投ができないとか、鉄棒で逆上がりができない、という人が何人かいたと思います。

背負投や逆上がりも、論理的な手続きに沿って実行すれば、ほとんどの人ができるはずなのですがどういうわけかできない。原因の一つとして、手続きの言語化が挙げられます。

手続きが言語化できない人の説明は「パッとやってシュシュ」みたいに全く日本語になっていません。逆上がりも大数の法則が当てはまり、なおかつ生存者バイアスのかかりやすい運動です。偶然うまく行った人は、なぜうまく行ったのか言語化できないが脳がやり方を覚えています。そんな人の説明がうまいわけがない。

プログラミングは漏れなく言語化することを強いられます。チャーハンの炒め方にしても、「手首を曲げてからフライパンを押すようにして、手首を一瞬だけ返す」という手続きが「手首を一瞬だけ返すことでチャーハンは手首方向の運動ベクトルを持ちチャーハンは慣性力で宙に浮く」という実行結果が得られます。

プログラミングはいわば一挙一投足を言語化することによって結果を得るための儀式と考えなければなりません。これが難しいのです。

しかしながら、プログラミングそのものは難しくありません。私の高校では情報コースということでCOBOLとSQLをやっていました。そんなに頭の良い高校ではなかったのでヤンキーとかチーマーがゴロゴロいました。先生はヤクザみたいな見た目で親に体罰の同意書を子供の前で取らせるのであまり荒れていなかったです。

話が逸れてしまいましたが、ガラの悪い高校生でも全国商業高等学校長協会の情報処理検定1級を取らないと卒業できません。COBOLとSQLができないと卒業できないのです。

不思議なことに自分の名前しか書けない人でも情報処理検定1級合格していました。どんなにアホでもCOBOLとSQLは楽勝だ、と言いたいわけではありません。どんなにアホでもプログラミングを覚えるだけなら簡単だ、と言いたいわけです。

情報処理検定1級には筆記試験がありますが、基本的に穴埋め問題です。論理の不整合を質せば点は取れます。しかしながら、これは徹底的な論理的手続きの言語化を行使していません。

プログラミング教育で課題になるのは徹底的な言語化の訓練です。なぜ背負投ができるのか、どうすれば試行1回でできない人ができるようになるのか。「ポン」とやって「パ」じゃなくて、「自分の背中に相手を乗せて、相手を背中から横に滑り落とす」ことで「相手は背中から滑落するので怪我しないように受け身を取る、受け身を取るとき回転モーメントがかかるので相手は投げられたように見える」(記憶を元に記述したので正しいかは不明)と言葉で説明できるかどうかです。

かと言って、小説家や吟遊詩人はプログラミングがうまくなるか、というのも別の話です。話の面白い人は論理的に手続きを述べられるとは限りません。いや、たぶんコードの中に面白い話混ぜる奴いたら面白いですけど、そういうのやめて欲しい。

プログラミング自体は覚えるのは簡単です。バイク弄って警察煽る奴でも覚えられるわけです。覚えてからその先が難しいので、どうしてもある程度の訓練が必要になります。

そこは現状、プログラミングやっているうちに覚える要素が強いです。オブジェクト指向を勉強してプログラミングに応用するうちに抽象化できるようになり、コンピュータ・アーキテクチャやアルゴリズムを援用できるようになっています。

今のところ、教育として成立するほどの正攻法がまったくないレベルなので、時間をかけてプログラミングと向き合えぐらいのことしか言えません。残念。

普段は研究していて生活が厳しいのでサポートしてくれる方がいるととても嬉しいです.生活的な余裕が出ると神が僕の脳に落書きを残してくれるようになります.