見出し画像

C言語を使って『写経』を研究する

お疲れ様です。Y研究員です。今回はプログラミングの『写経』です。

カーニハン&リッチーの伝統的な教科書から行のソートを写経しました。テストデータを作って動かしたところ、挙動が怪しかったのでデバッグしました。書き写したコードを眺めたところ、一文字の書き間違いを発見しました。やはり『写経』は動かして、正常動作を得るまでが大切です。書きっぱなしでは、かけた時間に対して学びが少なく、効率が悪くなります。こうなってくると『写経』のお手本には、テストデータと求める出力が用意されていると良いと分かります。

C言語の怖い例を見つけたので共有します。「お腹が痛くなる」選択肢で逃げたくなりますが、どうやら"2[buf]"と書いても配列bufの3番目の要素にアクセスできるらしいです。普通はbuf[2]と書きますね。コンパイラでエラーを出したり、実行時に止まってくれれば良いんですが、しれっと実行されてしまうのは「お腹が痛い」です。勉強になりました。 

さて『写経』に最適なお手本を探して検索したところ、新しいテーマを見つけました。それは、C言語のコンパイラです。文法を理解するよりも、大量のコードを書き写してデバッグする経験からC言語が学べるという説です。

習うより慣れる、英会話で言えばシャドーイングみたいな手法と理解しました。記事中にはもう少し簡単なCのPuzzle Bookも紹介されていました。カーニハン&リッチーのポインタを終えたら(+もう1章?)、次のテーマに移りたいと思います。

こうなってくると、何のためにC言語の『写経』をするのかが問題になります。ここでは、より良いプログラミングの『写経』とは何かを考える、がテーマです。改めての確認になりました。

ではまた!

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