Written by Manabu Bannai

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

PROGRAMMING

プログラミングのエラーで苦しんでいる人「プログラミングでのエラーの解決方法を知りたい…。 最近はプログラミング学習を頑張っているけど、、、エラーばかり。もっと頑張って勉強したいのに、、、全然進みません…。エラーばかりだと辛すぎるので、なにか解決方法を教えてください。」

こういった疑問に答えます。

本記事の内容

  • プログラミングで「エラーの解決方法」は3つある
  • プログラミングで「本質的な技術力」を高める方法

この記事を書いてる僕は、プログラミング歴5年ほど。
フリーランスエンジニアとして年収1,800万円くらい稼げました。

本記事では「プログラミングでのエラーの解決方法」を解説しつつ、記事後半では「本質的な技術力の高め方」にも触れていこうと思います。

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


次のとおりです。

  • その①:エラー内容でググってみる
  • その②:網羅的に基礎を学び直す
  • その③:質問サイトで聞いてみる

その①:エラー内容でググってみる

基本中の基本ですね。とはいえ、初心者は下記のように考えていたりします。

  • エラー内容がわからない
  • エラーでの検索方法がわからない
  • 検索しても英語ばかりで無理

順番にみていきます。

エラー内容がわからない

エラーが起きたら必ず「エラーメッセージ」が出ているはずです。

この「エラーメッセージ」が見つからないなら、まずは「デバッグ方法」を学びましょう。学んでいる言語によって方法は異なりますが、基本的には「言語名 デバッグ方法」でググれば解説がでてきます。 Web系の言語なら、ディベロッパーツールで解決できる場合が多いので、下記で学んでおくと良いです。
» Chrome Developer Tools入門

エラーでの検索方法がわからない

検索方法は簡単で「エラーメッセージ 解決」とかでググればOKです。もしくは「エラーメッセージ error」とかですかね。
後者の方法だと「英語の検索結果」が出てきまして、情報量が多くなります。

このあたりは慣れもあるし「エンジニアの仕事の5割は、ググること」とも言えるので、頑張って身につけましょう。

現役エンジニアに聞けばわかりますが、コードを書く時間よりも、ググったり考えたりする時間の方が長い、って答えると思いますよ。

検索しても英語ばかりで無理

ここも辛いですね…。わからないことをググったら、その答えが「英語・・・」というカオスな状況なので。

プログラミングがわからない苦しみと、英語がわからない苦しみの、二重苦になります。こういった場合の解決策は2つあります。

  • コードだけを読む → 解説文を読まなくても、コードだけを追いかけたら理解できる場合があります
  • コード以外を、Google翻訳する → 最近のGoogle翻訳は精度が高いので、素晴らしいです。コード以外を翻訳したら、わりと解決に近づきます

こんな感じですね。

英語はシンドいですが、英語でググれるようになると、リーチできる情報量が10倍以上になりますからね。ライバルよりも10倍の情報量で戦えるということなので、頑張りましょう。

その②:網羅的に基礎を学び直す

大半の初心者は「エラー内容でググってみても、解説文が理解できない…」という状況だと思います。その場合は「基礎を網羅的に学び直す」ということも大切です。

過去に僕が苦しんだ状況を共有すると「jQueryの勉強を始める→JavaScriptの基礎がわかっている人向けの解説ばかり→JavaScriptをちゃんと理解していなかったので絶望」という感じでした。

なので「エラー内容でググってもマジで意味不明」という場合は「改めて、基礎固めをする」というのも大切です。

その③:質問サイトで聞いてみる

質問サイトを使ってみるのもありですね。定番は下記です。

  • teratail:初心者向け。初歩的なエラーで詰んだ場合は、こちらをどうぞ
  • stackoverflow:日本語版もあるけど、英語版推奨。世界最大規模です

完全初心者なら「teratail」が良いかなと思います。学習時間が500時間とかを超えている「脱初心者」の人なら「stackoverflow」がオススメ。

なお、僕は昔によくstackoverflowを使っていましたが、曖昧な質問文を掲載すると、かなり怒られるので要注意です…。何度も怒られて凹みましたが、質問力が高まりました。

なお、英語ができない人でも、Google翻訳で英訳したら問題なしです。

補足:いったん、諦めて進むのもあり

エラーの解決方法を3つ説明しましたが、4つ目の選択肢として「諦める」のもありだと思います。

すべてを理解するのは、難しい

一部の天才を除き、プログラミングのすべてを理解するとかって、マジで難しいです。特に「オブジェクト指向」とかってマジで難しく、、、エンジニアとして稼いでいた僕ですが、その本質を完全に理解しているとはいえません…。

とはいえ、完璧な人間は存在しない訳ですし、完璧なコードも存在しない訳なので、すべてを完璧に理解するといった「完璧主義」は捨てた方がいいかなと思っています。

初心者のうちは、ある程度は「よくわからんけど、動いたし、、、まぁいいか」といった気持ちも大切ですよ。

プログラミングで「本質的な技術力」を高める方法


プログラミングでエラーに苦しむ理由は「技術力」が低いからです。
じゃあ、技術力を高めるためにどうすべきかというと、、、それは「自分でプロダクトを作ってみること」です。

初心者は、チュートリアルばかりやっている

過去の僕もそうだったのですが、プログラミング初心者は「技術書ばかりを読んでいる」という感じです。

もちろん学習も大切ですが、それと同じか、それ以上に大切なことは「自分でモノづくりをしてみること」です。

テンプレ改変じゃ、成長しません

これは過去の僕の失敗談ですが、、それは「ゼロからコードを書かなかったこと」です。

  • プログラミング学習サービスで、徐々に学ぶ
  • 参考書を買って、その通りにコードを書く
  • カッコいいテンプレを改造して、サイト制作

こういった感じだと、ぶっちゃけ「本質的な力」が伸びないと思っています。
特に「テンプレ改造」とかだと、短時間でカッコいいサイトを作れたりしますが、、、こういった「時短テクニックばかり」をやっていると、なにかエラーが起きたときに、自分で書いていないコードが多すぎて、対処不能だったりします。

自分でプロダクトを作ってみよう

参考書を見ず、コードをコピペせず、チュートリアルを捨てて、自分でサービスを作ってみましょう。
たとえば、下記の感じです。

  • HTMLとCSSを学び終えたら、簡易的なプロフィールサイトを作る
  • PHPの基礎を学び終えたら、掲示板サービスを作ってみる
  • Node.jsを学び終えたら、シングルページアプリケーションを作ってみる

上記の感じですね。ぶっちゃけ思いますが「完全にゼロから何かを作る」という作業はシンドいです。

しかし、ゼロからサービスを作ると、たぶん「バグで苦しむことが、かなり少ない」という状況になります。

というのも、すべてのコードを理解しながら自分で書いているので、なにかエラーが起きても、原因が特定しやすいからですね。
結構大変ですが、本質的な技術力を高めたいなら、ぜひ。

最後に:プログラミング学習には「目的意識」が大切です

最後に補足として、伸びる人と伸びない人の違いを書いてみます。

  • 基礎を終えたのでプロフィールサイトを作っている。そのサイトを使って、本気で企業に営業をかけて、案件を受注しようとしている
  • 基礎を終えたのでプロフィールサイトを作っている。とりあえずプロフィールサイトを作ることが大切と聞いたので、やっているだけ

一目瞭然ですが、伸びるのは前者です。

プログラミングを学ぶ理由は人それぞれですが、必ず「目的意識」を持つようにしてみてください。

ぶっちゃけ思いますが、プログラミングを本気で半年学び、その後にエンジニア就職して、そして1年くらい修行し、自分でプログラミングを使って副業を始める、といった行動をしたら、まじで人生が変わりますので。

トータル期間は1年半とかでも、人生は良くなりますね。

そのためには小さな積み重ねが大切ですが、その積み重ねをする際には「目的意識を持って、学習すること」が重要になってきます。

というわけで、今回はこれくらいにしようと思います。プログラミングは人生を変える武器になりますので、ぜひトライしてみてください。