30代未経験のエンジニア転職

【初心者必見】エンジニア必須の素養「自走力」が身につくエラー解決プロセス!

プログラミングの勉強を始めたんですが、エラーにハマって進めなくなってしまいました…どうしたらいいでしょう?

ソウ

勉強を始めたばかりの頃って、「どうやってエラーを解決したらいいのか」という方法が分からないので焦りますよね。

今回は僕が実際に使っているエラー解決のプロセスをお伝えしますね。

今回の想定読者

プログラミング初学者でエラー解決の方法が確立できていない人

この記事から学べること

「自走力」が身につくエラー解決の方法

大前提:プログラミングはエラーが出るもの

プログラミングを始めたばかりの時期ってエラーが表示されると、焦るし、「自分はプログラミングに向いてないんじゃ…」って思ったりしますよね。

でも、それは大きな間違いです。

ベテランエンジニアでも普通にエラーは起こします

彼らには長年のノウハウが蓄積されており、エラー解決までのスピードが初心者と比べて圧倒的に早く、エラーを起こしていると思われていないに過ぎません。

ですので、エラーがなかなか解決出来なくても、焦ったり萎えたりする必要はありません。

また、エラーは解決すればその分だけ、解決するスピードが上がっていきます。

更に、エラーは解決する過程を通じて、その技術のことを深く知るための貴重な勉強材料にもなります。

ですので、

「エラーはエンジニアの筋肉痛」

こんなかんじで前向きに捉えて、積極的に対処していきましょう。

手順1:エラー文を読んで意味を理解する

エラーを解決するためのファーストステップは、

エラーメッセージを読んでエラーの意味を理解すること

です。

Ruby(Ruby on Rails)やPHP(Laravel)であれば、エラーメッセージは画面に表示されているはずです。

もし画面に表示されていなければ、ログやコンソールなどを確認して、必ずエラーメッセージを確認しましょう。

「エラーメッセージを読む」って、すごく当たり前のことですが、 英語で表示されるエラー文を読むことに対して抵抗感があるのか、意外と出来ていない人が多い印象を受けます。

実際、teratailなどの質問掲示板を見ていると、

“Routing Error”ってエラーが出てますが、どうしたらいいですか?

などといった質問をときどき見かけます。

こういった少し調べれば分かる質問をエンジニアの方にすると、かなり素っ気無い強めの回答を受ける場合があるので、注意してください。

僕も日本人なので、英語に抵抗感を感じる気持ちは分かりますが、

  • エラーの解決
  • 最新ドキュメントの参照

など、 エンジニアを目指す以上は英語から避けられません。

諦めて英語を読みましょう。

それに今はGoogle翻訳があり、 エラーメッセージをそのままコピペしたら、一秒で日本語訳が返ってきます。

もし英語を読むのが苦手な方はGoogle翻訳を使って構いません。

エラーメッセージに何が書かれているのか必ず理解するようにしましょう。

手順2:エラー文をコピペしてググる

エラーメッセージを読んだら、実際にエラーを解決していきます。

とは言っても最初にやることは単純で、

  • 「Rails (エラー名) 原因」
  • 「Rails (エラー名) 解決」

などのように、エラー文をコピペしてGoogleで検索してください。

簡単なエラーなら数分で答えが見つかるかと思います。

当然ですが、検索の際に、自分のアプリ特有のキーワードを入れたままだと、適切な回答が返ってこない場合があるので注意してください。

手順3:エラーの原因について仮説を立てて再びググる

エラー文をコピペしただけでエラーが解決すればいいのですが、答えがそのまま見つかるということは稀です。

そのため、

  1. エラー文の背景にある根本的な原因を自分で考える
  2. 考えた原因を解決する方法を調べる
  3. 実際にエラーが解決するか検証する

というプロセスを辿っていく必要があります。

この中でも①を考える際のポイントについて補足します。

ポイント1:プログラムの動きをイメージしつつ原因を考える

アプリがどういう流れで動いているのかイメージしながらエラーの原因を考えると、スムーズに原因に辿り着くことができます。

例えば、入力フォームからデータを入力して、データベースへ保存するというプログラムであれば、

  1. 入力フォームへデータを入力する
  2. エラーがないかチェックが入る
  3. データベースに登録される
  4. 画面が切り替わる

ザっとこんなイメージが出来れば問題ありません。

ただ、勉強を始めたばかりの頃は、理解できていない部分も多いかと思います。

理解できていない部分はイメージで補っても構いません。

プログラムの動きを念頭に置きつつエラーの原因を考えてみてください。

ポイント2:コードを極力シンプルにして原因を考える

コードを極力シンプルな状態に戻して、少しづつコードを継ぎ足す

こういった手法もエラーの原因を特定する上では有効な方法です。

例えば、既に完成していた入力フォームに新しい要素を3つ加えた結果としてエラーが生じたのであれば、

  1. 新しい要素を全て削除 → エラーが出るか検証
  2. 新しい要素を1つ追加 → エラーが出るか検証
  3. 新しい要素を2つ追加 → エラーが出るか検証
  4. 新しい要素を全て追加 → エラーが出るか検

こういったかんじですね。

  1. まずは極力コードをシンプルにする
  2. そこに少しづつコードを加える

こういった手法で調査を進めると、早くエラー原因を見つけることができます。

エラーが出るたびにコードをシンプルにするって大変そう…思いついたエラーの原因を順番に試しちゃダメなの?

なかなかエラーが解決できないと、思いついた原因を片っ端から試したくなる気持ちが湧いてくるかもしれません。

ですが、そういった方法をとると、

  • どういった検証をしたか途中で分からなくなる
  • 作業が雑になるので、そもそも検証のために書いたコード自体が違っている

こういったことになりがちです。

そのため、面倒に感じるかと思いますが、今回説明している、コードをシンプルに戻して少しづつ付け足す方法が結局は一番の近道になります。

手順4:エラーを一日寝かせる

考えられる仮説は一通り検証したけど、エラーが解消されないならば、エラーから1日離れてみてください。

目の前で起きているエラーを放置して、その日の学習を終えることは勇気がいることです。

ですが、時間を空けることで、

  • 寝てる間に頭の中が整理される
  • プログラミングからいったん距離を置くことで冷静になれる
  • 考える体力が回復する

こういった理由から、エラーの解決策を思いつく可能性が上がります。

僕が所属していたオンラインサロンで、現役エンジニアの方が「エラーにハマった際の対応法」を意見交換していたのですが、その際にも話題に上がっていた手法ですので、割と一般的な方法なようです。

何時間かけても解決の糸口すら見えなかったエラーが、一晩明けたら簡単に解決できたということは僕の経験上、何度もありました

一度騙されたと思って試してみてください。

手順5:現役のエンジニアに質問する

手順①~④まで行ってもエラーを解決できないならば、誰かに質問しましょう。

質問をするのであれば、

あたりが定番といえます。

その際に大事にして欲しいのは、

解答者の立場に立って質問をする

ということです。

具体的な注意点としては次のような点があげられます。

それぞれについて詳しく知りたい方は次のリンクを参照にしてください。

とても丁寧に説明してくれているので、非常に参考になりますよ。

いずれにせよ大事なことは、

  • 画面の向こう側には人間がいることを忘れない
  • 「どうしたら相手に不快な思いをさせないで済むか」と考えながら質問すること

こういった点かと思います。

手順6:エラー解決を諦める

手順通りに進めたけれどエラーを解決出来ません…

もしそうであれば最後の手段です。

エラーの解決を諦めることを検討しましょう。

もし、どうしても先に進めないならば、次の点を検討してみてください。

  • 今、実装を試みている機能は、他の方法で要件を満たすことは出来ないか?
  • その機能は絶対に実装しなければいけない機能か? 

例えば、エンジニア転職を目的にポートフォリオを制作しているのであれば、最も重要なことは、

「動くものを作り上げること」

になるはずです。

エラー解決にハマり続けて、数日間も作業が止まり続けるのであれば本末転倒です。

実装が出来ていない箇所がアプリのメインでなければ、エラー解決を諦めるこも検討してみてください。

ちなみに、僕もポートフォリオを作った際は、時間切れでいくつかの機能は実装することを途中で断念しましたが、それで面接で困ったことはありませんでしたし、実際にWeb系企業へ転職することができました。

まとめ

今回解説した内容を簡単にまとめると次のとおりです。

以上の通りです。

エラーを解決する時間は「エンジニアにとっての筋肉痛」です。

エラーにハマっている間は大変かと思いますが、大きく成長するためには必要な苦しみです。

ぜひ、臆することなく積極的にエラーに立ち向かい、「自走力のあるエンジニア」を目指して頑張ってみてください。