プログラミングの勉強をする際、はじめは本に書いてあるプログラムを書き写して動かしてみると思います。本とパソコンをにらめっこしながら丁寧に書き写して、いざ実行!
当然ですが、初めはそれほどうまくはいきません。
コンソールに計算結果が出るかと思いきや、エラーの表示が出る。どこが間違っているのかも分からないし、直し方も分からない。
このような状況に至ると、イライラがたまってくる人もいるでしょう。私も初めのころは「なんでこんなにも動かないのか!」と何度も天を仰いでいました。
しかし、プログラマーはこのような状況でこそ落ち着いて対処できる必要があります。
すべては、あなたが書いたコードに原因があるからです。他人がかかわっているわけでもありませんし、パソコンが気分屋になることもありません。
ここでは、コードが動かなくなったときに落ち着いて対処する方法を説明していきます。
本と全く同じコードを書いているかを確認する
同じことを書いたと思っていたとしても、実は違うということはよくあります。
スペルミスや大文字小文字の書き間違いは当たり前。文末の記号が漏れていたり、スペースの数が違っていたり、改行の数が違っていたり・・・。
このような細かい点を含めて、「一字一句同じことを書いているか?」を確認しましょう。
出来上がったあなたのコードは、本と同じ行数になっているはずです。不安であれば、コメントも含めて同じことを書きましょう。そうすれば、本とあなたのコードの行数は必ず一致します。
プログラミングは、人ではなくコンピュータに指示を出すことになります。
コンピュータの世界では、大文字と小文字は別物です。スペース一つずれるだけでも全く動かなくなることもあります。人のように、あいまいなところを良い感じに解釈してくれるといった便利な機能はありません。
これは、プログラミングを勉強し始めた方の全員が一度はつまづくところです。
「なんで動かないんだ!」と思っていたら、スペルを間違えていた。半角スペースではなく全角スペースを使っていた。
正直言うと、これだけで9割の悩みは解決します。あなたのプログラムが動かない理由のほとんどは、本の通りに書けていないから、です。
しかし、安心してください。誰でもこのような「ミス」を乗り越えてプログラマーとして活躍しています。焦らず、1つずつ丁寧に確認しましょう。
本の前の章で書いているコードを消していないかを確認する
本を読んでいると、いつの間にかコードが変更されていることがあります。
各章が独立して説明とコードを書いているなら問題ないのですが、前の章で書いたコードをベースにして次の章の説明が続いている場合は、注意が必要です。
「forループは、以下のような書き方です。」と言ってコードの説明があったかと思うと、その後にあれやこれやと説明が追加され、コード例も紹介され、次の章に移ったときにはどの説明で使ったコードをもとに次の章に進んだのかが分かりにくくなります。
特に、「○○の関数がありません。」というエラーが出る場合や、プログラムの実行結果と本と違う場合は、このような状況に陥っていないかを確認しましょう。
本のどのページのコードをもとに今の章の説明は書かれているのか。ここを見返すことで、また本と同じ立ち位置に戻ることができます。
ネットで同じことを書いているコードを調べる
前述の方法で解決しない場合、まれにあることですが、以下のような場合が考えられます。
- 言語やツールのバージョンが違うことで、同じ関数が存在していない
- 本に書いてあるコードに誤植があり、もともと正しく動かない
プログラミングの勉強をしている際に言語のバージョンが違うことで何か困ることはあまりないとは思いますが、フレームワークの勉強をしているときや別のライブラリを追加して新しいことを試そうとしているときは、よく起こります。
ネットに出ている解説記事にも、言語やツール、ライブラリのバージョンが書かれていないときは注意が必要です。新しいライブラリには存在していない関数を使っていたり、効率的でない書き方をしていたりすることが多々あります。
自分の使っている環境と同じものを参考にする癖付けをしましょう。
また、本に書いてあるコードに誤植がある場合もたまにあります。私もこれまで何百冊と本を読んできましたが、ITの本に限らずどの本でも誤植がない本の方が少ないというぐらい、本には書き間違いはつきものです。怒らずに許してあげてください。
そして、本に誤植がある場合は、当然ですが本の通りに書いても動きません。その場合はネットで同じことをやっている記事を探しましょう。または、本の別のページから同じことをやっているコードを見つけて、差異を見つけましょう。
その差異を自分のコードに反映させて、コードが動けばすばらしいです!
さらに理解が深まるきっかけになるでしょうから、ぜひ諦めず、本に対して怒りを持たず、成長のチャンスを得られたと思って取り組んでいきましょう。
まとめ
どれだけ現場で活躍している人でも、一発目でバグのないコードを書けることはほとんどありません。だからこそ、細かいところまでチェックして間違いを限りなくゼロにする癖付けを早いうちからやっておくことには、大きな意味があります。
実際の現場にいる経験者の方でも、細かいところへ注意するのが苦手な方は、小さな書き間違いのために何度も苦しむことになります。
一回当たり2,3時間悩むことも普通にあります。そこで先輩に相談しに行った結果、先輩にものの10秒で書き間違いを指摘され、赤っ恥を書くということがよくある流れです。
不要な苦しみや恥ずかしさを避けるためにも、一字一句丁寧に書いて確認する癖を、今のうちからつけておきましょう。