神代類に学ぶ「遅延評価型学習法」のすすめ
#This is an example of lazy evaluation.
import time
time_start = time.time()
for i in range(0, 10**10):
if i == 1:
break
time_end = time.time()
time_diff = time_end - time_start
print(time_diff)
#>>>0.0009987354278564453
こんにちは、から紅と申します。
神代類とは
突然ですが、モバイルゲーム「プロジェクトセカイ カラフルステージ!」に登場する神代類という人物をご存知でしょうか。
知らない方のために、公式サイトから簡単な人物紹介を引用します。
マイペースな天才。寧々とは家も隣同士、幼馴染み。ステージの演出を手掛ける一方で、得意な機械いじりや発明を活かしてショー用のロボットを作っている。独特の発想をするため周囲からは変人扱いされることが多い。
どうでしょう、イメージが沸いたでしょうか。私が特に注目したいポイントは「ショー用のロボットを作っている」という点です。
彼の幼馴染みに「草薙寧々」という少女がいまして、彼女はもの凄く人見知りのため、周囲の人々と上手くコミュニケーションをとることができずにいました。そんななか、神代類は寧々に似た(?)「ネネロボ」なるロボットを作り、彼女が人前に出ずにコミュニケーションをとる手段を提供しました。(このネネロボっていうのが高性能なんですよね)
こんなエピソードを聞くと、神代類という人物は文字通り天才で、機械工学の修士号あるいは博士号を取得しているのではないかと思ってしまいますが、至って普通の(?)高校生なのです。高専とかではなく、おそらく普通の高校に在学している高校生なのです。
あるエピソードでは神代類は、こう主張していました。(記憶をベースにしているため、正確ではないですが、本質的には変わらないはずです)
「僕は興味本位で機械を分解したりして、仕組みを理解していくことでロボットを作れるようになった。」
このエピソードは、私がこのnoteで主題にしたい「遅延評価型学習法」に密接に関わっているのではないかと考えています。本稿では、この学習法は一体全体何なのか、そしてこの学習法の有用さについて述べたいと思います。
「遅延評価型学習法」とは
「遅延評価型学習法」という言葉は、2008年にSoftware Engineerの天野仁史さんが提案されたものです。遅延評価(lazy evaluation)という言葉は、プログラムの実行順序に関する用語でして、まずは次のようなソースコードを想起していただけると話がはやいかと思われます。
job3(job1, job2)
大部分のプログラミング言語では、「まずjob1を実行し、結果を得る。job2を実行して結果を得る、job3を実行して結果を得る」という順序で実行されます。一方で遅延評価の言語では、「job3の結果が必要になったら、job3の実行を開始する。その中でもし、job1の結果が必要になったらjob1を実行して結果を得る。job2についても同様にする」という順序で実行されます。ポイントは必要になるまで実行されないという点です。
「遅延評価と同様にして、勉強もまた、必要になってからはじめれば良いのではないか」
そのような発想で生まれた勉強法が、何度も記載している「遅延評価型学習法」の本質です。
さて、先ほどの神代類のエピソードに戻りましょう。
彼は電子レンジをはじめとした機械を自発的に分解して、自分の目で内部構造を観察し、仕組みを理解することでロボットを作る技術を会得していきました。普通の高校に通っていることからも、彼が独学で勉強してきていることは明らかでしょう。これぞまさしく、遅延評価型の勉強法をしています。
一般的に、大学の機械工学科に所属すると、ロボットを作るといったことよりもロボットを作るためのドライバーの使い方であったり、小難しい数学(微分積分や線形代数)を勉強させられて、単位をとってようやくロボットの作成に着手することができます。先ほどのソースコードの説明でいえば、関数内部のタスクを逐次実行し結果を得てから、大きな関数のタスクを実行していると捉えることができます。
一方で、神代類はロボットを作るという目標に基づいて実践的な行動に移しているというところがミソです。
ロボットを作りたい→それには内部が分からなければいけない→内部を知るには分解しなければ分からない→分解するにはドライバーが必要だ
このようにしてドライバーの使い方を勉強する場合、なんとか単位を取らなければならないと勉強する場合と比べて強い目的意識を持って勉強できるため、モチベーションを高く維持することができます。
「遅延評価型勉強法」のメリット
ここまでで遅延評価型勉強の効能が気づかれた方も多いかと思われます。この勉強の良いところは、「必要になるまで勉強しない。逆にいえば、勉強は必要になってからおこなうので、目的意識が生まれやすく、モチベーションが維持しやすい」という点なのです。
他にも例をあげましょう。
あなたは大学で英語能力に関する単位を取らなければならないため、TOEICのスコアをある一定の点数以上を取らなければならないとします。さて、あなたはワクワクしながらTOEICの勉強ができるでしょうか?おそらく出来ないはずです。なぜならば、TOEICを勉強しなければならないのは、大学が課したものであり、好奇心から生じたものではないからです。大学卒業のために必要であることは確かかもしれませんが、心のうちから必要だと感じない限り、それは遅延評価になり得ません。
一方で、気になる留学生と友達になりたいという状況を想起してください。あなたはその人となんとか仲良くなりたいのですが、相手は英語を母国語としており、英語を介してでしかやり取りができません。
このとき、あなたが心の内から仲良くなりたいと思うならば、熱心に英語を勉強するはずです。このとき、わざわざ英文法の勉強はしないはずですよね。「友達になってください」は英語で何というのかを調べて、実践しようと試みるはずです。必要な分だけ勉強するのです。こうして勉強していくなかで、留学生と親しい間柄になれば英語に触れる機会もふえ、もっと英語が好きになるはずです。英語は単位をとるための科目ではない、コミュニケーションのツールであることにも気づくようになるはずなのです。
(蛇足)イーロンマスクについて
実はこの「遅延評価型勉強法」の有用性については、Elon Musk氏も主張しています。この言葉それ自体を使用しているわけではありませんが、それに近いものだと思います。
Musk氏は従来の教育方法には問題点があると指摘し、自ら学校を設立しています。その学校では、主に「遅延評価型勉強法」の有用性を述べています。その箇所を引用したものが以下になります。
例えばエンジンの仕組みを教えるとします。従来のやり方ではまず、ねじ回しやレンチ等、ツールの利用を教えます。でも、それって、覚えるのが大変なんです。それよりも、「これがエンジンです。どうやって分解する?」と問題提起し、「ねじ回しやレンチがいるね」とツール(道具)のことを学ぶのです。すると、解決する問題と解決法の関連性が明確になるのです。
まさしく、「遅延評価型勉強法」ですねぇ!
まとめ
本稿では、神代類という人物から「遅延評価型勉強法」についてをまとめました。実際にこの勉強法で取り組むと、勉強がとても楽しいものであることが分かります。もちろん、資格取得のため、単位取得のために勉強することが非効率で避けるべきものであると言いたいのではありません。こんな勉強法もあるのだ、ということを紹介したかったまでです。
あなたが今、心の内からやりたいことはなんでしょうか。まずはそれに直接取り組んでみることをおすすめしたいです。例えば絵を描きたいのならば、ペンの持ち方や身体の書き方の本を読むのではなくて、いきなり絵を描くのです。それで必要に応じて別途参照すれば良いのです。
引用文献
[1] 西尾泰和『エンジニアの知的生産術 ー効率的に学び、整理し、アウトプットするー』2019年、技術評論社。