プログラミングで「エラーの解決方法」は3つある【ググり方の解説】

プログラミングのエラーで苦しんでいる人「プログラミングでのエラーの解決方法を知りたい…。 最近はプログラミング学習を頑張っているけど、、、エラーばかり。もっと頑張って勉強したいのに、、、全然進みません…。エラーばかりだと辛すぎるので、なにか解決方法を教えてください。」
こういった疑問に答えます。
本記事の内容
- プログラミングで「エラーの解決方法」は3つある
- プログラミングで「本質的な技術力」を高める方法
この記事を書いてる僕は、プログラミング歴5年ほど。
フリーランスエンジニアとして年収1,800万円くらい稼げました。
本記事では「プログラミングでのエラーの解決方法」を解説しつつ、記事後半では「本質的な技術力の高め方」にも触れていこうと思います。
プログラミングで「エラーの解決方法」は3つある
- その①:エラー内容でググってみる
- その②:網羅的に基礎を学び直す
- その③:質問サイトで聞いてみる
その①:エラー内容でググってみる
基本中の基本ですね。とはいえ、初心者は下記のように考えていたりします。
- エラー内容がわからない
- エラーでの検索方法がわからない
- 検索しても英語ばかりで無理
順番にみていきます。
エラー内容がわからない
エラーが起きたら必ず「エラーメッセージ」が出ているはずです。
この「エラーメッセージ」が見つからないなら、まずは「デバッグ方法」を学びましょう。学んでいる言語によって方法は異なりますが、基本的には「言語名 デバッグ方法」でググれば解説がでてきます。 Web系の言語なら、ディベロッパーツールで解決できる場合が多いので、下記で学んでおくと良いです。
» Chrome Developer Tools入門
エラーでの検索方法がわからない
検索方法は簡単で「エラーメッセージ 解決」とかでググればOKです。もしくは「エラーメッセージ error」とかですかね。
後者の方法だと「英語の検索結果」が出てきまして、情報量が多くなります。
現役エンジニアに聞けばわかりますが、コードを書く時間よりも、ググったり考えたりする時間の方が長い、って答えると思いますよ。
検索しても英語ばかりで無理
ここも辛いですね…。わからないことをググったら、その答えが「英語・・・」というカオスな状況なので。
プログラミングがわからない苦しみと、英語がわからない苦しみの、二重苦になります。こういった場合の解決策は2つあります。
- コードだけを読む → 解説文を読まなくても、コードだけを追いかけたら理解できる場合があります
- コード以外を、Google翻訳する → 最近のGoogle翻訳は精度が高いので、素晴らしいです。コード以外を翻訳したら、わりと解決に近づきます
こんな感じですね。
英語はシンドいですが、英語でググれるようになると、リーチできる情報量が10倍以上になりますからね。ライバルよりも10倍の情報量で戦えるということなので、頑張りましょう。
その②:網羅的に基礎を学び直す
大半の初心者は「エラー内容でググってみても、解説文が理解できない…」という状況だと思います。その場合は「基礎を網羅的に学び直す」ということも大切です。
過去に僕が苦しんだ状況を共有すると「jQueryの勉強を始める→JavaScriptの基礎がわかっている人向けの解説ばかり→JavaScriptをちゃんと理解していなかったので絶望」という感じでした。
なので「エラー内容でググってもマジで意味不明」という場合は「改めて、基礎固めをする」というのも大切です。
その③:質問サイトで聞いてみる
質問サイトを使ってみるのもありですね。定番は下記です。
- teratail:初心者向け。初歩的なエラーで詰んだ場合は、こちらをどうぞ
- stackoverflow:日本語版もあるけど、英語版推奨。世界最大規模です
完全初心者なら「teratail」が良いかなと思います。学習時間が500時間とかを超えている「脱初心者」の人なら「stackoverflow」がオススメ。
なお、僕は昔によくstackoverflowを使っていましたが、曖昧な質問文を掲載すると、かなり怒られるので要注意です…。何度も怒られて凹みましたが、質問力が高まりました。
なお、英語ができない人でも、Google翻訳で英訳したら問題なしです。
補足:いったん、諦めて進むのもあり
エラーの解決方法を3つ説明しましたが、4つ目の選択肢として「諦める」のもありだと思います。
すべてを理解するのは、難しい
一部の天才を除き、プログラミングのすべてを理解するとかって、マジで難しいです。特に「オブジェクト指向」とかってマジで難しく、、、エンジニアとして稼いでいた僕ですが、その本質を完全に理解しているとはいえません…。
とはいえ、完璧な人間は存在しない訳ですし、完璧なコードも存在しない訳なので、すべてを完璧に理解するといった「完璧主義」は捨てた方がいいかなと思っています。
初心者のうちは、ある程度は「よくわからんけど、動いたし、、、まぁいいか」といった気持ちも大切ですよ。
プログラミングで「本質的な技術力」を高める方法
プログラミングでエラーに苦しむ理由は「技術力」が低いからです。
じゃあ、技術力を高めるためにどうすべきかというと、、、それは「自分でプロダクトを作ってみること」です。
初心者は、チュートリアルばかりやっている
過去の僕もそうだったのですが、プログラミング初心者は「技術書ばかりを読んでいる」という感じです。
もちろん学習も大切ですが、それと同じか、それ以上に大切なことは「自分でモノづくりをしてみること」です。
テンプレ改変じゃ、成長しません
これは過去の僕の失敗談ですが、、それは「ゼロからコードを書かなかったこと」です。
- プログラミング学習サービスで、徐々に学ぶ
- 参考書を買って、その通りにコードを書く
- カッコいいテンプレを改造して、サイト制作
こういった感じだと、ぶっちゃけ「本質的な力」が伸びないと思っています。
特に「テンプレ改造」とかだと、短時間でカッコいいサイトを作れたりしますが、、、こういった「時短テクニックばかり」をやっていると、なにかエラーが起きたときに、自分で書いていないコードが多すぎて、対処不能だったりします。
自分でプロダクトを作ってみよう
参考書を見ず、コードをコピペせず、チュートリアルを捨てて、自分でサービスを作ってみましょう。
たとえば、下記の感じです。
- HTMLとCSSを学び終えたら、簡易的なプロフィールサイトを作る
- PHPの基礎を学び終えたら、掲示板サービスを作ってみる
- Node.jsを学び終えたら、シングルページアプリケーションを作ってみる
上記の感じですね。ぶっちゃけ思いますが「完全にゼロから何かを作る」という作業はシンドいです。
しかし、ゼロからサービスを作ると、たぶん「バグで苦しむことが、かなり少ない」という状況になります。
というのも、すべてのコードを理解しながら自分で書いているので、なにかエラーが起きても、原因が特定しやすいからですね。
結構大変ですが、本質的な技術力を高めたいなら、ぜひ。
最後に:プログラミング学習には「目的意識」が大切です
最後に補足として、伸びる人と伸びない人の違いを書いてみます。
- 基礎を終えたのでプロフィールサイトを作っている。そのサイトを使って、本気で企業に営業をかけて、案件を受注しようとしている
- 基礎を終えたのでプロフィールサイトを作っている。とりあえずプロフィールサイトを作ることが大切と聞いたので、やっているだけ
一目瞭然ですが、伸びるのは前者です。
プログラミングを学ぶ理由は人それぞれですが、必ず「目的意識」を持つようにしてみてください。
トータル期間は1年半とかでも、人生は良くなりますね。
そのためには小さな積み重ねが大切ですが、その積み重ねをする際には「目的意識を持って、学習すること」が重要になってきます。
というわけで、今回はこれくらいにしようと思います。プログラミングは人生を変える武器になりますので、ぜひトライしてみてください。
【保存版】プログラミング学習の完全ロードマップ【挫折しない教材】
こちらは「プログラミング学習の完全ロードマップ」のページです。プログラミング学習の完全ロードマップでは「プログラミング基礎解説/フリーランスの基礎解説/僕が使った生データ公開/質問回答チャットを用意/情報は随時アップデート」という内容を、基本すべて無料で提供します。人生において「プログラミングという武器」を手にいれましょう。