入力エラー、文法エラー、コンパイルエラー、実行時エラー、ライブラリのエラー…
プログラミング学習を進めていく上で避けて通れないのが、エラーです。
プログラミングを独学で学ぼうとした場合、多くの初心者が開発中に発生するエラーを解決できずに、プログラミングをやめてしまうようです。
本記事では、プログラミングエラーに対するマインドセット、エラーを解決する汎用的で具体的な方法について解説します。
Contents
エラーに対する認識を修正しよう
エラーは敵ではない
プログラミング初心者の中には、「エラーを出すことはいけないことだ」と思っている人が少なからずいます。
確かに、外部に公開しているWebサービスでエラーを出してサービスを止めるような自体になってしまってはユーザーに迷惑をかけてしまうかもしれません。
しかし、こと開発環境においては、エラーを出すこと自体は何の問題もありません。
現場で働いているプロのエンジニアも、毎日エラーを出しています。
開発環境で発生したエラーはむしろ、「自分の書いたコードの何がいけないのか」を知る手がかりとなります。そう考えると、エラーが出てくれることはむしろありがたいことですよね。
最もよくないのは、「エラーを無視する」悪習慣を身に着けてしまうことです。そこで自分自身のスキルの成長が止まってしまいますし、開発するソフトウェアの品質にも悪影響を与えてしまいます。
エラーは敵ではなく友達です。
エラーが何を言っているのかを理解しよう
プログラミング初心者の方で「エラーメッセージを読まない」という方がかなり多いです。
これは、プログラミングスキルを身に着けたいなら今すぐ捨てるべき習慣です。
エラーメッセージは、あなたのコードに対する最速の、そして正確なフィードバックです。
ほとんどのプログラミング言語ではエラーメッセージは英語で書かれているので、最初は抵抗を感じる人もいるかもしれません。
しかし、エラーメッセージの英語はある程度パターン化されているので、慣れればすぐに読むのが楽になります。
最初のうちは大変かもしれませんが、頑張って慣れていくことが大事です。
エラーについて調べる方法
Googleで解決方法を検索する
エラーについて調べる最も簡単な方法があります。
エラーメッセージをそのままGoogleの検索欄に入れて検索しましょう。
このように、同じ問題で躓いている人の質問サイトへのQ&Aや、Github issueを検索にヒットさせることができます。
技術書・テキストを何度も読み返す
技術書は何回も繰り返し読みましょう。
内容の理解が最終目的にあることは間違いないですが、ある程度本の内容が頭に入っていないとその段階にはたどり着けません。
ほとんどの人は、一回読んだだけで技術書の内容を頭にいれることはできません。
プログラミングだけでなくどの分野にも言えることですが、「学習は質より量」を意識したほうが安定して高い成果を出せます。
最低3回は目を通すようにしたいものですね。
プログラミングスクールに通っている場合は、メンターに相談
プログラミングスクールでは、オンライン形式、教室形式問わず、メンターがつくスクールがほとんどかと思います。
これがプログラミングスクール最大のメリットです。
エンジニアとしての経験が豊富な講師・メンターに教えてもらうことができるので、わからないことがあっても助けてもらえます。
「自分で何が問題なのかがわかっていない」場合でも、メンターとの対話を通して解決法を探ることができます。
積極的にメンターを活用していきましょう。
プログラミングQ&Aサイトで質問をする
teratail
teratailは日本発のプログラミングの質問ができるQ&Aサービスです。
回答率が90%以上と非常に高く、質問して数分以内に返信が返ってくることもありますので初心者が使うQ&Aサービスとしては非常におすすめです。
また、回答するにつれてバッジがもらえる仕組みになっているので、もし自分が回答できそうな質問があったら回答してみましょう。
Stackoverflow
Stackoverflowは世界最大のプログラミングQ&Aサイトであり、日々ものすごい量の質問・回答が発生しています。
英語が読めることが前提になりますが、こちらで質問してみるのも良いのではないでしょうか。
Github issue
こちらも英語が求められますが、Github issueも質問場所として有効です。
そのライブラリや言語を作った人から直接回答を貰いやすい、というメリットがあります。
また、他人のissueを読むことで、「どんな質問であれば回答しやすいか」がわかります。
例えば上の例ですと、「Steps to reproduce(どのようにして再現するか)」、「Expected behavior(期待する操作)」、「Actual behavior(実際に動作した結果)」に各情報を切り分けて説明しています。
非常に参考になる「質問力」かと思います。
5ch プログラム技術板
日本最大の巨大掲示板群5ちゃんねるにも、プログラムに関する掲示板は存在します。
プログラム技術 – 5ちゃんねる掲示板 がそれにあたります。
ローカルルールやマルチポストに対する規制が非常に大きいので、「空気を読んだ」上で使用しましょう。
質問力を鍛えよう
Q&Aサイトで質問をする際には、質問力が非常に重要になってきます。
聞き手が「自分は一体何に答えればいいんだ?」という点を明確にする質問をすることが大事です。
問題を整理しているうちに自分の中で考え方の筋道が立ってきて自己解決できた、ということもあります。
質問力は、プロのエンジニアになっても重宝する「スキル」なので、最初のうちから地道に鍛えていくことをおすすめします。
- まずエラーを読む
- Googleでエラーの内容で調べる
- TeratailなどのプログラミングQAサイトを活用する