『独学大全──絶対に「学ぶこと」をあきらめたくない人のための55の技法』が10万部を突破! 本書には東京大学教授の柳川範之氏が「著者の知識が圧倒的」、独立研究者の山口周氏も「この本、とても面白いです」と推薦文を寄せ、ビジネスマンから大学生まで多くの人がSNSで勉強法を公開するなど、話題になっています。
この連載では、著者の読書猿さんが「勉強が続かない」「やる気が出ない」「目標の立て方がわからない」「受験に受かりたい」「英語を学び直したい」……などなど、「具体的な悩み」に回答。今日から役立ち、一生使える方法を紹介していきます。(イラスト:塩川いづみ)
※質問は、著者の「マシュマロ」宛てにいただいたものを元に、加筆・修正しています。読書猿さんのマシュマロはこちら
[質問]
プログラムが書けない後輩になにができるかについて悩んでいます
ゲーム制作サークルに所属する、情報系学科の大学生です。プログラムが書けない後輩になにができるかについて悩んでいます。
我々のサークルは、プログラミングをしたいと入ってくる者のうち、ほぼ全員が未経験です。そのなかですぐに伸びる人もいれば、やる気に溢れていろいろやろうとしているのになぜか筋が悪い人もいます。
私はいま(本当は作品を創る仲間にこんな表現はしたくないのですが)筋の悪い後輩と共同でコードを書いています。彼は、必要な知識の“点”を持っていても、それらをうまく組み合わせてコードを書けないようです。また、その知識の点もまばらで、重要な部分が抜け落ちていることも多いです。
一方、私は小学生の頃から独学でプログラムを書いてきました。件の後輩氏が数日悩んでいた問題でも、たいていすぐに「こうすればできるよ」と処理の流れを説明したり、コードを直接提示することはできます。しかし、このようなことばかりやっていては、ただ私が後輩から功績をうばっているだけですし、「後輩が実装を思い付けない」という根本的な問題が解決しません。
後輩は、調べ物をしていても重要な情報をスルーしてしまうようですし、少し複雑な実装になるとなかなか思い浮かびません。それでもやろうとしている後輩を見ると、健気に見えてきます。この状況で、少しでもプログラムを書ける私には、なにができるでしょうか。
私のいる研究室の指導教員は、あるとき「自分で理解しようとしない限り、いくら他人から説明されてもわからないよね……」と半ば諦めたように仰っていました。結局、当人の独学次第だということは、私も同意します。むしろ何もせず傍観することが正しいのかもしれません。それでも、私のところにある知識や経験を誰に役立てられないことが、少しもどかしいのです。
質問されるまでは、自分の能力を高めることに集中してください
[読書猿の回答]
問題は二つに分けられます。ひとつはあなた自身がどうふるまうか、もうひとつは筋の悪い後輩さん本人がどうするかです。
まず、あなたがどのようにふるまうかですが、あなたは既に筋の悪い後輩に比べて優れたプログラミング技術と、後輩を思いやる心を持っておられます。この路線をさらに推し進め、今まで以上にプログラミングの知識を重ね技術を磨いていき(できればコンピュータ科学や数学などの関連知識も:これらはあなたがプログラミングで用いる思考や発想を言語化し、人に伝えるのに役立ちます)、加えて後輩の愚問やプログラミング上の悩みを面倒がらず親身になって相談に乗ることです。
一言で言うと、プログラマーとしても人間としても「この人のようになりたい」という憧れの先輩となることです。後輩さん次第ですが、この憧れは彼にとってプログラミングに取り組む大きく良質なモチベーションになるはずです。
更に注文を付ければ、あなたは筋の悪い後輩さんから「非プログラマーはこんなところでこんな風に考えるのか(考えそこなうのか)」を学ぶことができます。どの程度混み入ってくるとロジックを追えなくなるのか、どんな場合に結びつけるべき知識を取り落として断片的な理解にとどまってしまうのか等、を学ぶことは、後輩の質問に対してより深い理解と解答ができる基礎となるだけでなく、あなたがどの道に進むにしろ、貴重な知的財産となるでしょう。
以上はいずれも、あなたの能力を高めることばかりで、あなたから後輩さんへの働きかけは含まれていません。あなたもお気づきのように、あなたは後輩さんのプログラミング能力に対して直接には何もできません。あなたが後輩さんを助けることができるのは、後輩さんがあなたに助けを求めた時・その事柄に限ります。
これまでの試行錯誤や断片知識、そして機会とやる気のすべてがうまく噛み合った時に、後輩さんはあなたに質問し助けを求めます。質問やヘルプを自ら出すのは、それくらいには大変なことなんです。
それでも、数日悩んでいた問題を、瞬時に先輩に解かれてもなおも食い下がってくるような人は、その限りで見込があると言えます。
さて後輩さんはどうすればいいのでしょうか。一番大きな選択は、このまま自分より良くできる先輩の傍らで悪戦苦闘を続けるか、それとも自分にはプログラミングは向いていないと諦めるか、選ぶことです。
プログラミングだけでなく、大学というのは、自分よりもよくできる人間と親しく接することができる貴重な機会です。その意味で、せっかく自分より力量のある先輩と組める幸運を存分に活かしてほしいところです。あなたからみるとまだまだへっぽこに見えるかもしれませんが、あなたの傍らで悪戦苦闘することで、後輩さんは他の状況では得られないほどの経験を得ています。
一方、後輩さんがいつか心折れて、プログラミングから離れることになったとしても、どうか後輩さんを、そして自分を責めないでください。その時は、後輩さんにとってプログラミングよりもずっと打ち込めるものを見つけたのだと思って、笑顔で送り出してあげてください。