こんにちは、プロ象(@shoshi_pro)です。
プログラミング始めたんだけど、思った通りにぜんぜん動いてくれなくて、なんか英語で怒られてる気がするんだけど…怖くてすぐ消しちゃうんだよね…。
それ、エラーメッセージだね。実はそのエラーメッセージが間違いを直すためにすごく大切なんだ。それを読んで意味を理解するだけで、エラーを直すことが格段にできるようになるよ!Web翻訳などを使ってでもエラーメッセージの意味を理解するように心がけてみようね!
今回は、プログラミングと切っても切れないエラーとの闘い、これを挫折せずに解消する方法について解説していきます。
エラーを解消する一番早い近道は、その言語に精通している人に聞くことです。無料の掲示板でも答えてもらえる場合もありますが、なぜエラーが起こっているのか、エラーの解消の仕方など、SAMURAI TERAKOYAならプロのエンジニアから丁寧に回答してもらえます。
月額2980円~(税込み3278円~)という、プログラミングスクールの中では比較的リーズナブルな値段で、プロのエンジニアに質問し放題になります。
エラーが直せないなら、ちょっと高上りになってしまいますが、1月だけ登録してお試しで使って、Q&Aを使いまくってみるということもできます。
デメリットとしては、自主学習がメインのため、自分から学習を進めることができないと厳しいということや、マンツーマンレッスンの数が決められていることでしょうか。
エラーの解消に苦労しているのであれば、まずは無料登録をして使ってみるとよいかもしれませんね。
結論は以下の通り。
- エラーメッセージの意味を日本語訳などをしてでもいいから、理解する
- 「(エラーメッセージ)+解決」や「(エラーメッセージ)+error」などで検索をかけて、エラーの解消方法を見つける
- エラーの場所をデバッグツールなどを利用して特定する
- エラーを細かく分けて、どの処理でエラーが起こっているか分析する
- それでも分からなければ、人に聞く環境を用意して人に聞く
初心者の間違ったエラー対処法
初心者の人にありがちなのが、以下のようなことです。
- エラーメッセージを読んで意味を理解しようとしない
- エラーの場所を特定せずに、やみくもにコードを修正する
- スペルエラーや全角スペースが入っているなどの単純なエラーを確認しない
- コードを眺めているだけで、手を動かさない
エラーが起こること自体は、プログラミングをやっていたら必ず直面することです。
ですが、そのエラーに正しく対処できずにプログラミングが嫌になってしまうのは本当にもったいない。
今回は、このエラーの対処法を書いていきますので、エラーで困った際の道しるべにしてもらえればと思います。
正しいエラーへの対処法
エラーメッセージの意味をしっかり理解する
エラーメッセージは基本的に英語で表示されます。したがって、英語を理解できればそれに越したことはありませんが、なかなかそうはいきませんよね。
だからエラーの意味は分からずに読み飛ばしてしまっている、実はそれ、大きな間違いです。
エラー対処は、このエラーメッセージの意味をしっかりと理解することが重要で、これが出来ないと間違ったエラーの対処をしてしまうことにつながります。
具体的に見てみましょう。
例えば以下のようなエラーメッセージが表示されたとします。
Uncaught SyntaxError : missing ) after argument list
これはJavaScriptのコンソールログに表示されたものをそのまま持ってきたものになりますが、これを見て意味をしっかりと取れるでしょうか。
意味が取れない人は、こういったエラーメッセージをGoogle翻訳やDeepL翻訳などにかけて、日本語に直すかたちでよいので意味を取るようにしましょう。
これをGoogle翻訳にかけると「キャッチされていない SyntaxError: 引数リストの後に ) がありません」となります。
このままだと「SyntaxError」がそのまま英語で表現されているので、「Syntax Error」のように「Syntax」と「Error」の間にスペースを入れてあげます。
そうすると「キャッチされない構文エラー: 引数リストの後に ) がありません」と「Syntax Error」を「構文エラー」と表現してくれるようになりました。
「Uncaught」の部分が「キャッチされない」という何とも分かるような分からない日本語になっていますが、ようするに「エラー対策がされていない」というような意味になります。
つまり、「エラー対策されていない構文エラー:引数リストの後ろに )がありません」となるのです。
このエラーが出たときのJavaScriptの1行目を見ると、「console.log(1;」となっており、1の後ろに「 )」がありません。
今回はとても単純なミスだったけど、複雑なプログラムになればなるほど、このエラーメッセージがエラーの修正に役立つんだ。まずはエラーメッセージが出たら、そのエラーの意味をしっかりと取っていくようにしよう。ときには翻訳にかけてでも、意味を取るようにしていきたい。何度もエラーメッセージに出会えば、だんだんとその意味を調べないでもわかるようになってくるよ!
Googleで検索をしてみる
エラーメッセージの意味が分かっても、そのエラーをどのように直せばよいか最初はわからないものです。その時は、Google
の検索窓に「(出てきたエラーメッセージ)+ 解決」や「(出てきたエラーメッセージ)+error」と入力して検索をかけてみましょう。
そうすると、teratail(テラテイル)やQiita(キータ)での質問と回答のやり取りや、ブログ記事、公式リファレンスなどのエラーを解決する方法がたくさん表示されると思います。自分が困ったことは、過去の誰かが困ったこと、間違いなく解決方法が出てくるでしょう。
エンジニアはコードを打つ時間よりも、検索をしたり考えたりする時間の方が長いと言われるくらい、ググったりエラーの場所の特定などに時間をかけています。
初心者の人ならなおさら、ググってエラーの解決方法を学ぶことに時間を使う必要があるかもしれませんね。
エラーの場所を特定する
エラーが起こっている場所を特定することで解決することができることが多いです。言語によって使うツールが変わるのですが、統合開発環境(IDE)を利用して開発しているならデバッグツールが付属していることが多いです。
JavaScriptであれば、Google Chromeの「ディベロッパーツール」を利用して、console.logを入れまくって、変数がどのようになっているかや、戻り値がどのように返ってきているかなどを確認する方法などがあります。
また、デバッグツールによっては、ブレークポイントを指定しておいて、そこでプログラムの実行を一時停止して、その時点の変数の状態などを確認する機能がついているものもあります。
このようにデバッグツールなどを利用して、エラーが起こっている場所やエラーの原因を探ることで、エラーの解決にグッと近づくことができます。
デバッグツールを使いこなせるようになったら、もう初心者から脱却したと言っても過言じゃないですね。ぜひ使いこなせるようになりましょう!
エラーの部分を細かく分けて確認する
エラーの場所が特定できたら、1行に含まれる処理を細かく分けてみて、どの処理でエラーが起きているかを確認することが大切です。
エラーは複雑な状態であればあるほど、特定が難しくなります。イヤホンのコード(最近はワイヤレスが増えましたが)が絡まった状態だと使えないのと同じく、一つひとつを分けて考えることで理解がしやすくなります。
できるだけ細かく分けて、シンプルにすることがエラー解決の近道ですね!
それでも解決できなければ誰かに聞く
自力でエラーを直せるに越したことはないですが、どうしてもエラーを解消できない場合は、①無料の質問掲示板できく、②スクールに登録して質問する、③メンターを探してその人に質問する、などの方法を選んで質問をしていくことになります。
最初からエラーを解決しようとしないで質問するのは、自分の実力を高めていくという意味でもやめた方がいいですが、エラーが解消できなくてイヤになって辞めちゃうというのだけは避けたいですね。
最後は以下のような方法で人に聞くということも選択肢にいれておきましょう。
無料の質問掲示板で聞く
無料の質問掲示板としては、teratail(テラテイル)、Qiita(キータ)、Stack Overflow(スタック・オーバーフロー)があります。
それぞれ登録をしてプログラミングに関する質問をすることができます。プログラミング版Yahoo知恵袋、と言ったところでしょうか。
まずはテラテイルやキータで聞いてみて、もしそれでも回答が得られなければスタックオーバーフローで質問する、という流れがよいです。
ただし、回答者もお金をもらってやっているわけではないので、必ずしも質問の答えが返ってくるわけではなさそうなので、その部分は理解しておきましょう。
また、よい回答を得るためには、質問の仕方が大切です。起こったエラーを簡単にまとめ、エラーメッセージがどんな内容で出ているのかを載せましょう。
加えて、問題が起こっている周辺のコードをスクリーンショットなどをして載せたりと、回答者が理解しやすいようにする工夫をすることが必要です。
下にリンクを貼っておきますので、そこから質問をしてみてください。
オンラインスクールに登録して質問する
「オンラインスクールって何十万円も受講料かかるんじゃないの?」と思いますよね?
でも、SAMURAI TERAKOYA(侍テラコヤ)なら、月額2980円~(税込み3278円)でプロのエンジニアに質問し放題になります。入学金もかかりません。
平均解答時間も営業時間内であれば30分と短く、さすが回答者に報酬を支払っているだけあって回答の質も高いです。
ただ、デメリットとしては、質問以外にも学習教材が用意されているのですが、それを自分から学習を進められる人でないと価格に見合った効果が得られないというところと、マンツーマン指導の回数が限られているというところ。
ですが、行き詰ったときに最初に検討するべきサービスの一つですね。
スキルマーケットでメンターを見つける
ココナラやストアカなどのサイトでは、プログラミングを教えてくれる人がたくさん出品しています。
価格もいろいろで、自分の興味やプログラミング言語に合った講師を探すことができるというのがメリットです。
逆に言うと、自分で自分に合った講師を探さなくてはいけないのが少し面倒でデメリットです。
ですが、困ったときにだけでもたくさん質問できる環境を作れるというのはココナラやストアカを利用するメリットですね。
以下にリンクを貼っておきますので、無料登録だけでもしておくと、困ったときに役立つのではないかと思います。
身近にそのプログラミング言語をよく知っている人がいなければ、これらの方法を取ることになると思います。
まとめ
エラーを解決できるようになるためには、以下の手順を踏みましょう。
- エラーメッセージの意味を日本語訳などをしてでもいいから、理解する
- 「(エラーメッセージ)+解決」や「(エラーメッセージ)+error」などで検索をかけて、エラーの解消方法を見つける
- エラーの場所をデバッグツールなどを利用して特定する
- エラーを細かく分けて、どの処理でエラーが起こっているか分析する
- それでも分からなければ、人に聞く環境を用意して人に聞く
以下は壁の乗り越え方のまとめ記事です。
コメント