【初心者向け】プログラミングでエラー解決するまでの流れとおすすめの質問サイトを紹介します。

2018年7月28日エンジニア

文系SIer正社員のたてひとです。

今回はプログラミングにおける「エラー対処」の方法についてです。どんなに優秀なプログラマーでも、一度もエラーを出さずに済むことはありません。素早く的確にエラー対処できるのが優秀なプログラマーです。

僕なんかはエラーが起きるとパニックになって冷静に対処できないことがあります。パニックというと大げさかもしれませんが、焦りと解決できないイライラで情緒不安定になったりします(汗)プログラミング経験者は、この気持ちを分かってくれるはず…

今回は自分への自戒も込めて、エラー発生した際にどのような手順で対処するとよいのか、まとめてみたいと思います。

超基本は「ググる」こと

とにかくググる!よっぽど特殊なエラーで無ければ、同じように困っている人が世の中に必ずいます。エラーに関するキーワードでググると、解決方法を載せてくれているサイトが見つかります。ググれ!ググりまくれ!

ドンピシャの解決方法が見つかった時の安堵感は半端なかったりします。とはいえ、手当り次第にググっても効率が悪いので、ポイントをまとめてみます。

エラー解決のポイント

ログのエラーメッセージを「理解する」

エラーとなった場合は何かしらのログが出力されます。読むだけでなく、「理解」することが大事だと思います。僕もそうですが、初心者ほどログをきちんと読まずに悩み続けていることがあります。また、読んだ気になっているだけで理解できていないこともあります。

ログは英語で出力されることがほとんどで、英語が苦手だと読むのが辛いですが頑張って読みましょう。ログの読み方が分からなければGoogle先生を頼ればOKです。ログをきちんと理解できれば、それだけで原因が判明することも多いです。

Rubyのエラーメッセージ

原因を洗い出す

ログを読んだだけでは原因を特定できなかった場合は、ログを元に考えられる原因を洗い出します。簡単に言ってますがこれが一番難しかったりします。僕の周りにいる優秀なエンジニアは、原因を洗い出して切り分するのが上手いんですよねー。

たとえば構文エラーが発生した場合「変数名やメソッド名のタイプミス(いわゆるタイポ)」、閉じカッコが無いなどの「単純な構文ミス」、「構文の使い方が間違っている」などが原因として考えられます。

冷静に考えれば大まかに原因の切り分けができるはずなのに、エラーで頭がテンパってると切り分けをする作業をすっ飛ばしてしまったりします。当てずっぽうの対処で偶然解決できてしまえばいいんですが、原因はこれだ!と確信が持てない限りは切り分けをした方がいいと思います。

頭の中だけで切り分けしようとすると混乱してしまうので、慣れないうちは原因を紙などに書きだしておくと良いです。

切り分けた原因を1つずつ潰していく

考えうる原因を洗い出せたら1つずつ確認していきます。洗い出した原因が複数ある場合は、その中で、最も原因に近そうなものから対処していきます。僕はタイポがすごく多いので、一番に疑うことが多いです…(笑)

たとえばですが構文エラーの場合、まず単純なタイプミスで無いことを確認し、次に構文が正しく使えているか確認します。構文の使い方はググって調べましょう。先日は「:name」としなければいけないところを「name」としていたために構文エラーになってました。

それでもわからなければ質問サイトで聞いてみる

ここまでやっても解決しなければ、今の自身のスキルでは解決できないエラーということなんで、人に聞いてしまいましょう。

teratail【テラテイル】スタックオーバーフローといったエンジニア向けの質問サービスがあります。過去に同様の質問があるか確認し、無ければ質問してみましょう。

質問する際は「わかりません教えてください」だけでなく、ログの内容、自力で調べた結果、利用環境など、情報を詳細に記載するようにしましょう。それが最低限のマナーですし、詳細な情報を伝えることで有益な回答が得られる可能性が高まります。あと、お礼も忘れずに!

teratail【テラテイル】の画面。1時間以内に回答をいただけることも多い。回答率90%超!

英語に慣れよう

日本語で書くプログラミング言語はほとんどありません。プログラミングをすると英語に触れる機会が増えるため、英語に慣れておくことも大事だと思います。

また【ログのエラーメッセージを「理解する」】の項でも述べたとおり、ログは英語で出力されることがほとんどです。かつエラー解決につながるヒントは海外のサイトにあることも多いです。

英語をスラスラ読めるのが理想ではありますが、そこまでできなくても英語に対する耐性をつけておくといいかと思います。英語に慣れていないとログや海外サイトを読む時に拒否反応がでます。すぐそこに解決方法が載っているかもしれないのに、もったいないですよね。

英語は苦手だからと言って諦めずに頑張りましょう。ちなみに僕はポケモンで英語に慣れました。みんなポケモンやろうぜ!

まとめ

  • ログを理解する
  • 原因を切り分けて一つずつ確認する
  • それでもわからなければ聞く

手当り次第にエラーの対処をしようとして解決できないと次第に焦ってきてドツボにはまることが多いです。ひどい時は「がっ…なぜ解決できないんだ…無能すぎる…!」なんて自暴自棄に陥ったりします。(笑)

エラー対処のポイントを押さえて落ち着いて対処するのが早期解決につながります。「落ち着いて対処すること」、これが最も大事なことな気がします。

解決できずにムキになってつい何時間も悩み続けてしまうこともあるんですが、これは脳が思考停止に陥ってるのでやめましょう。そういうときは時間を空けて、プリンでも食ったあとに取り組めばすぐに解決しちゃったりします。

Posted by たてひと