プログラミングをしている人であれば、誰しもこんな場面を経験したことはないでしょうか?
「コードがエラーで動かない!」
「エラーの原因がどこにあるのかわからない!」
「何をどうやっても不具合が解決できない!」どんなにキャリアを積んだプログラマーでも、プログラムのエラーや不具合を完璧に防ぐのは難しいものです。そのため「エラーや不具合の原因をすばやく見つける技術」は、プログラミングをする上で欠かせないスキルの1つです。
本書は、そんな「コードが動かない!」という状況でどのように対処したらよいのか、エラーや不具合との上手な付き合いかたを、新人プログラマー向けにやさしく解説する入門書です。
コードが動かないので帰れません! 新人プログラマーのためのエラーが怖くなくなる本 電子書籍|翔泳社の本
初めてプログラムを書いたのは大学4年生のときなのでプログラミング歴は23年になります。
自分は「すごいプログラミングができる」というわけではないのですが、それでも23年も続けているとそれなりに知識や経験がたまるのでエラーの調査の仕方が分からないとかデバッグの仕方が分からないということはありません。なので「新人プログラマーのためのエラーが怖くなくなる本」というタイトルは自分にフィットしないのですが*1、一方で初心者ではないけれど初歩的な知識を網羅的にもっているのかというと決してそうではないなという自覚もありました。プログラミングのスタートが独学だったということもあって体系的に何かを勉強するのではなく自分が知りたいことをひとつひとつ学習して身につけてきたのでわりと基本的なことでも知らないことはたくさんあると感じています。
ということで、本書を読むことで自分の足元というか基本的な知識を見直すいい機会になるんじゃないかと思って本書を読んでみました。
この本ではJavaScript +Chrome でコードの説明がされているのですが自分は JavaScript の知見はまったくありませんでした。ありませんでしたが、内容はとても初歩的で分かりやすかったし Chrome であればだいたいの環境に既に入っているので(自分は Edge でしたが)、言語の知識や特別な環境が必要ではなくて間口が広くとられていたのはよいなと思いました。まさに初心者向けの本だと思います。
本書の構成は以下のように6章で構成されています。
1~5章はエラーの読み方やデバッグの仕方、問題の特定の仕方について書いてあり、最後の6章だけはデバッグのしやすいコードを書こうということでコードを書く上でおぼえておいたほうよいことがいくつか書いてあります。
1章から5章にかけてはかなり初歩的な部分からひとつひとつ知識を積み重ねていけるように丁寧にやり方や考え方が書いてあってとても読みやすかったです。正直に言うと最初は「こんなに当たり前の内容から書くの?」と思ったのですが、何も分からない人に説明するためにはこのくらい1から書かないとスタートの時点で理解がついてこなくて読むのを止めちゃうんだろうなと徐々に理解を深めていきました。読み進めていくうちに自分が初心者の気持ちがまったく分からないマンになっていたことを感じて反省しましたし、昔、長女が高校生のときに数学を教えていたのですがあるとき「パパは分からない人の気持ちが分かってない」と言われたことを思い出しました。相手の立場に立って考えるっていうほど簡単じゃないですね...。
エラーメッセージが読めるようになる→デバッグできるようになる→システム全体のトラブルシュートもできるようになる、という感じでステップバイステップで障害やトラブルに取り組む姿勢だとか考え方を学べるのはとてもよいと思います。
そして6章だけはちょっと異質というか、コードを書く上で気にすべきことについて書かれていたのですが、5章以前の内容と比べるとちょっと違うなと感じました。
単一責任の原則とか純粋関数とかそういったものが紹介されていて、エラーを読むのが怖いと言ってた人たちにこれが伝わるのかな?と疑問に思いました。ただ書かれている内容はかなりあっさりしていて「あくまでこういうことを意識するとコードが読みやすくなりますよ」という紹介にとどまっていたので、これはステップアップしたい人に向けたイントロダクションという位置づけであっておまけというか付録みたいなもんなんだろうと理解しました。ちょっと上の概念というか考え方を伝えることで、もっと勉強したいと思った人が興味を持ってくれたらそれはとてもいいと思うし、そうじゃなくても単語としてなんとなく頭に残ってくれたら今後ステップアップしていく中で役立つこともありそうなのでこの構成はとてもいいなと思いました。
自分が新人プログラマーに直接何かを教えることは今後もそんなにないかも知れませんが、分からない人の気持ちを理解しておくことはさまざまな人とかかわっていくうえでぜったいに役立ちそうです。
*1:タイトルの前半部分の「コードが動かないので帰れません!」はよくありますw