奇妙な論理を目にしました。
子供たち全員が書く技法を学ぶことは大切なことでしょうか? 将来ジャーナリスト、小説家、あるいはプロのライターになる子供は数えるほどしかいないのですから、どうして全員が書く技法を学ばなければならないのでしょう?
もちろん、そんな問いは馬鹿げています。書くことは日々の生活のあらゆる場所で行われています。友人たちに誕生祝のメッセージを送り、買い物リストを書き、そして日記に個人的な気持ちを記すために、書くという行為はまた新しい考えへと人々を誘います。書きながら人々はアイディアを整理し洗練しそして改良することを学びます。すべての人が書くことを学ばなければならない理由は、このようにいくつも挙げることができます。
私はコード(プログラミング)することも書くことの一種だとみなしています。コードする能力は、対話的なストーリー、ゲーム、アニメーション、シミュレーションといった、新しい種類のものを「書く」ことを可能にします。このようにすべての人々がコードを学ばなければならない理由も挙げることができます。出典:情報処理2015年7月号 巻頭コラム
MITメディアラボ ラーニング・リサーチ LEGO パパート・プロフェッサーのミッチェル・レズニックという人の文章を翻訳したものです。
子供たち全員が書く技法を学ぶことに、異論のある人はいないと思います。特にネットには、もう少し書く技法を学んでほしいと思う文章もあふれています。
電子メールが普及してからは、ビジネスにおいて文章を書くことの重要性が増しました。電子メール普及の前は電話が重要でしたが、電話と文章の重要性が逆転したと言えます。
書くことは誰にも必要なことです。プログラミングも書くことの一種です。しかし、だからといってプログラミングが誰にも必要なことにはなりません。
プログラミングができれば、コンピュータで動くものを「書く」ことを可能にします。しかし、すべての人々がプログラミングを学ばなければ理由にはなっていません。
旋盤を使うことができれば、金属の切削加工を可能にします。しかし、それは、すべての人々が旋盤の使い方を学ばなければならない理由になっていないのと同じです。
「コードの学習」という言葉をアルゴリズムの学習の意味で使っているのかもしれません。
ある種の問題を解くときやコンピュータに仕事をさせるときに、良いアルゴリズムを思いつけば、問題が解決し、コンピュータを効率的に動かすことができます。
良いアルゴリズムを考えるスキルは、コンピュータ科学者だけに役立つものではありません。他の分野でも役立つことはあります。しかし、すべての人々に役立つというのは言いすぎです。
良いアルゴリズムを考えることはすべての人にできることではありません。
微分・積分は高校で習いますが、その概念を理解している人は一部の人だけです。高校で習ったとしても、多くの人は読んでいる本に微分・積分がでてきたら、そこを読み飛ばします。
良いアルゴリズムを考えることができる人は、微分・積分を理解している人よりも少ないです。
身につけることができれば、どんなに楽しく便利なスキルでも、すべての人々が身につけられるわけではありません。
小学生向けのプログラミング教育が始まっていますが、小学生はコンピュータリテラシーを高めるだけで十分です。
好きで得意な小学生には何をやらせてもいいですが、すべての小学生にプログラミングやアルゴリズムを教えても、落ちこぼれを増やすだけになります。
ソフトウェアがさまざまな分野で使われ、ますます重要になっています。優秀なソフトウェアエンジニアはいつも不足しています。
それを補うために小学校でプログラミングを教えてもムダです。
優秀なソフトウェアエンジニアを増やすためには、その能力を持った人々を育て、適切に処遇しなければなりません。
日本の大手IT企業は、大学でコンピュータサイエンスを学んだ優秀な学生を採用してきましたが、みんな管理者にしてしまいました。
実際にプログラミングをしたのは、人貸業のようにエンジニアを派遣するだけの会社に採用された文系の学部を卒業した人たちだったりします。
そのため、日本では優秀なソフトウェアエンジニアが育っていません。
日本のソフトウェア産業を立て直すためには、小学校からプログラミングを教えるのではなく、ソフトウェアエンジニアをきちんと育てる会社を増やすことの方が重要です。