ながめも

競技プログラミングについて

大学が私に与えた影響

大学は、私の人生にどのような影響を及ぼしたのか、卒業してからよく考えている。世間では就業機会や生涯年収といった実利的な側面についての言及が多いが、それらはあくまで社会構造に起因するものであり、今回私が考えたいのは、人格や考え方に対する、より個人的で抽象的な側面である。

大学にいくと何が変わるのかを考えるには、変わる前、すなわち大学入学前から振り返る必要がある。自分語りが多く含まれる可能性が高いが、個人のブログなので、ある程度はお許し願いたい。自分語りが好きな方に読み進めていただけたらと思う。

小中高

埼玉県に生まれ、公立の小中学校と私立の高校に通っていた私は、とにかく丸暗記が得意で、中学に上がってからは常に学年で成績トップだった。テストの数週間前から教科書とノートを丸覚えし、得点率は90%を越えていた。教科書の本文の穴埋め問題なども、一言一句すべて覚えているため、考える必要もなかった。

学校の「勉強」が得意だった私には、その時は小さかったものの、確かにコンプレックスがあった。文章が読めなかったのだ。文字を追うのが億劫で、すぐに眠たくなってしまい、最後まで読めた本は数えるほどしかなかった。中学校には「勉強」はそこそこだが、文章を読める・書ける同級生がいた。彼は休み時間にはいつも本を読んでいて、数学より国語が得意だった。私の最も苦手で、親に代筆してもらっていた夏休みの読書感想文で、彼はいつも表彰されていた。私は彼に対するコンプレックスに気づかないように、内心彼を馬鹿にしていた。あんなに本が好きなのに、本が読めない自分より国語の成績が低かったのだ。本なんて読まなくても、「勉強」はできる。そう思い込んで、本が読めない自分を正当化していた。本が読めないことが、いつか大きな足枷になると薄々気づいていたがゆえの歪みだった。

高校に上がってからも、持ち前の丸暗記力で学年トップの座を守っていた。丸暗記がさらに得意になっていたのか、テスト前の勉強をサボっても成績はそこまで下がらなかった。丸暗記に最適化された知識格納方法を無意識のうちに習得していたのかもしれない。

経験した人には共感してもらえると思うが、大学受験では、中学・高校受験のときと比べ、頭の良さがそのまま成績に直結するわけではなくなる。つまり、地頭不足を努力で補えるようになる。教科数も範囲も膨大になるからだ。例えば数学では天才的発想よりは、典型的手法をパズルのように組み合わせる能力が求められる。このパズルゲームは、引き出しを大量に正確に格納できる私向けだった。

いくら丸暗記とはいえ、続けていると、いやでも暗記した内容の中に含まれる論理構造も習得していくようで、「文章は読めないのに現代文の読解は得意」という異常な人間が誕生していた。大学にはギリギリ合格した。

大学/院

皆さんの予想通り、小中高の勉強をすべて丸暗記で突破した私と、大学での学問の相性は最悪である。入学した東京大学には、私のように「勉強」それ自体に四苦八苦した人間もいるが、「勉強」は片手間で学問や課外活動に注力していた人間も無視できないほど存在していた。後者の人間の多くはもちろん読書好きで、私が一生かかっても読めないような分厚い本を数日で読破し楽しんでいた。

大学での学問は、文章をなんなく読めることが大前提である。与えられた問題を正確に解けるのは当たり前、様々な文章を読んだ上で、自分で問題を作るのだ。私には太刀打ちできないと知るまでにそうかからなかった。

挫折した私は、微かな希望を持っていた学問への道を完全に諦め、単位を取るだけの勉強にシフトした(今思えば学問分野は多いため、他人との比較は諦める理由にならないのだが)。

学問を理解していない人間の進路決定理由は悲惨で、生き物が好き、という理由だけで理学部生物学科に進んだ。配属後すぐ、生き物は好きだが、生き物の謎を科学的に解明することにはほとんど興味がないことに気づいた。生体からとった目に見えない分子を手順通り薬品にかけ、データを取り、再現性を担保し、口頭発表や論文として公開する作業は、生き物が好きだけでは耐えられない。特に細かい作業が苦手で、失敗の原因が自分の手の悪さなのか、作業のミスなのか不明な実験のストレスは想像を絶するものだった。結局、実験で一度も成功体験を得られないまま配属希望研究室を決める時期になった。

学部の実習でRというプログラミング言語を使ったのが楽しかったので、その実習を主催していた研究室に入った。卒業研究は実験をせずRでお茶を濁していた。

こんなに研究が嫌いなのに、大学院の研究室選択では迷っていた。学部と同じ多少興味のある基礎研究か、就職に強そうな医学系の研究室という二択だった。この頃、指導教員との面談で、過去のコンプレックスを強く意識させられることになった。

私「興味のある分野がわからないです」

指「子供の頃、本棚にどんなジャンルの本があった?そこに原体験があるかもしれないよ」

私は子供の頃の本棚を思い浮かべたが、ジャンルと呼ばれるようなものは思い当たらなかった。読まなかったのだから当然である。この質問にうまく答えられなかったことで、本を読めなかったがために意思決定の機会をも失っていたと気づいた。

読んできた本から小さい頃の興味を類推できないなら、経験から考えるしかなかった。学部3年のRの実習でプログラミングが性に合っていると思ったのは、生物のリアルの実験と違い、簡単なプログラムならバグってもすぐに治せるからだった。大学受験の頃は物理でモノが動くのを想像するのが好きだったし、パソコンでそれを模倣できるならきっと楽しいのではという思いもあり、B4の夏に生物学を半ば捨ててプログラムを書く方に舵を切った。安易に選んだ進学先で実験のストレスに晒されたおかげで、本当に触りたいことを知ることができた。学部1-3年の頃はプログラミングを毛嫌いしていたのだから、人生何が起こるかわからないものである。

進路は、東京に近い方がいろんな情報を得られるだろうというのもあり、学部と同じ研究室を選択した。プログラミングは独学すればいいし、就職はなんとかなるという楽観的な選択だった。

この頃、たまたま競技プログラミングを勧められ、そのゲーム性に魅了されハマってしまった。競技プログラミングで扱うアルゴリズムの有用性は、すぐに理解できた。生物学でゲノムのマッピングツールで応用されていることを知っていたからである。アルゴリズムを扱うゲームに自分の人生をベットしても悪い方向にはいかないと信じられたのは、あのときの安易な進路選択のおかげだった。

大学院では、論文指導を受けたことであんなに書けなかった文章がすらすら書けるようになった(まだまだ拙いところもあるが、これでも成長している)。自分で構成を考えて書いてみると、書いている人の気持ちに寄り添えるようになり、本を手に取る機会も増えた。

まとめ

大学に入って変わったことは、具体的には優秀な友人やプログラミング能力だが、もっと抽象的で大事なことがある。それは、あらゆる活動は普段目に見えないだけで、全て生身の人間が行っているという実感が得られたことである。書店に並んでいる本も、書いているのは私と同じ人間で、それぞれの人生がある。そう考えると、無味乾燥としているように見えた本も、その先に想像力を働かせれば、メッセージを読み取りたいという気持ちになる。

大学について何も知らず、興味のある分野・業界もなかった私に、6年間で様々な試行錯誤をさせてくれたというだけで、大学にはとても感謝している。今後は、私のように、刺激があれば動ける人に、気付くための機会を少しでも増やすことを大きな目標として精進していきたい。

ポエムで、すみませんでした。