下準備をすれば大きなことに挑戦できる

研究室の忘年会のための買い出し。10人分の料理というのを作ったことがないので、どれくらい用意すればよいのか分からないが、Cookpad にお世話になりつつ1ヶ月以上かけて献立を考えてきたのであった。部屋の収容可能人数的には10人でも問題ないのだが、20歳前後の学生がどれくらい食べるか分からないのである。

買い出しのあと、二手に分かれて下ごしらえ。味付けは妻にお任せして、ひたすら野菜を切る。

これまで料理といえば食べる直前に作るもので、下準備をしたことはなかったが、研究も料理も同じで、どれくらい下ごしらえをしておくかで、全然最後の楽さ加減が違うな〜。これからどんどん固まって取れる時間がなくなると思うので、下ごしらえに習熟して段取力を上げていきたい。

空いた時間で「コーディングを支える技術」を読む。

これを読んでプログラミングができるようになる、というような種類の本ではないが、それぞれのプログラミング言語ができてきた歴史的経緯を追うことで、どういう設計思想でこの言語はこういう機能や仕様になっているか、という話が丁寧に書かれていて、あまり類書のない感じで楽しめる。(すでにコードを書ける人には退屈な話だと思うかもしれないが)

学生には「とりあえず一つの言語でいいので何も不自由なくプログラムが書けるようになる」と言っているのだが、その一方、それを越えたら「複数の言語を知って、自分の思うような書き方が唯一絶対のものではないことを知る」ということも大事だと思う反面、その境目はどにあたりになるのか思い悩む。そういう意味で、一通りなにか作れるようになって、何個か言語に手を出して、といったあたりでこの本を読むと、ちょうどいいかなと思った。

大学では、自分で学んでくれる人ばかりならよいのだが、現実はそうではないし、もっと言うとある程度書けるようにならないと楽しさが分からないので、放っておいて不自由なく書けるようになるわけではないのである。教員としては、「プログラミングが楽しい」と思うまで、あるいは自分はそう思えなくても「『プログラミングが楽しい』と思う人がいるくらいにはプログラミングには楽しめる側面がある」と思えるまでが教育かなと思う。

もっとも、こんなこと、教えるような内容だろうか?と自問自答することもあるのだが、自分自身、大学院に来るまでは、知識というのは教員のように圧倒的に知識を持った人から教えてもらうもの、あるいは優れた教科書や入門書を読んで理解するもの、と思っていたので、問題はそこじゃなく、そこを越えたところにあるので、それが分かるようになるところまでは、さっさと到達してほしいと思うのだ。

結局最先端の現場では教科書なんてものは存在しないし(優れた教科書が書けるというのは、教科書が書ける程度に枯れているということである)、教わるのではなく教えることこそが、「知っている」知識ではなく「使える」知識を身につけるために必要なのである。ちなみに、教えるというのには、他人に教えるだけではなく、自分で自分に教える、つまり独学するという能力も含む。

余談だが、どうやら独学ができない、あるいは苦手な人も世の中にはいるようで、どうやったら自分で勉強できるようになるか?ということを最近考えているのだが、そういう人も恐らく教室で誰かに教えてもらうという設定には慣れているはず(ここから困難な人もいるとは思うが)なので、まずは他人に教えるところから始めたらいいんじゃないかと思っている。他人に教えようと思うとだいぶ調べたり準備したりしないといけないが、その大変さを知った上で、自分で勉強するときも、基本的に他人に紹介するつもりで勉強するのである。

問題点は2つあって、一つは他人に説明するつもりで勉強すると時間がかかるということだが、これは時間がかかるのは最初だけで、継続すれば苦にならない。もう一つのほうがクリティカルで、他人に説明する、つまりアウトプットする前提でインプットすると、アウトプットできることでないと理解できないということである。つまり、意味が分からないけどひとまず自分の中に置いておこう、というようなことがやりにくい。

これに対する答えは自分の中にはまだない。意識して「これはいま分からなくても重要だから覚えておこう」というフラグを立てておかないといけない。そうやって自分自身への「宿題」をたくさん持っておくと、あるとき一気に思考がつながったりするのがおもしろい。