プログラミングを勉強し始めた初心者の方はつまづくことが多いと思います。
私も最初はエラーが出るたびにいちいちビビッて、意味が分からないと半ベソ状態でした。
プログラミングの独学をしていれば、エラーの調査や解決にかける時間の比率は70%ほどだと思います。
エラーに耐えられず挫折する方も多いと聞きます。
プログラミングの独学全般はプログラミング初心者の独学方法 文系卒の経験談で紹介しました。
今回は私がどうやってエラーを乗り越えて、独学をしてきたか紹介したいと思います。
エラーが出たときの調べ方
まずエラーが出たらエラー箇所をデバッグして特定すると思います。
そしてエラーメッセージやエラーコードを検索して調べるはずです。
このとき、適当にウェブを検索しただけでは意図したエラーの解決策は出てきません。
①変数を確認
まずは、変数に何が入っているか調べましょう。
例えば、以下のコードはエラーが出ます。
サンプルはこちらからダウンロードしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/// <summary> /// ボタンクリック時の処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { string str; //string変数 int number; //int変数 //空文字を代入 str = ""; //strを数値型に変換 number = Convert.ToInt16(str); MessageBox.Show(number.ToString()); } |
15行目で以下のエラーが出ますが、正直これだけでは分からないこともあります。
ヒントにもDatetimeの話や引数が~と出ているので原因が100%特定できることはないでしょう。
なので、変数の中身を確認します。
strの変数を右クリックして、ウォッチ式の追加をクリックすると変数の中身が見えます。
やっている処理は「文字型を数値に変換する」処理です。
ですが、変換する文字型の変数strは空文字で何も入っていません。
ここで何となく「空文字は数値にできないのでは?」予測ができるのではないかと思います。
こんな風にして原因の当たりを付けることが重要です。
②当たりを付けてウェブ検索
先に辺りを付けておくと検索をしたのと、単にエラーメッセージを検索するだけでは原因にたどり着ける速さが違います。
例えば、「System.FormatException」と調べるのと、
「System.FormatException 空文字」と調べるのでは出てくる結果が異なってきます。
今回のエラーは初歩的なのであまりたどり着ける検索結果には差はありません。
ただ、当たりを付けて検索している分、出てくる検索結果は何となく想像しながら調べることができるのです。
このように先に今やろうとしている処理とエラーになっているデータの中身を元に原因の仮説を立てて検証することはとても近道です。
また、これを繰り返すことで仮設や予想をすることに慣れるので結果的に色んなエラーの解決が早くなります。
調べてもダメな時は
残念ながら、エラーの奥が根深いかかったり、いくつものエラーが複合的に重なって起こっているエラーもあります。
そんな場合は、簡単にエラーの原因を見つけて、解決することはすぐにはできないと思います。
私はこんな風に乗り越えていました。
時間を置く
現実逃避にも見えるのですが、時間を置くことは意外と重要です。
私もそうですが、気づくと1つのエラーに対して1時間も2時間も調べていることがあります。
そういった場合、1点に集中し過ぎて他の可能性を確認できていない状態です。
なので、1時間でも1週間でもいいので時間をおいてみて下さい。
そうすると、少し硬くなっていた頭が整理されるので「これが原因かな?」と別のところを疑って調べることもできます。
実際に仕事の時でさえ、私は別の仕事をしたりその日は切り上げて翌日に考えたりしていました。
そして意外と数分でエラー原因を突き止めたりできていました。
質問サイト
周りに気軽に聞ける人がいればよいのですが、初心者で独学を始めている場合は周りに聞ける人はいないのではないでしょうか。
私も学生時代や新人の時に家で独学をしていると、聞ける人が全くいませんでした。
そこでterateilに登録して質問を出していました。
また、Yahoo知恵袋でも回答してもらえることも多いですが、今はエンジニア専用のサイトでエラー解決が主流に感じます。
徐々にエラーの意味が分かってくる
私は入社前から入社後の2年目ごろまでプログラミングの独学をしていました。
期間で言うと2年半程度ということになります。
一人でも独学するうちに、エラーメッセージと書いているコードを見ただけで大体どんなエラーが起こっているかは想像がつくようになりました。
最初は全く意味が分かりませんでしたが、経験を積み重ねていくことで少しずつエラーの意味が分かるようになったのです。
時間は最低でも数カ月はかかるとは思いますが、確実に早くエラー解決ができるようになります。
まとめ
初心者からプログラミングの独学をすると、エラーでつまづくことが何度もあります。
私自身、今でも1日悩んで分からないことだってあります。
また、独学だと孤独にエラーと向き合うため諦めたくなることも多いでしょう。
ただ、時間をかけても少しずつ、一つずつ解決していけば、大体のエラーは数分調べれば原因が分かるようになります。
突き止めた原因を元にコードを書き直せば上手く動くようになります。
エラーとの闘いで経験を積んでステップアップしていってください。