『独学大全──絶対に「学ぶこと」をあきらめたくない人のための55の技法』が10万部を突破! 本書には東京大学教授の柳川範之氏「著者の知識が圧倒的」独立研究者の山口周氏「この本、とても面白いです」と推薦文を寄せ、ビジネスマンから大学生まで多くの人がSNSで勉強法を公開するなど、話題になっています。
この連載では、著者の読書猿さんが「勉強が続かない」「やる気が出ない」「目標の立て方がわからない」「受験に受かりたい」「英語を学び直したい」……などなど、「具体的な悩み」に回答。今日から役立ち、一生使える方法を紹介していきます。(イラスト:塩川いづみ)
※質問は、著者の「マシュマロ」宛てにいただいたものを元に、加筆・修正しています。読書猿さんのマシュマロはこちら

Photo: Adobe Stock

[質問]
プログラミングの学習方法について

 こんにちは。私は学校でC言語のプログラミングを習っていて、そこそこできるようはなったのですが、自分がやりたい言語に手を出そうとするとどう勉強すればよいか分からなくなります。学校では授業で解説し、課題が出されていたので、それをこなして力が身に付きましたが、独学でやろうとすると何をすればいいのかわからず、本の文章を読んでみてもサンプルを打ち込んだり問題を解いてみても身に付いた気がしません。その言語で作りたいものややりたいことはあるのですが、それは今のレベルでは難しいのでいきなり挑戦は無理だと思っています。何かよい方法はありますか?

まず、やりたいことを小目標に分けよう

[読書猿の回答]
 正規に習ったことがない上にヘッポコなので良いアドバイスはできませんが、今時の言語は、やりたいことに挑戦しやすい気がします。やりたいことを小目標に分けて、それに挑戦するのが良いと思います。

「今時の言語」というのはライブラリが充実したRubyやPythonなどをイメージしてます。自分の例を挙げますと、国会図書館のデジタルライブラリから画像をダウンロードしてPDFにまとめて目次をつけるというプログラムをPythonを学んで最初に書いたのですが、これは既存のライブラリを並べてできました。

 Common Lispを学んだ時は、すごく弱いオセロゲームをつくりました。こっちは「オセロゲーム」をどんどん小さな単位に分解して、盤の表示もCLIで簡単に済ませたおかげで、できましたが、この簡単なゲームをつくることは勉強になった気がします。

 結論めいたものが出たので、ヘッポコなのに偉そうなまとめをすると、「やりたいことを、できること(レベル)にまで分解する」のが、どんな言語を学んでも役に立つ、プログラミングの基礎だと思います。