プログラミングに英語力が必要かどうかは度々議論されています。そして結論として、英語は必要だと言われたり、逆に英語は必要ないと言われたり、結局どっちなの?といった感じです。
このように結論がコロコロ変わる理由として、「プログラミングそのもの」と「情報収集」の話が混同されている、という理由があります。まず最初にプログラミングの何に英語が必要か、逆に不要かを切り分けて考えるべきです。
そこでこのページでは、目的を切り分けてわかりやすく解説します。今後プログラミングに英語力が必要かどうかについて、他の記事を見ても混乱することがなくなるでしょう。
この記事の要点
|
「プログラミングそのもの」と「情報収集」で話を分けるべき
プログラミングに英語力が必要かどうか議論するのであれば、「プログラミングそのもの」の話なのか、「情報収集」の話なのか目的を切り分けるべきです。
この二つが混同して説明されていたり、結論を最後まで引っ張ってどちらか一方の説明だけされることが多いため、結果的に混乱してしまいます。
また「プログラミングそのもの」と「情報収取」において英語力が必要かどうかまとめた表は以下です。
初心者 | 中級者~ | |
プログラミングそのもの | 不要 | 不要 |
情報収集 | 不要 | あると便利 |
目的が「情報収集」でプログラミングのレベルが中級者以降なら英語力があると便利です。それ以外では英語力は不要です。詳しくは後述します。
「プログラミングそのもの」は英語力不要
まずプログラミング自体は英語力がなくてもできます。プログラミングのソースコードを一見すると、「while」「for」「print」「break」などと書かれていますし、エラーログには「syntaxError」などと書かれています。
そのため、初めてソースコードを見た方は、「英語ができないとプログラミングできないのかな?」と思ってしまうかもしれません。
しかし、プログラミング言語内に出てくる英単語は限定的です。英単語も誰でも知っている簡単なものか、もしくはプログラミングでしか使わないような、英語圏の人でも知らないような単語です。
また単語が出てくるだけで、英語の文法になっていることはありません。さらに英単語ではなく、プログラミング言語オリジナルの造語のようなものも多々あります。
コードの英単語は気になれば辞書で調べればすぐに意味がわかりますし、意味がわからないままでもコードの役割がわかれば問題ありません。
プログラミング言語は英語をベースに作られているため、コードが英単語になっています。イメージしやすいように日本語に翻訳して考えると、以下のようなイメージです。
「出力」と書いたら出力される
「間」と書いたらその間特定の処理が継続される
「中断」と書いたら処理が中断される
「引数」と書いたら引数が使える
「変数」と書いたら変数が使える
簡単な単語か、もしくは日本人でもあまり知らないプログラミングでしか使わない単語です。仮に日本語をまったく知らない外国人が日本語でプログラミングするとしても、プログラミングで使われる単語だけ覚えればOKです。
また「引数」「変数」などはプログラミングをやっていなければ日本人でも知らない単語です。英語では引数が「argument」、変数が「variable」ですが、これはプログラミングをやっていなければ英語圏の人も知らない単語です。
説明が長くなりましたが、プログラミングのソースコードを書くだけなら英語力は不要で、プログラミングに出てくる限定的な英単語の役割だけ知っていればOKということでした。逆に言えば、英語がネイティブレベルでもプログラミングを始めれば知らない単語が出てくるでしょう。
「情報収集」は英語力があると便利
プログラミングの「情報収集」においては英語力があると便利です。
理由としては、インターネット上には日本語よりも英語の情報の方が圧倒的に多く、特にプログラミングは英語をベースに作られている分英語の情報が多いからです。
日本人がプログラミングの公式ドキュメントを作成する際も、英語で書かれることが多いです。
またプログラマーがプログラミングをする際、頻繁にネット検索をします。その意味でネット検索はプログラマーにとって重要なスキルで、検索が効率的で速いとそれだけプログラミングの作業効率が良くなります。
英語で検索して英語が読めると、情報量が多い分ピンポイントで必要な情報が見つかりやすいので、作業効率がアップします。
実際日本語で長時間検索しても問題解決ができなかったが、英語検索をかけたら一発で解決方法がわかった、といったケースは多々あります。
私自身英語がある程度読めるものの、日本語の方が速く正確に理解できます。そのためできれば日本語で情報が見つかれば良いと考えているのですが、抵抗なく英語で情報収集できるようになった方がスムーズでしょう。
プログラミング初心者のうちは「情報収集」でも英語力不要
「プログラミングそのもの」は英語力不要で、「情報収集」は英語力があった方が便利、ということでした。
しかし、プログラミング初心者のうちは英語力がなくても十分必要な情報が入手できます。
プログラミング初心者がつまずくポイントというのは、多くの人がすでにつまずいています。そしてその内容をネット上に発信している人も多いです。つまり、日本語で調べても十分に情報が出てくるということです。
一方で、プログラミング中級者以降になるとできることが増える分プログラミングの世界が広く深くなります。そうするとみんなが同じ経験をするわけではなく、また内容のレベルが高い分情報としてまとめて発信するのも難しいです。
その結果情報量が少なくなるので、日本語だけでは情報が見つからず、英語で調べた方が見つかりやすいです。
プログラマーがレベルアップしていけばいずれ英語が読めた方が便利になるので、余裕があるならプログラミング初心者のうちから英語も並行して勉強した方がお得ではあります。
結局プログラミングと英語の勉強は並行すべきなのか
結局プログラミングと英語の勉強を並行すべきかですが、ある程度英語の勉強もした方が良いでしょう。とはいえ、単語や文法を一からやり直すような必要はないかと思います。
プログラミングの情報収集のために英語で検索すると言っても、ページの中のすべての情報を読むわけではありません。基本的にはソースコードを見て理解し、補足的に英語で書かれた説明を読むようなことが多いでしょう。
そのため書かれている内容の予測はできますし、完璧に理解する必要もありません。具体的な勉強方法としては、実際に英語で検索して、辞書などを使って英文を読んでみるのが直接的なスキルとして役立ちます。
基本的には読めれば問題ありませんが、「読む」「書く」「聞く」「話す」の能力はリンクしています。そのため読む勉強だけでなく、無理のない範囲で他の勉強も取り入れても良いかと思います。
私の場合は英語で検索することに加え、洋画を見たりしています。「英語音声英語字幕」「英語音声日本語字幕」「英語音声字幕なし」などいろいろなパターンがありますが、自分が理解できて、勉強になればそれで良いと思います。
私は力を入れて英語を勉強しているわけではなく、作業中に洋画をなんとなく流し見しているような感じです。最初は映画の方が気になって集中できないこともありましたが、今は慣れました。
また作業をしながら見るのであれば、面白すぎる作品だとどうしてもそっちに気を取られてしまうので、あえてあまり面白そうではない作品を選ぶのがコツかもしれません。
プログラミングをしながら英語で検索する、洋画を流し見する、こういった感じで、緩やかに英語を勉強していくのも一つの手です。
自然言語である英語は、プログラミング言語と違って正確に一言一句を追いかけるよりも全体的に慣らしていった方が良いそうです。私は英語学習のプロではないので正しい判断かどうか断言はできないのですが、少なくとも私はそのようなイメージで英語を適当に勉強しています。