THE長文日記

長文とか短文とかのクレームは一切受け付けません

環境がひとをつくるというのはたぶん間違いないから、用意してみた

f:id:shi3z:20181009084139p:plain

我が社が推進するAIプログラミングコースに小学生が入ってきた。
これまで社会人が圧倒的に多かったことを考えると驚きである。


これは単にご両親が熱心だからそうなったのではない。彼は本来二年半かかる予定の教育課程を半年程度で終わらせてしまったから、こちらからご案内したのだ。


才能ある子どもにどんな機会を与えられるか。議論のチャンスと腕を試す場を与え、より才能を引き伸ばすにはどうすればいいか。


僕が知っている唯一の答えは、環境を与えることだ。子供にとって、学校も教科書も我々がやっているようなスクールも「環境」の一部に過ぎない。


誰も子供に学ぶことを強制できない。できるのは自発的に学びたくなるような環境を整えてあげることだけだ。



彼がAIコースに進むことになる以前に、すでに片鱗はあった。秋葉原プログラミング教室には「サッカー部」という部活動があり、これは主に大人が集まり、コースで学んだことを活用してロボットによる全世界をまたにかけたロボットサッカー大会「Robocup」出場を目指すというものだ。そのなかに飛び込んで、彼はあっという間に周囲の大人たち(たいがいが一流大学を出て一流のメーカーに務める現役のエンジニアやコンサルタントである)を打ち負かして最強のアルゴリズムを造ってしまった。


AIコースでは月に一度、僕が自ら教える講義があって、今回は初めて小学生が参加するということで多少はわかりやすく話さなければならないだろうと身構えもした。だが、いざ講義が始まると、さて彼にはどこがわからないだろうと考える。よく考えると、僕のつくったベーシックコース(主に子供が受講する)のカリキュラムを全部こなしたということは、イベント駆動型プログラミング、オブジェクト指向のクラス、継承、二次元のベクトル、回転行列の知識、三次元のベクトル、回転行列、クォータニオンの知識、物理シミュレーションに関する知識が既にあるということだ。


だとすると、彼に新しく説明しなければならない単語は、スカラー、ベクトル、行列(まではそれ以前に習ったはずなので)の拡張概念としてのテンソルという言葉だけで、むしろ一緒に講義を受けている大人の中に、彼と同等の知識を備えている人がどれだけいるのかと考えると大いに疑問だ。もちろんプログラミングにそれほど詳しくなくても受講できる、というのがウリだから、知っている必要はないが、たぶん知っているともっと理解が速いのだろう。



ベーシックコースの内容は主に僕が小学生から高校生にかけて独学で学んだ内容で、要は僕自身が「小学生でも理解できる(できなくはない)」と確信しているものだ。だから小学五年生が全部こなしたとしても全く疑問には思わない。けれどもここまで来れる人がとても少ないのは事実だ。


なぜ僕がそうした知識を学ぶことができたかといえば、父親が実用的な数学の実践者であり、学校で割り算を習う前にベクトルと三角関数を使う方法を学んだからだ。もっと高度な数学については、学校の先生に質問しても要領を得ず、地元の国立大学で教授をしている同級生の父親の助けを借りることができた。



学校の隣の図書館の司書は趣味でプログラミングをしており、 C言語やLISPやUNIXの知識とコンパイラを授けてくれた(たぶん違法だった)。


こういう特殊な環境だったから、僕はコンピュータを自分の手足のように使うことができるようになった。全員が全員、同じようにできるとは思わないが、やりたいという意志がある限り、手を差し伸べる大人がいれば子供はいくらでも伸びると信じている。


そういう環境で育った子供が、十年後、いや、来年かもしれない、いったいどんな世界を見せてくれるのか。
僕にとって利益のほとんど出ない教室事業を続ける最大の興味はそこだ。




プログラミングのひとつの方法を学ぶということは、アイアンマンがスーツに新しい機能を追加するのと同じだ。
つまり、実用的に使うことのできる知恵を身につけるということである。



天才的才能とは、なによりもまず、「知りたい、学びたい、使いたい」と強く思う力である。
それがあって、初めて次の段階に行くことができる。つまり技術を知り、学び、使うということ、それを繰り返す。それによってしか真に必要な力は身につかない。


そのためにはなにより「どんな技術があり、何ができるのか」を「知る」ことが必要だし、それを「学び」、「使う」には環境が必要なのだ。


お子さんが天才かもしれない、とお考えの親御さん、ぜひ一度教室へ。

https://www.akiba-programming-school.com