プログラミングエラーで挫けないための最重要マインドセットと3つのエラー対処方法

こんにちは^^

15年以上前になりますが、僕が高校生の頃、HTML/CSSが独学できたことに味をしめて、次はゲームを作ろうと意気込んでC言語に挑戦しました。

少ないお小遣い使って3000円の参考書を買ったのに、エラーが出て3ページ目ぐらいでソッコーで諦めた経験があります(笑)

 

そんな僕が、今ではプログラミングを教えさせてもらう立場になりました。

この記事では過去の挫折と現状の経験を踏まえ、僕が大切にしているエラーハンドリングの際の最重要マインドセットと、効果的だと思う3つのエラーハンドリング方法を書きます。

 

 

エラーハンドリングの際の最重要マインドセット:開発者への敬意

 

エラーが出た時に、必要なのは、「開発者への敬意」を思い出すことです。

エラーで挫折しそうになるのは、エラーメッセージを読んでない事がほとんどの原因であることが多いと感じます。

エラーメッセージに解決方法のヒント、時には答えが書かれているのに、僕自身「うわ、なんか英語出た!よくわからん。」と思って、目の前のエラーメッセージを敵対視して、向き合おうともしませんでした。

 

しかし、開発者のことを考えると、このようにエラーメッセージに向き合わないことが、とても失礼なことだと気付きました。

考えてみると当たり前なんですが、エラーメッセージも、同じくプログラミングされたものなんですよね。

しかも、プログラミングに人生を捧げた達人たちが、叡智を結集し、エラーメッセージについて考えに考え抜いた末、作り上げた魂の一文(エラーメッセージ)です。

これは全然大げさではなくて、本当にそうなんですよね。

 

自分が学ぼうとしているプログラミングの道の達人が「間違えているのはここの可能性が高いですよ」って教えてくれているのにそれを無視することは、先人の努力を否定しているのと同じでした。

こんな姿勢では、自分の努力も報われなくて(エラーが解決できなくて)当然だったと思います。

 

そして、何より、今、自分がプログラミングを学べているのは、それこそ何十年も前から先人たちが努力を積み重ね、自分たちで技術を独占することなく、プログラミングというものを手に取りやすい形にしてくれたからです。

こういう背景を考えると、努力の量において自分の方が少ないことは明らかなので、「とにかく、まずは自分が間違っている」という視点に立てます。

こうして自分の傲慢さが消え、謙虚な姿勢でエラーメッセージと向かい合えます。

 

エラーメッセージに腹を立てることは、その道の達人が差し伸べてくれた手を払いのける事と同じだと思います。

エラーメッセージを用意してくれた先人の1000分の1も勉強していない段階で、「自分には才能がない」と言う事は先人たちの努力を軽視しています。

このように「開発者への敬意」を持った結果、エラーメッセージをきちんと読むようになり、エラーメッセージで挫けることがなくなりました。

 

エラーメッセージを読みましょうというアドバイスは僕も耳にはしていましたが、開発者への敬意なしでは、実践できず我流でエラーを解決しようとしていました。

エラーハンドリングの手法はたくさんあれど、そもそもエラーというもの対して見方を変えないと、画竜点睛を欠きかねないので「開発者への敬意」を最重要マインドセットとして挙げさせてもらいました。

 

以下では、「開発者の敬意」を持った上で、自分が有効だと思うエラーハンドリング方法を挙げさせてもらいます。

 

 

効果的だと思う3つのエラーハンドリング方法

 

1.エラーメッセージを翻訳する。

 

エラーメッセージは、基本的に、英語で出力されます。

僕自身、英語だからということで、脊髄反射的に読むことを拒否したことがありました。

 

しかし、前述の通り、エラーメッセージは先人たちの努力の塊です。

先人たちがエラーの原因として可能性が高いものを教えてくれているのに、英語ができないから、という理由で読もうともしないのはとても失礼なことだと思います。

時間がないということで英語の勉強は後回しにされがちですが、ここも本来であれば、英語を学んで読めるように勉強するのが筋だと思います。

なぜなら、先人たちも英語を読むために時間を費やしたからです。

英語ができないのなら、自分の努力不足を認めた上で、グーグル翻訳を用いて歩み寄る姿勢が必須だと思います。

その際、翻訳の精度が悪いというのは開発者の敬意という観点から禁句ということにしています。

 

 

2.エラー原因箇所をメインプログラムから分離する

 

エラーが出た時は、まずその部分を新しいファイルに分離させて、まずは、部分単位で動くことを確かめます。

 

プログラミングとは各部品を順番通りに並べてやることです。

各部品がきちんと動くことが保証できないのであれば、面倒でも部品単位で再度検証しないといけません。

 

僕自身、言葉ではわかってたんですが、新しいファイルを作るのが何故か面倒でできませんでした。

ただ、これをしないと、組み合わさった複雑なプログラムの上で、エラーハンドリングをすることになるので、余分に時間がかかるばかりでなく、情報量が頭の許容量を超えてエラーをいつまでも解決できなくなります。

 

 

3.上手く動いているコードと見比べる

 

「お手本の通り書いたのに動かない」場合は、お手本の通り書けていません。

プログラミングは100%厳密で、最終的に0と1の組み合わせで動くので、余計なものが一つでもあると動きません。

エディタを2分割で両者を1文字単位で見比べたり、時には差分ツールを使って確かめると、「お手本通りに書けてないこと」に気づくことがほとんどです。

 

プログラミングは人が創造したものなので、現実世界の問題解決方法が応用できる場合が多いです。

例えば、なにかの部品を修理してて、もとに戻せなくなった経験がある人も多いと思います。

そんなとき、手元に正常に動いていた時の部品があれば、見ながら直せますよね。

プログラミングもこれと同じです。

 

コメント

タイトルとURLをコピーしました