見出し画像

【まとめ】『写経』でプログラミングを身につける方法 v0.2

お疲れ様です。Y研究員です。昨年末から『写経』について考えてきました。これまでに得られた知見をまとめます。『写経』でプログラミングを習得したい人や、『写経』はするけど上達してる気がしない人の参考になればと思います。

『写経』する題材を選ぶ

まずは興味のあるものが良いと思います。興味があれば最後までやり通せる確率は高いです。そしてレベルに合わせるのも大事です。難しすぎると分からなくて、つまらなくなってしまうからです。あとは、プログラムの実行結果が分かって、答え合わせができると良いでしょう。できればサンプルの入力と期待する出力が明記してあると使いやすいです。

Webページにも題材はありますが、一般的に本のほうが内容は精査されているように思います。分野の売上No.1である必要は無いですが、売れてる本に理由はあるので、評価は見ておいたほうが良いでしょう。

『写経』は頭に入れてから書く

サンプルプログラムを覚えながら書き写す『記憶写経』がおすすめです。特に一行ずつ頭に入れてから書き写す『一行記憶写経』が、最初は良いと思います。処理に注意を払って理解しながら『写経』することに繋がります。また、分からないところは立ち止まって考えたり調べたりできます。

言語に慣れてきたら一度に全部覚えて再現する『全部記憶写経』にチャレンジすると良いと思います。ここまで来ると、入力と求める出力を把握したあとはサンプルプログラムの設計を参考にして、ほぼ自力で書くのに近い状態かと思われます。

最後までデバッグをする

最も大事なパートです。書き写しても間違える場合は有るので、求める出力が出るまでデバッグは必須です。般若心経で例えると、デバッグをしない『写経』は、願い事や名前・日付を書き忘れた写経です。もしくは、形だけを真似して、心が入っていない写経になってしまいます。

まずはお手本を見ないで、おかしいところを探す。分からなかったら見比べる。それでもデバッグしきれなかったら、変数をプリントしながら問題箇所を切り分けます。仮説を立てて探索する範囲を設定したあとは、二分探索で探せると効率良く出来そうです。

日本の芸事を修行するときに言われる守破離ならば「守る」フェーズです。まずはお手本を忠実に再現しましょう。

変数名を変えてみる

お手本のプログラムで使われている変数や関数の名前を自分で変えて書いてみる手法です。間違えて名前を変えるとプログラムが動かなくなるので、構造を理解するのに役立つと思います。

おそらくサンプルプログラムの変数や関数の名前はとても吟味された結果なので、なぜその名前になったのか考えてみるのも良さそうです。言語やライブラリ特有の言い回しを知る機会にもなりそうです。

ここでは「破る」段階に入ります。サンプルプログラムを改良できたら立派な1.5人前です。

一冊を終えたら自分で何かを作ってみる

理想的には一冊を終えることです。どの本にも目標はあるので、やり切ればそれに近づくと思います。あとは練習したプログラミングで、現実の問題解決ができれば身についたと言えるでしょう。簡単なゲームを作ってみたり、既にあるプログラムを再実装するのも良いと思います。仕事のサイドプロジェクトで使えたりすると、業務時間中に能力開発ができます。

オンラインのプログラミング練習ツールを利用するのも一つの手です。練習問題が用意されているので、プログラムを書いて評価してもらうサービスです。自動的に判定してもらえるので、間違いを気にせず自分ノーペースで進めるのが良いと思います。

お手本から「離れる」ことが出来ました。一つの『写経』する題材を選んでからここまで到達しました。ぜひ次の目標を探して精進してください!

この記事ではこれまでに得られた知見をまとめました。引き続きC言語の古典的教科書K&Rの『写経』と般若心経の写経を進めて、よりよいプログラミング学習法の『写経』を研究していきたいと思います。

写真は道半ば、ということで街道の写真です。橋を渡って次のステージに進むイメージをして選びました。

では。

般若心経の写経とプログラムの『写経』に関する記事はこちらからどうぞ。


初版:2023年1月19日
守破離を追加してv0.2としました:2023年2月8日

無料のプログラミングクラブCoderDojoを運営するにあたり寄付を受け付けています。お金は会場費・Wifiの費用・教科書に使用します。