見出し画像

プログラミングを始める、上達するために読む本。

お疲れ様です。Y研究員です。今日はいつもの「写経」から離れて、本の紹介をします。そもそも「写経」の自宅研究を始めるきっかけとなった本の続編です。プログラミングを始めるには一番いい本だと思います。

「エラーで学ぶScratch」

前の本は「エラーで学ぶScratch」でした。プログラムを書いても動かない時はデバッグをします。しかしデバッグ方法にもコツがあるので、練習問題を解きながら身に着ける本です。

プログラミング言語がScratchなので見かけは簡単そうです。しかし、どのプログラミング言語でも遭遇するバグを取り上げていました。いままで似たような本を読んだことがなかったので、とても興味深く読ませていただきました。

「エラーで学ぶPython」

今回はその続編です。一番人気のPythonを使っています。ざっと目を通したので、良いと思った点を3つ紹介します。

1.プログラミングの本質を突いた課題

例題は簡単な計算などですが、エラーはどのプログラミング言語でも遭遇する大事なものが紹介されていました。小文字のLと1の打ち間違いや、浮動小数点の計算誤差などはプログラミングらしいバグです。この辺の話は教えてもらわないと、自分で気が付くのは難しいです。なので、いい手引きとなる本だと思いました。

さすがと思うのは、つまづきやすいポイントを広く抑えている点です。教育現場で長年の経験がある著者の経験が生かされているなと思いました。

2.よく考える癖がつく

自分もよくやってしまいますが、とりあえずプログラムを書いてみて動いたらそれでヨシ、となる場合があります。動かない場合でも、よく考えず勘でいじくりまわして動いたらそれでヨシ、というダメなデバッグ方法?もあります。最近だとエラー文をそのままコピペしてググるとか、IDEに付いてくるデバッガを乱用するなど、堕落した例は挙げればキリがありません。

そうではなく、この本はまず自分の書いたプログラムをよく読めと教えてくれます。じっくり読むと間違いに気が付く場合があります。それでも分からなければ、エラー文を読むのが正しい手段です。公式のドキュメントでエラーが確認できれば一番いいです。

3.「写経」のその先を教えてくれる

Scratchの本にも書いてありましたが、書き写す「写経」だけしていてもプログラミングは身に付きません。最初は「写経」でも良いですが、次の段階は少し変えて動かしてみる、です。そして自分で新しく書いてみることができれば、本の内容が身に付いたといえると思います。芸事を習う時に言われる守破離と全く同じだと思いました。

この本では練習問題で少し変えてみるとか、新しく書いてみるが取り扱われています。この本を1冊終えればPythonが使えるようになっています。

読書感想その1:「写経」について

実は「写経」を自宅研究しようと思ったきっかけは、前の「エラーで学ぶScratch」でした。はじめにの中で「写経」だけではデバッグ方法が身につかず、プログラムが書けるようにならないという指摘がありました。

しかし自分も「写経」はよくやるので、「写経」の方法が良くないのではないかと考えました。そして偶然にも1分で名著が般若心経をとりあげていたので、毛筆の写経もやってみました。そこで、この2つの写経と「写経」を比較したら何か発見があるのではないかと思った次第です。

思えば写経は便利な言葉で、日本人なら単純に「書き写す」以外の派生したイメージが浮かぶと思います。毛筆なら道具を選んだり、お経の意味を調べて仏教を勉強したりして広がりがあります。それくらい写経は奥深いものです。しかしプログラミングの「写経」はあまり深く考えられてない気がしました。インターネットを調べてみてもあまり情報が無く、英語でやっと「Type out other's code」という記事を見つけたくらいです。

そんなわけで、自分でも実践して気付きを得るために「プログラミング文体練習」という本の「写経」を続けています。この本はプログラムのすべての行に解説がついていて、さらには適切な練習問題も用意されています。つまり「エラーで学ぶPython」が指摘する、守破離の道が用意されていると気が付きました。

読書感想その2:プログラミング教育

何年か前に学校でプログラミング教育が始まるというニュースがありました。仕事でプログラムを書く身としては、どういう授業になるのか興味深く思いました。直感的には、仕事でプログラミングをしている人の多くは学校の授業でプログラミングを習うよりも、自分で勝手に覚えた人の方が多いように思ったからです。つまり、本当に学校でプログラミングを教えられるのか、不思議に思った記憶があります。

しかし、今どきのプログラミングは、プログラミングの本に熱中して勝手に夜遅くまでデバッグをする人だけのものではなくなりました。仕事で書かなくても、みんながプログラムとはどういうものか知っておく必要がある時代になったというわけです。

その疑問への答えが、この「エラーで学ぶ」シリーズです。著者の経歴を拝見すると、学校で教育を長年されてきた方と分かりました。教えることのプロです。興味の程度や理解の速さがバラバラな人をまとめて教えるのは至難の業です。しかし、長年研究されてきた普遍的な手法はあるように思いました。それにプログラミング特有の典型的なハマるポイントを組み合わせて、この本が出来上がったと思った次第です。

これでプログラミングはパソコンが好きな人のためだけでなく、みんなの物になると理解できました。

おわりに

今日はプログラミングを学ぶ本を題材に記事を書きました。次回からはまた自分の「写経」を続けたいと思います。「プログラミング文体練習」の「写経」を終えたら「エラーで学ぶPython」を読んで記事にできればと思います。

その後は「プログラミング文体練習」の練習問題に戻ろうかなと思いました。やはり「写経」だけしても身についていないと思ったからです。いつも別な言語で書きなさい、という練習問題があるので、C++23で書こうかなと思います。その他の練習問題も面白そうなので、全部解くことを目標に続けたいと思いました。

それではまた!

紹介した本など


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