プログラミングがしんどい人必見!なぜあなたのエラーは解決できないのか。

こんにちは。

エンジニアのシュンです。

 

プログラミングを勉強していると、どうしてもエラーが出まくってしんどくなってしまう時期があります。

自分でエラーを解決しようとしても、解決できず人に聞いてやっと解決でき、「なんで自分では解決できなかったのだろう」と自己嫌悪に走ってしまうなんてこともあります。

 

初心者の方だけではなく、自称プログラミング中級者の僕でも、自分で解決できないエラーというのは出てきます。

 

この自分で解決できないエラーと言うのは、プログラミング初心者の挫折の原因のトップ1でもあり、多くのプログラミング学習者を苦しめている要因にもなっています。

そこで今回は「なぜ自分で解決できないエラーが出てくるのか」と言うことに焦点を当てて、話したいと思います。

  • 「エラー解決が苦しくてプログラミングが辛い」
  • 「なぜ自分でエラー解決ができないのかわからない」

そんなあなたに必見の記事です。

 

エラー解決の手順

まず、エンジニアがどのようにしてエラーを解決していくのか、その手順について見ていきたいと思います。

プログラミングにおけるエラーの内容は千差万別ですが、そのエラーの解決手順はほとんど一緒で、2つのステップに分かれます。

その2つのステップとは

  1. 仮説立て
  2. 仮説検証

の2つです。

仮説立て

仮説立ては、そのエラーは何が間違って出ているエラーなのか、仮説を立てることを言います。

例えば「ユーザーのログインが正常にできない」と言うエラーが出ていたとします。

そのような場合、以下のような仮説が挙げられます。

  • セッションをうまく保存できていない
  • ログインのロジックがうまく言っていない
  • サーバー設定で、ロジックがうまく反映されていない
  • ブラウザの設定がおかしい
  • ログインのパスを勘違いしていた
  • パスワードを勘違いしていた

例のため、「こんなんありえへんやろ」と言う仮説も上がっているかもしれませんが気にしないでいただけると幸いです。

仮説検証

仮説立てが終わると、仮説検証に入ります。

仮説検証とは読んでそのまま、立てた仮説に対して、その仮説が、正しいかどうかを確かめる作業のことです。

仮説検証では、立てた仮説を検証可能な、todoレベルまで落とし込む必要があります。

上の仮説立てのすべての仮説を、検証レベルに落とし込むと膨大になっていくので、1例だけ挙げさせていただきます。

  • ログインのロジックがうまくいっていない
    • ログイン作成時違うユーザーの情報をとってしまっている
    • セッションを作成できない方に条件分岐してしまっている
    • セッションを作成するメソッドでセッション作成を行えていない
  • サーバー設定でロジックが反映されていない
    • サーバーを再起動しないと、ロジックが反映されない設定になっていた

 

このように、仮説をブレークダウンして、検証可能なレベルに落とし込んでいきます。

解決できるエラー、解決できないエラー

エラー解決が

  • 仮説立て
  • 仮説検証

の2STEPでできていると言うことは、上の図のように。「仮説立て」「仮説検証」の2つが正しく行えていれば、エラーは解決できると言うことになります。

逆に正しく行えていない場合、エラーは解決できないと言うことになります。

つまりエラーが解決できない原因は

  • 仮説立てが間違っている
  • 仮説検証が間違っている

と言う2つの原因に分けることができます。

 

エラーの種類は様々ですが、本質はこの2つで、このどちらかができていないのが、あなたがエラー解決ができない原因なのです。

仮説立てが間違っている

仮説立てが間違っているケースは2つのパターンに分けることができます。

1つは、仮説を思いつく知識はあるが、ただ単に思いついていない場合

もう1つは、仮説を思いつく知識がなく、その仮説にたどり着くこと自体が不可能な場合。

 

前者はただ単に思いつかないだけなので、ある程度短期間で、エラーの沼を抜け出すことができます。

しかし、問題は仮説を思いつく知識がない場合です。

例えば、初めてAWSを触った時にエラーが出ると、機能が多すぎて、どこに原因があるのか仮説を立てられないなんてことがあります。

そんな時は、短期的にエラーを解決するのではなく、まずAWSの知識を調べて、そこからどこに問題があるかの仮説立て、仮説検証と言う中長期のステップを踏む必要があります。

そこを勘違いしてその場しのぎで解決しようとすると、本質の理解をすることができず、結果今後も、エラーのフィックスに時間を取られることになります。

 

あなたは「Syntax Error」というエラーによく出くわすと思います。

Syntax Errorは日本語に訳すと文法エラーという意味ですが、あなたはこのエラーをある程度短期間で解決することができると思います。

しかしはじめてSyntax Errorが出た時は、結構長い時間苦戦をしたのではないでしょうか?

これは、あなたがSyntax Errorに対して適切な仮説を立てる知識がなかったからです。

それがどんどんコードを書くようになり、プログラミングに対する文法の正しい理解が深まり、Syntax Errorに対して正しい仮説を立てれるようになり、Syntax Errorを簡単に解決できるようになったのです。

 

正しい仮説を立てるためには、プログラミングに対する正しい理解が必要です。

時にはエラーに対して遠回りして、インプットをする必要もあるということを覚えておきましょう。

仮説検証が間違っている

適切な仮説を立てれているにもかかわらず、仮説検証が間違っている場合も2つのパターンが考えられます。

「適切な仮説検証方法を選択できておらず、仮説検証に対して抜けがある」

「仮説検証の方法を知らず、適切な仮説検証ができていない」

です。

 

適切な仮説検証を選択できておらず、仮説検証に対して抜けがあるケースは、仮説検証の方法の選択ミスのため、比較的簡単にエラーの沼を抜け出すことができます。

 

しかし、適切な仮説検証の方法を知らない場合は、これも少し中期的な解決を目指す必要があります。

例えばRailsにはbinding.pryという超便利なデバック用のコードがあります。

しかしbinding.pryを知らなかった昔の僕はエラーに対して、仮説は合っていたにもかかわらず、適切な仮説検証をできず泥沼にはまっていってしまいました。

その時は、当時プログラミングを教えてくれていた人に、binding.pryの存在を聞き、binding.pryを知ってからは超速で、エラーを解決できました。

このように適切な仮説検証方法を知らないと、解決できるエラーも解決できません。

この仮説検証方法というのは、binding.pryという具体的な方法の場合もあれば、もう少し上のレイヤーの「必要十分条件」のような思考方法の場合もあります。

 

仮説立ての部分と同じように、仮説検証でも「知っておかなくてはいかない知識」が存在します。

もしあなたが、「仮説検証の方法なんかナンセンスだな」と思うのであれば、一度調べてみたり、人に聞くことをおススめします。

まとめ

今回は、プログラミングにおけるエラー解決について話していきました。

プログラミングエラーが出た時に

「自分はプログラミングの才能がないんだ」

と思うかもしれませんが、そんなことはありません。

プログラミングのエラーは避けられないもので、必ず起こるものです。

 

大事なのは、そのエラーの「仮説立て」「仮説検証」をいかに高速に、適切に行えるかです。

これらを高速に適切に行うためには、結局、いかにエラーを解決してきたかという経験がものを言います。

 

今はエラーの解決に時間がかかってるかもしれませんが、いずれ必ずエラーを高速で解決できるようになります。

エラーはプログラミングの上達に必要な壁です。

解決する時は「仮説立てが間違っているのか」「仮説検証が間違っているのか」どちらか考えながら行うと上達が早まるでしょう。

4980円のプログラミングスクール

プログラミングスクールに通いたいけど

  • 「値段が高すぎる」
  • 「実力がつくか不安」
  • 「しっかりした先生に教えてもらえるか不安」

と思ったことはありませんか?

 

でもそんなあなたの悩みは一気に解決するんです。

「月額4980円で現役フリーランスエンジニアに質問し放題なプログラミングスクール」

を作りました。

 

人数に限りがありますのでお申し込みはお早めに。