見出し画像

【プログラミング】エラー解決までに意識している4つの手順

こんにちは。TAM UX/UIチームエンジニアの加納です。

今年の4月に未経験でエンジニアとして入社して早6ヶ月が経ちました。

入社し始めの頃は開発環境を構築する段階で数々のエラーに遭遇し、「これ一生コード書けないんじゃないか?」と、怒涛のエラー地獄と格闘の日々でした。

当初はエラーが発生するたびに、
自分の当てにならない感覚をもとに仮説を立てる→試してみる→全然解けずにテンパってくる→手当たり次第思いつく方法を試してみる→結局分からずに先輩に泣きつく
という流れが多く、一つのエラーを解決するのに半日費やすということも多々ありました。

今でも毎日のようにエラーが発生しますが、入社当初に比べて一つのエラーに費やす時間はかなり減っています。

本記事では、6ヶ月前の自分に教えておきたいエラー解決までの大事な4つの手順について、(今の自分への戒めも込めて)まとめておきたいと思います。

①まずはエラーメッセージを読む!!

基本中の基本ですが初学者はここができていないことがほとんどです。
しかし最も重要なことでもあります。
偉そうに言っている私も、例に漏れず初めはサボりがちでした。
(今でもたまにサボってしまうので反省)

自分の当てにならない感覚を信じて原因を考えるより、ヒントがいっぱい詰まったエラーメッセージから原因を探る方がよっぽど近道です。
初学者は私のようにエラーメッセージが"長文の英語"で返ってくることにアレルギー反応が出て、読まずに嫌いになっている方も多いかと思います。

ただエラーメッセージを何回も見ていると似たような英単語だったり、エラーメッセージのどのあたりを読めば良いかがだいたい分かってくるので、今は下記を意識しながら落ち着いて読むことを心がけています。

※エラーメッセージはGoogle Cromeであればデベロッパーツールの「Console」から確認することができます。

▼Point
・エラーメッセージは上から読む
・"undefined"などの動詞が表示されている部分を探す
・ファイル名や行数が書かれている部分を探す

自分の経験上ですが、動詞やファイル名が含まれている一文が本質的なエラーの原因になっていることが多い印象です。

②ググる

次にエラーメッセージを見て、だいたいの目星がついたらググります

1)エラー メッセージの内容を一旦理解しようとする
ただすぐにググるのではなく、一旦エラーメッセージの内容を理解してからググるようにしています。
エラーメッセージの本質を抑えられれば、より正確なワードを選択して検索できますし、エラーメッセージから原因を探る訓練にもなります。

2)エラーメッセージをコピペして検索
エラーメッセージの内容がおおよそ理解できたら、まずは上記の動詞などが含まれているエラーの原因となってそうな一文をググります。
※この時にファイル名など自分だけに表示されているエラーメッセージは入れないように注意

解決法が書かれた記事が見つかればその記事を参考にコードの修正を行います。

3)足りない情報を検索
エラーメッセージのコピペだけで、ピンポイントの解決法が書かれた記事が見つからないことも多いです。
そこでエラー解決までに足りない情報を下記に注意して検索する必要があります。

▼Point
・抽象的なワードは避ける
「〇〇解決方法」など抽象度が高すぎると、絞り込みができません。

・不要なワードを除外して検索

検索数が多すぎるとある特定のワードを除外することもできます。
他にも色々な検索オプションがあるので、参考記事貼っておきます。
※参照先:https://liginc.co.jp/web/service/google/86222

・英語の文献からも探す

当たり前ですが、英語と日本語では圧倒的に情報量が違います。
日本語検索で出てこない場合は、Q&Aサイトでは世界最大規模の「stackoverflow」で検索するようにしています。
※参照先:https://stackoverflow.com/「全文英語とか無理、、」と思う方もいると思いますが、Google翻訳で英訳すれば問題なく読めます。(良い世の中になりました。。)

・新しい記事を読む

初学者だと見落としがちなのですが、記事の「掲載日」も必ずチェックする必要があります。
プログラミングは技術の進歩が早いので、古い記事の通りにしても思うように動作しなかったり、そのまま実行すると新たなエラーの原因にもなってしまう可能性があります。
あくまで目安ですが掲載から「1年以内」の記事をみるようにしています。

③冷静になる

色んな解決法を試しても全然エラーが解決しないと「どうしよう、、」と次第に焦りが募ってテンパってきます。。
そうするとかえって簡単なミスに気づかずに、余計に時間がかかってさらにテンパるという悪循環になります。

自分も初めの頃はエラーが出ただけで焦っていました。
そんな時は再度エラーメッセージを見返した上で、"これまで試した手順"と"これから確認する項目"を紙などに書き出すようにしています。

そのように頭の中の思考を可視化すると冷静になり、今まで気づかなかったことに気づくこともあります。

④それでも分からなければ誰かにきく

もう分からないものは分からないです。
これまでの手順を踏んでも分からない場合はさっさと先輩などに聞くようにしています。

ただ質問された人もエラーだけを伝えられても解決のしようがないので、伝える時は下記を意識するようにしています。

▼Point
・"どのような状態にしたいのか"と"エラーメッセージ"
"最終的にどのような状態にしたいのか"と"エラーメッセージ"を伝えることによって、だいたいの状況は把握してもらえるので、まずはここを伝えるようにしています。

・これまで試した手順
これまで試した手順を一通り伝えておくと、質問された人も一から原因を探る手間が省け、エラーの原因のおおよその予測をつけることができます。

・仮説を伝える

これまでの手順から出来るだけエラーの原因の仮説を立てて、それを伝えるようにしています。
見当違いなことを言って恥ずかしくなることもありますが、仮説を立てた上で質問することで、それが間違っていたとしても、自分の考えのどの部分が間違っていたのか気づくことができるので、意識するようにしています。

まとめ

自分も含め初学者の方は「こんな簡単なこと聞いても良いのかな、、」と誰かに質問できなかったり、質問してみたらエラーメッセージをきちんと見ていなくて注意されたりと日々焦りながらエラーと闘っているかと思います。

少しでも冷静に解決するために、"エラー解決手順を理解しておく"ことはもちろん、"日頃から相談できる人を作っておく"環境作りも大切だと感じています。
TAMではslackに"tech"というチャンネルがあり、ここに質問を投げれば凄腕エンジニアの先輩方が見て、すぐに質問を返してくれるという素晴らしい環境もあります。

あと誰にも質問できない状態の時は最終は"諦めること"も大切だと考えています。
急ぎでなければ一つのエラーに何時間もかけるよりは、一旦諦めて時間を置いてから再度挑戦してみると冷静になり、意外と簡単なミスに気づいたりしてすんなり解決することも多いです。

自分自身もこれまで記載した内容を改めて振り返り、これからも冷静にエラーと闘っていけるように心がけたいと思います。


画像1

加納 聖也 / Seiya Kanou
エンジニア
前職ではSIer系企業で5年間営業職を経験。
PC一台でモノづくりができるエンジニアと自由な社風に惹かれて
2020年4月よりTAMに参加。
スキルアップのため日々修行中。


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?