プログラミングは「教育」できない
「新しい考え方」は、プログラミングでないと覚えられないのか?小説でも映画でも物語を読んで、その登場人物から新たな考え方を学ぶことが出来るはずです。抽象思考が必要というのなら、数学や哲学ではダメなのでしょうか。プログラミングなんて変数とループと関数と…これが職を得る以外の役に立つとは思えません。あと日本限定の話ですが、プログラマーって給料安いですよ。
1990年代に月刊MacPower誌(アスキー刊)で記事をたくさん読んでいた林さんがこんなコラムを書いていた。ここではアラン・ケイを引き合いに出していたのですが、Appleのニュース記事を沢山書いてきた林さんなら、スティーブ・ウォズニアックが一時期学校でコンピューターを教えていた事を引き合いに出したほうが適当だったと思います。
MacPowerの記事で読んだのですが、小学校でコンピューターを教えていたウォズニアックが「クラスに一人ぐらい筋の良い子がいる」というような事を言っていた気がします。ではその他大勢の、特にコンピューターに興味のない子達にとってはその授業は本当に必要なのでしょうか。プログラミング言語Ruby設計者として知られる、まつもとゆきひろ氏はプログラミングを教えることの難しさを引き合いに出し、以下のような事を書いています:
ある調査によれば、大学におけるプログラミング教育の受講者の内6割程度はプログラミングの基本的な部分の理解に困難を感じ、それは他の学科の成績に必ずしも相関しなかったのだそうです。だとすると、世の中にはプログラミングに向いた性格の人がいて、成績その他では区別することができないことを意味します。であるならば、少しでもたくさんに人にプログラミングに触れる機会を与え、そしてそれに興味を持てた人、才能の片鱗を見せた人にはより豊かな機会を与えるようなプロジェクトを総合的に設計することで、未来のプログラマを「発掘」できるのかもしれません。
大学生でも6割が分からないと言っていることを小学生にどうしろというのでしょうか。まつもと氏はプログラミングにはある種の適性が必要であり、「未来のプログラマを「発掘」できる」とは言っていますが、すべての人に教育できるとは書いていません。
私は教育学など何も分かりませんが、初等教育の目的は才能発掘オーディションではない、という事だけは知っています。
家が貧しくコンピューターを買えない家庭の子供に機会を提供するのが目的であれば、学校にコンピューター・クラブを作ればよいだけです。それで機会提供と(やりたいのであれば)オーディションの機能は果たすでしょう。
私が初等教育でしっかり学んで欲しいと思う事は文字の読み書き、日本の学校なら日本語です。あとはお釣りや給料を誤魔化されない為にも算数の四則演算ぐらいは必要でしょう。そこから先は、本が読めるのなら自分の興味に従って自身で学習ができる筈です。
特に、大部分の人はプログラミングを習得できません。大学のコンピュータサイエンス学部に入学してくる学生の30~60%は、プログラミングの最初のコースで落第します。
(上記、孫引きの更に翻訳からの引用失礼します)
どうやらイギリスでも職業プログラマーは独学が多数派であり、ここ50年に渡りプログラミングを教育することが困難である事は世界じゅうで証明され続けているようです。それなのになぜ日本で初等教育からプログラミング教育をしようとするのか?低年齢から教育すればうまくいくと思っているのならそれは間違いで、私の経験や上記記事からすると、プログラミングには適性が必要だという事が分かります。頭の善し悪しではなく、適性です。
以前私は別の意見を持っていました。プログラミングは誰に対しても教育できると思っていたのです。人は皆、生まれたときから文字の読み書きが出来たわけではない。成長してから教育により読み書きができるようになったのです。それならプログラミングも同じように教育できるのでは?と思っていました。しかしプログラミングを職業にしてからの経験で、「向いていない人」というのは存在するというのが分かってきました。大学の情報系の学部で4年学んで、あまつさえ学位を取得して、FizzBuzz問題を解くのがやっと、という人を見たことがあります。私自身も向いているかどうかは分かりません。
ある技能について人がどれだけ習得できるのか、というのは単純にその対象にどれだけ興味を持てるのかで決まる気がします。才能とか、頭の善し悪しは関係ありません。プログラミングに興味を持つ人は全体の何%でしょうか?皆に教えるような事ではありませんし、あなたの人生に役立つものではありません。役立つとか重要だとか言っている人達は、プログラミングについてまるで知らないか、それで金儲けがしたいのだと思います。
コンピューターを知っている人はその限界も熟知しており、「なんとなく知っておくと便利そうだから」という理由は言わないはずです。
私が驚くのは、それを知っているはずの林さんが否定的な見解を書かないことです。「新しい考え方」とか何とか、それらしい事を書いていますがコンピューターを教えるのなら、ましてそれが皆に教えるのであれば今時はプログラミングではなく、インターネットで買い物が出来るか?銀行振り込みが出来るか?飛行機や電車の予約が出来るか?偽ニュースを偽だと見破れるか?そういった事こそ重要だと思います。「コンピューター=プログラミング」なんて、私や林さんのような年齢の人が、まだインターネットもアプリケーションも何も無かった時代に、自分で作っていた原始時代の話です。Wiredに書いてありそうな、無責任な進歩主義はもう止めにしませんか。
