プログラミングが難しかったんじゃない。英語が読めなかった。
- プログラミング
- 英語
- エラーメッセージ
- 未経験
- AI

プログラミングが難しかったんじゃない。英語が読めなかった。
「プログラミングって難しい。」
未経験からエンジニアを目指していた頃、私は何度この言葉を思い浮かべたか分かりません。
コードを書いて実行するとエラー。
検索して記事を読む。
書いてある通りに修正する。
また違うエラーが出る。
さらに検索する。
気づけば2〜3時間経っていることも珍しくありませんでした。
当時の私は、
「自分はプログラミングに向いていないのかもしれない。」
そう思っていました。
でも数年経った今、当時を振り返ると少し違う見え方をしています。
私はプログラミングそのものにつまずいていたわけではありません。
「何が起きているのか分からない状態」 で立ち止まっていただけだったのです。
そして、その原因の多くは英語でした。
C#では分かるのに、Flutterでは何が起きているのか分からない
当時、仕事ではC#を使って開発していました。
Visual Studioでデバッグをしながら開発できるので、
「この行で値がおかしくなった。」
「ここで例外が発生している。」
ということが比較的分かります。
原因を一つずつ追いかけられるので、不具合の調査もしやすい環境でした。
ところが個人開発でFlutterやフロントエンドを触り始めたとき、その感覚が一気に崩れました。
実行すると大量のログ。
見慣れない英単語。
赤いエラー。
そして画面には長い英文。
最初に思ったのは、
「え?今、何が起きてるの?」
ということでした。
コードが間違っているのか。
設定が悪いのか。
パッケージがおかしいのか。
環境構築に失敗しているのか。
何一つ分かりません。
今思えば、一番困っていたのはコードではなく、状況を理解できないこと でした。
環境構築は「英語の壁」を一番感じる瞬間だった
未経験の頃、一番苦手だったのは環境構築でした。
インストールコマンドを実行すると英語のログが流れる。
途中で止まる。
でも理由が分からない。
検索しても同じような画面がたくさん出てきて、どの記事を読めばいいのかも分からない。
結局、書いてあるコマンドをそのままコピーして試してみる。
動かなければ別の記事へ。
そんなことを何度も繰り返していました。
当時はChatGPTのようなAIもありません。
分からないことがあれば、とにかく検索するしかありませんでした。
今なら数分で終わるような問題でも、何時間も調べ続けていたことがあります。
エラーメッセージは「読まないもの」だと思っていた
今だからこそ思います。
当時の私は、エラーメッセージを読んでいませんでした。
読む前に検索していました。
「どうせ英語だから読んでも分からない。」
そう決めつけていたんです。
だからエラーの原因を理解しようとする前に、
Qiitaを開き、Stack Overflowを開き、個人ブログを読み、
書いてあるコードを試していました。
もちろん、それで解決することもあります。
でも原因を理解していないので、少し違うエラーが出るとまた最初からやり直しです。
検索して、試して、また検索する。
当時の私は、それがプログラミングの勉強だと思っていました。
でも本当は違いました。
「エラーメッセージって、原因を書いてくれてるんだ。」
ある時から、エラーメッセージに対する考え方が少し変わりました。
英語が急に読めるようになったわけではありません。
TOEICの点数が上がったわけでもありません。
海外の記事をスラスラ読めるようになったわけでもありません。
ただ一つ、「エラーメッセージは、何が起きたのかを教えてくれている」 ということに気付いたんです。
それまでは、
「英語だから分からない。」
「とりあえず検索しよう。」
と思っていました。
でも、一文ずつ見てみると意外とシンプルでした。
例えば、
undefined
なら、「定義されていないものを使おうとしている。」
required
なら、「必要な値や設定が足りていない。」
failed
なら、「何らかの理由で処理が失敗した。」
もちろん、それだけで解決できるわけではありません。
でも、「今どんな種類のエラーなのか」が分かるだけで、検索の精度は大きく変わりました。
以前の私は、エラーメッセージをそのままコピーして検索していました。
でも今は、
「requiredだから設定周りかな。」
「undefinedだから値が渡っていないのかな。」
と予想を立ててから調べるようになりました。
この違いだけでも、調査時間はかなり短くなったと思います。
英語が得意になったわけではない
ここで一つ誤解してほしくないことがあります。
私は英語が得意なエンジニアではありません。
今でもGitHubのIssueを見ると、「何を議論しているんだろう。」と思うことがあります。
OSSのDiscussionも難しいです。
公式ドキュメントも、日本語の記事があればそちらを読むこともあります。
だから、「英語ができるようになったから困らなくなった」という話ではありません。
違うんです。
必要なところだけ読めるようになった。
それだけです。
全部理解する必要はありません。
エラーの原因。
警告の内容。
設定方法。
そこだけ拾えれば、多くの場面では十分でした。
英語を勉強したというより、開発でよく出てくる英単語に慣れたという感覚の方が近いです。
AIがある今だからこそ、「読む力」はもっと大切になった
私が未経験だった頃は、AIはありませんでした。
だから、検索して、記事を読んで、試して、また検索する。
その繰り返しでした。
今は違います。
ChatGPTやGeminiに聞けば、多くのことは数分で解決できます。
開発速度も理解速度も、昔とは比べものにならないくらい上がりました。
でも、AIを使うようになって気付いたことがあります。
AIは魔法ではありません。
状況を伝えなければ、正しい答えは返ってきません。
「動きません。」だけでは答えられません。
どんなエラーが出たのか。
どんなコードを書いたのか。
何をしようとしていたのか。
それを伝えて初めて、AIは力を発揮します。
だから今でも、エラーメッセージを読む力は必要です。
英語が読める人ほどAIを使いこなせるというより、
エラーを理解しようとする人ほどAIを使いこなせる。
私はそう感じています。
エンジニアに必要なのは「英会話」ではない
「エンジニアになるなら英語が必要。」
そう聞くと、英会話やTOEICを思い浮かべる人も多いかもしれません。
もちろん、それらが役立つ場面もあります。
でも少なくとも、未経験からエンジニアを目指していた私に必要だったのは、それではありませんでした。
必要だったのは、
- エラーメッセージを読むこと
- ログを読むこと
- ドキュメントの見出しを理解すること
- AIへ状況を正しく伝えること
でした。
画面に表示される英語を「敵」と思わなくなるだけで、開発はずっと楽になります。
実際に毎日目にする英単語は、それほど多くありません。
例えば、
- undefined
- required
- failed
- validation
- relation
こうした単語は、一度意味が分かれば何度も出会います。
英語を勉強するというより、
「開発で使う道具に慣れる」
そんな感覚の方が近いと思います。
未経験の頃の自分に、一つだけ伝えるなら
もし未経験だった頃の自分に一つだけアドバイスできるなら、
「英語を勉強しろ。」
とは言いません。
伝えたいのは、たった一つです。
エラーメッセージは、ちゃんと読んでみろ。
最初は全部理解できなくて大丈夫です。
翻訳しながらでも構いません。
一文ずつでも構いません。
大切なのは、
「読めないから検索する」
ではなく、
「まず読んでみる」
という習慣です。
その積み重ねが、「何が起きているのか分からない時間」を少しずつ減らしてくれます。
まとめ
未経験の頃の私は、「プログラミングって難しい。」と思っていました。
でも今振り返ると、本当に苦戦していたのはコードではありません。
英語のエラーメッセージやログを前にして、何が起きているのか分からない状態 になっていたことでした。
もちろん、今でも分からない英語はたくさんあります。
GitHubのIssueを読むのも簡単ではありませんし、公式ドキュメントを読むのも苦労します。
それでも以前より開発が楽になったのは、全部理解できるようになったからではなく
「まずエラーメッセージを読んでみよう」と考えられるようになったから です。
もし今、あなたがエラー画面を見て途方に暮れているなら、
検索ボタンを押す前に一度だけエラーメッセージを読んでみてください。
そこには、次に進むためのヒントが、意外と素直な言葉で書かれているかもしれません。