ゲッ……自分で書いたプログラムにエラーが発生しちゃった。
何がおかしいのか全然わかんない。どうやって解決すれば良いのかな……。
一人じゃエラーばっかりで、ちっとも勉強が先に進まないよ!
そんな悩みに答えます。
プログラミングを勉強している最中、一番困るのがエラーへの対処ですよね。
特に初心者の時ほどエラー解決までの壁が厚く、右往左往してしまいがちです。
そこで今回は、特に初心者の時に、『エラーに対してどう対処したら良いか』という視点で記事を書いていきます。
私はとある企業でシステム開発を10年以上続けている者です。学習を初めて最初の方にうんとつまずいた経験があるので、同じ思いを抱えている方に知識を共有します。
特に今回は、プログラミング環境を構築してみて、いざプログラムを書いてはみたけれど、なんかエラーが出て先に進めない。こんな方をターゲットにしていきます。
まだエラーの調査方法すら分からないという方は、ぜひ読んでみてください。
Contents
スポンサーリンク
プログラミング独学中に発生するエラーに我々はどう対処すれば良いか
初心者のうちは、ひとまずプログラミングが学習できる環境を作っていざコードを書いてみて、実行! ……としたけれど、なんか動かない。
いまいち理由も分からず、途方に暮れる事が多いのではないでしょうか。
まず一番最初に気を付けるべきことは『エラーメッセージが見えているかどうか』ということです。
メッセージが英語で読めなくても、表示されていればそれは『見えている』に入ります。この場合はエラーメッセージを解読するのが最初のステップになります。
でも、メッセージ自体が表示されていないとか、表示される場所が分からないという事もありますよね。
この場合にどう対処したら良いのかについて、まずは書いていきます。
1.エラーメッセージの場所を把握する
自分の書いたプログラムが動かなかった時、まずエラーの内容が分析できるようになっていなければ、話が始まりません。
ということで、まず最初に乗り越えるステップは、『エラーが表示される場所を知る』ということです。
もしかすると、「読んでもわからないものの場所を知ったって仕方ない」と思う事があるかもしれませんが、エラーの場所を把握することは重要です。
エラーにも様々な種類があるので、たとえばプログラミングの情報共有サイトなどで「なんか動きません」と質問しても、答えてくれる事はありません。
プログラミングスクールなどを利用せず、気軽に質問できる環境がない場合は、ここに影響が出てきます。
何か質問しようにも、相手は自分の講師ではないので、具体的な内容でないと向こうからヒアリングしてくれる事はあまりないんです。
もちろん中には積極的に質問してくれる心優しいエンジニアもいますが、それで欲しい回答まで辿り着けるかは運次第です。
ということで、自分が作ろうとしているもののエラーの場所を把握しましょう。
コンパイラ型言語なら、開発環境のどこかにエラーメッセージが出力される場所があります。まずはそれを確認しましょう。
一見すると、白いスペースになっていて分かりにくい可能性もあります。
自分の開発環境、たとえばVisual Studioなら『Visual Studio エラー 表示』などどググれば大体分かります。
PHPなどのインタプリタ言語なら、実行した時にエラー出力設定があれば表示されるはずです。
この場合は、『言語名 エラー 表示』などで検索してみましょう。
エラーを見ても、なんだかよく分からない英語がずらずら並んでいるだけかもしれませんが、ひとまずエラーが確認できれば最初のステップは完了です。
2.エラー構文を解読する
次に必要なことは、『そのエラーがどういった意味を持っているのか』を追求することです。
私のような英語に自信がない方の場合は、まずは自動翻訳でも何でも使って、そのエラーが日本語で言うとどういう状態なのかを調べてみます。
でも、正直専門用語が並びすぎていてわけが分からず、キーボードをぶん投げたくなる所だと思います。
大丈夫です。私も最初はそうでした。
まずはエラーメッセージを表示内容ごとに分割してみます。
多くの場合、『エラーの内容』『エラーコード』『発生した行数』『発生した関数名』などの情報に分割することができるはずです。
これが分かるだけでも大進歩です。まずは手探りでも良いので、情報を分けてみましょう。
ここでひとつ、情報をふるいにかけます。
エラーコードがある場合は、それをGoogle検索にかけると分かりやすいです。
コードがない場合は、エラーメッセージを直接英語のまま、Googleで検索してみます。
英語や日本語の色々な記事を読みながら、まずエラーの原因が『環境構築によるもの』なのか、『自分の書いたプログラムによるもの』なのかを分割しましょう。
これだけでも、どこを修正すれば良いのかにかなり見当がついてきます。
3.環境を疑う・プログラムを疑う
まずは環境に原因がある場合です。
たとえばこれは、自分が環境にインストールするべき要素が足りていない場合などが代表的です。
PHPを例に出すと、『Call to Undefined function』なんかはその類である事が多いです。自分で関数を作ったりしていなければ。
この場合、自分のプログラムではなく環境を疑うという事をします。
具体的には、インストールされているものを再確認する・環境設定のパラメータを変えてみるなどです。
反対に、自分が書いたプログラムに原因がある場合は、エラーをGoogleで調べてみると、自分に原因がありそうな事が分かります。
『Syntax error』なんかはその代表的なもので、この場合は自分の書いたプログラムのどこかが間違っています。
最初は『ウォーリーをさがせ』みたいな感じに思えるかもしれませんが、次第に慣れるので大丈夫です。
プログラムでの問題を解決する時に大切なことは、『動いている場所と動いていない場所を明確に区別する』ということです。
自分の書いたプログラムとにらめっこするのも大事なんですが、動かしてみるのも大事です。
動かない場所は行数が知らされますから、一旦関わっている部分をまるごとコメントアウトして、動く部分だけで動作させてみるんです。
これでプログラム上の多くの問題は解決します。
4.それでも、どうしても分からない時は……
プログラミングのコミュニティなどで質問してみるのも良いと思います。
でも私はビビリなので、ぶっちゃけて言うとコミュニティで質問した経験がありません。
せっかく情報系の学校に通っていたんですが、「そんなことも分からないのか」と言われそうで、先生に質問した事すらほぼありませんでした……。
今考えると、少しもったいなかったですね。もっと色々聞いておけばよかった。
というわけで、私の場合はほぼ全て、Googleに解決してもらいました。
なので、正直GoogleやKindleを使って情報をかき集めれば、本気で解けない問題ってそんなに多くないのかな、と感じています。
特に最近はYoutubeもオーディオブックもありますし、学習環境はかなり恵まれていますからね。
本当にちんぷんかんぷんな程に分からない場合、大概は前提となる情報が不足していて、階段が作れていない事の方が多いんですよね。
なので、『自分は何がわからないんだろう』を考えることで、わりとどうにかなります。
たとえばプログラミングにしても、いきなりPHPとかPerlから入っても良いんですが、どうしても分からなかったら、それより前から追いかけてみる。
つまり、2進数をコンピュータ上でどう表現しているかとか、変数とはつまり何なのかとか、コンピュータは分解すると何に分かれるのかとか、そういうモノのことです。
環境構築に問題がある場合にしても、なんとなく「何が足りないのかなあ」と考えても問題は解決しないので、「じゃあ最低限、何があれば動くのか」を調べてみる。
ミクロな部分とマクロな部分を、交互に見直してみる。
こんなことを繰り返すと、次第に情報収集能力が上がっていきます。
プログラミングとエラーは、切っても切り離せないもの
というわけで、今回はプログラミング独学中のエラーの対応法について書いていきました。
言語も状況も特定していないので、あまり具体的には書けなかったのですが、イメージとして『エラーの対処ってこんな感じなんだな』という全体像が思い描けていたなら幸いです。
プログラミングを始めると、ほぼ一生エラーとの戦いになります。
どれだけ速くコードが書けるかも重要なのですが、どれだけ速くエラーを解決できるかも、同じくらい重要なことです。
どんなエラーでも問題解決までやり切ったなら、それは絶対に無駄にはなりません。
だからコピペや質問で乗り切るよりも、まずは徹底的に調べてみる事を強くおすすめします。
それでも、もしどうしても分からなかったら。私はネットで質問するよりも、プログラミングスクールをおすすめします。
特に初心者のうちは、質問しようと思ってもうまく状況が言葉にできません。
そうすると、欲しい回答が貰えない事があります。かなり多いです。
スクールであれば、教える事に精通している方に聞くことができます。相手の意思を汲み取って、欲しい情報を提供する事に長けた人たちです。
この差は大きいなと。
私がそうだったので思うのですが、1人でお金をかけずにやってもできることはできるんです。
ただ、時間がかかるんですよね。
最後は、本当に大切にしたいことがお金か時間かというジャッジになります。
プログラミングを独学でやると決めたのなら、まずはGoogleを恋人にする所から始めましょう。
現場からは以上です。