僕は現在大手外資系企業でプログラマーをしています。毎日アメリカ、インド、ドイツオフィスにいる外国人と英語でコミュニケーションをとりながら仕事を進めています。
そんな僕が、プログラミングと英語について、様々な観点で比較して、どちらが難しいか?どちらを先に学ぶべきか?
初心者でもわかりやすいように専門用語は使わず解説してみたいと思います。
目次(タップでジャンプ)
プログラミングについて
プログラミングとは
プログラミングとは、プログラムを書くことです。そしてプログラムは言語です。コンピュータに対して「このように動いてくれー」と命令する文章を書くのがプログラミングです。
世の中にはいろんなコンピュータが存在して、それぞれ、理解できるプログラミング言語は異なっています。
プログラミング言語の種類について
例えば、iPhoneのアプリを作りたいんだったら、SwiftやObjective-Cというプログラミング言語を使うのが一般的ですし、アンドロイドアプリだったら、Java、Kotlin、C#
という言語をよく使います。
またWebサイトを作るのであれば、html、JavaScript、CSSといった言語の知識が必要ですし、場合によっては、PHP、SQLといった言語知識も欲しいところ。
家電製品や自動車の中に組み込まれているコンピューターなんかは、C、C++といった言語が使われている事が多いです。今話題の、AI(人工知能)のプログラミング言語としては、Pythonが使われる事が多いです。
プログラミング習得の難易度について
今説明しましたように、本当に数多くのプログラミング言語が、製品別・目的別に使われています。
ただし、プログラミング言語の文法、使用する単語はそんなに多くないので、プログラミング自体を使えるようになるまでの期間はそんなに長くないです。
たとえば、日本人が英語をカタコトでも話せるようになるためには、何百時間と学習が必要ですが、プログラミング言語であれば、同じ時間で、二つ以上の言語も十分に習得できます。
普通の言語であれば、3カ国語とか話せたらかなりスゴイと思われますが、プログラミングの世界だと、10個くらいのプログラミング言語を使えますという人はいっぱいいるんですよね。
しかし、プログラミングと言っても、作るものによって難易度が全然異なるので注意が必要です。AIを使った自動運転のためのプログラミングは、大学の専門講義のような難しさかもしれません。それに対して、簡単なWebサイトの作成だったら小学校の授業レベルくらいになるかもしれません。それくらい難易度が異なるのです。(難易度の差を表現した比喩です。Webサイト作成のレベルが、本当に小学生の授業レベルではありませんので、誤解しないでください。)
最初にも話しましたが、プログラミングは、コンピューターにあれこれ命令する言語です。コンピュータに何かをしてもらうための道具にすぎません。だからこそ、この道具を、どんな知識を使って何を実現したいか、具体的にどうやって実現するのか?という事を考える事の方が難しいです。
つまり、プログラミング言語自体は英語に比べれば難しくないです。そして、何を作るかによって、難易度「低」~「激ムズ」まで色々考えられます。
簡易的なWebサイトやWebサービス等の作成であれば、難易度「低~中」くらいになると思います。そういったモノが作りたいのであれば、英語よりも早く簡単に成果を実感できると思います。
英語について
日本での英語の現状について
ご存じのように、日本ではみんな最低6年間は英語を勉強していますが、まともに英語を話せる人はかなり少ないです。
日本にいると、日本語で必要な情報がほぼ手に入りますので、英語の必要性を感じられません。そして、英語を話すための授業やトレーニングはほとんど受けていません。こんな状況であれば、みんな英語話せなくて当たり前だと思います。
では、そんな普通の日本人が、英語でコミュニケーションがとれるようになるまでどれくらいの時間がかかるでしょうか?
英語が話せるようになるまでの時間は?
義務教育で学んだ英語の基礎知識があれば、1000時間程度で話せるようになるとは言われています。ただし、カタコト英語でなんとかコミュニケーションが取れれば良いというレベルであれば1000時間も必要ありません。その数分の一の時間で済むでしょう。
とはいえ、数分の一といっても、数百時間はかかるわけです。
英語は、プログラミング言語に比べて、覚えなくてはいけない文法が多いです。覚えなくてはいけない英単語も多いです。しかも、英会話が目的であれば、瞬間的に日本語⇔英語の変換ができないといけないわけです。
ですので、ひとつのプログラミング言語習得の時間に比べたら、英語の習得時間は比べ物にならないくらい長い時間が必要になります。
英語が話せるようになったらできる事は?
ただし、英語でコミュニケーションができるようになると、それだけで世界が広がりますし、楽しみも増えます。海外の情報を得る事が容易になりますし、外国人と楽しくおしゃべりできますからね。
一方で、プログラミングの場合は、ひとつのプログラミング言語を習得しても、実は苦難の連続です。
プログラミング言語は、何かモノやサービスを作るための道具に過ぎません。なので、作るモノやサービスをどのようにプログラミングで実現するかを考える事の方が難しいです。最初に考えていた通りに作れない事も多いです。だからこそ、完成した時の喜びも大きいんですけどね。
英語も人と人とのコミュニーケーションの道具にすぎませんが、英語の場合は、コミュニケーション自体が目的の方もいますし、そもそも、そのコミュニケーション自体が楽しいですし、価値もあったりしますからね。
プログラミングの場合、コミュニケーションの相手はコンピュータであって、コンピュータとコミュニケーションしただけでは何の価値もなく、何を生み出すかが問題ですからね。
プログラミングと英語を比較してみる
習得難易度の比較
英会話ができるようになる事が目的であれば、英語の方が圧倒的に難易度が高いです。ただ、すでに述べた通り、プログラミング言語の習得自体は難しくありませんが、そのプログラミング言語で何を作るかによって難易度が大きく異なります。
「漠然とプログラミングができるようになりたい」では良くないです。プログラミングで何をしたいのかをまずは考えましょう。まあ、英語でも同じことが言えますけどね。
仮に、小規模のWebサイト・Webサービスを作りたいというのであれば、数カ月集中すればある程度のものが作れるようになるかもしれませんし、スマホアプリを作りたいというのであれば、最低限、その倍以上の時間はかかるかもしれません。
英語に関して言えば、目的が「海外旅行等で、現地の人とカタコトで良いから、簡単なコミュニケーションを楽しみたい」というのであれば、これも数カ月集中すれば可能かもしれません。
このように、まずは目的やゴールを考えてみましょう。それにより、そのゴールに達するまでの難易度は変わってきますからね。
収入の比較
プログラミングに関して言えば、プログラマーが不足している事もあり、プログラミングができるだけで仕事を得る事は容易にはなるだろうと思います。が、一方で、経験が少ないと、難易度の高い・収入の高い仕事は受けられず、それ相応の収入にしかならないのが現実です。
また、扱うプログラミング言語によって平均年収も異なります。ですので、将来的な収入面も考慮した上で、どのプログラミング言語を学ぶかを検討するようにしてみましょう。一方で、自分の作りたいモノ、やりたいモノで学びたいプログラミング言語を決めた方が良いとも思います。結局は、収入をとるか、自分のやりたいことをとるかという選択にもなります。
いずれにせよ、実のところ、どこかの日本企業の社員として働いている限り、昔からプログラマーの年収はそんなに高くない傾向があります。というか、入る企業しだいだと思います。
だからといって、プログラマーとして収入アップが見込めないという訳でもないです。プログラミングの知識・経験があれば、割と転職も、独立するのも容易になりますので、収入アップは個人の能力次第でいくらでも上を目指せます。
英語に関しては、英語ができるようになっただけで収入アップが望める訳ではないです。
英語は自分の本来の仕事に対しての付加価値となりますが、それ以上ではありません。つまり、自分の仕事でいかに英語を活用するかで、収入アップできるかどうかが変わってくるかと思います。
ただし、英語ができる人を求めている、より給与の高い企業への就職・転職は可能になるとは思います。その場合、メインの仕事に対する知識やスキルがきちんとある事が前提ですけどね。
つまり、英語を身に付けた後のご自身の行動によって、十分に給与アップは狙えると思います。実際に、英語が出来る人の方が年収が高いという統計がでていますからね。
結局、プログラミングと英語、どちらを先に学ぶべきか?
何かを学ぶときは、ある期間一気に集中した方が学習効率が高いです。プログラミング言語自体の習得難易度は、英語よりかなり低いのはすでに述べたとおりです。
ですので、プログラミング、英語、どちらも学びたいと思っているのであれば、個人的には、まず最初にプログラミングの基礎をみっちりと固めるのが良いのかなと思います。数カ月プログラミング学習だけに集中してみるのです。
プログラミングであれば、数カ月のうちに必ず何らかの成果が出るはずです。そこで、あなた自身がプログラミングに向いているかどうかの判断もできると思います。
プログラミングは頭脳労働なので、正直、向き不向きは確実にあります。数カ月試してみて、どうしても自分に向いていないと感じたら、もっとあなたに向いているものに時間を割いた方が良いと思います。
プログラミングに向いていない人が、プログラミングを続けていても高収入が見込める可能性は低くなりますからね。
一方で、英語は、個人的には誰が学んでも価値はあると思います。収入アップにつながるというだけではなく、あなた自身の世界が広くなる、生活が精神的に豊かになるといった、別の意味での価値も高いと思っているからです。
ですので、まずはプログラミングに挑戦してみる。基礎を固めたら、英語も並行して勉強し始めるというのが良いのではないかなと思います。そして、残念ながらプログラミングが向いていないと判断したら、やめるか、趣味として続けるかを決めるのが良いかなと思います。
あと、子供にプログラミングと英語、どちらを学ばせたいか悩んでいる方もいるでしょう。その場合、個人的には、プログラミングの方が良いかなと思います。英語に比べれば、習得難易度が低く、かつ、今はゲームのように楽しみながら学習ができ、効果も目に見えてわかりやすいからです。かつ、論理的に物事を考えるトレーニングとなり、思考力が鍛えられます。これは、ある意味頭を良くするトレーニングと言い換えても良いモノです。
正直、英語は、日本語のチカラを使って学ぶ事で、逆に効率よく習得できるので、日本語が完璧になった後からでも良いのかなと思ったりします。
子供だと、英文法で学ぶことはかなり難しいですから、英語を英語のまま学ぶ事になるのかなと思います。でも、それは、英語のシャワーをかなりの時間浴びないと厳しいと思いますし、週に1~2回程度のレッスンではそんな環境にはならないでしょうからね。
まとめ
以上、僕の結論としては、まずはプログラミングを勉強する。そして自分の向き不向きを確かめた上で、プログラミングを継続するかを判断する。その後、英語の勉強を始める。という事になります。
不向きなものに大量の時間を投じてもかなりコスパの悪い事になりかねません。時間は有限ですしね。自分の本当に向いているものを探すよいきっかけになるかもしれません。
なかなかこのような事をいっている記事はないかもしれませんが、一度きりの人生、自分の本当に向いているモノに情熱を注いだ方が良いと僕は思います。
最後までお読みいただきありがとうございました。
【関連記事】
⇒プログラマーが英語ができると有利になる3つの理由!
⇒英語ができないプログラマーのための英語学習法とは?
⇒TOEIC700点のエンジニアの価値は?転職で有利になるのか?