現在、日本のみならず世界中でプログラミングがブームになっています。
今後ますます拡大し続けるIT需要に対して、優秀なプログラマーが不足しており、国を挙げてプログラマーを育成することが急務とされています。
そんな中、新しくプログラミングを始めようとしている人は、何から手を付けて良いのか分からないかもしれません。
そこで海外で働くWebエンジニアという立場から、どの言語を最初に覚えるべきかを紹介していきます。
目次
世界的なプログラマー不足だからこそ今始めよう

今や圧倒的な売り手市場のプログラマーですが、ほんの少し前まで日本ではブラック労働の典型とも言える職種でした。
私がプログラマーになる前、2ちゃんねるなどでプログラマーの評判を見ると、「プロジェクトが炎上して同僚がどんどん逃亡指する」「徹夜続きで1週間家に帰ってない」といった労働環境にも関わらず、平均年収を下回る程度の給与しか得られないといった具合でした。
しかし現在はまるで状況は違います。
世界のIT企業がこぞって優秀な人材を求め、新卒に何千万円という給与を出して人材を確保する動きが活発になっています。
さすがに日本で何千万円という水準はありませんが、ヤフーやドワンゴでは新卒で年額450万円ほど、Googleなど外資系の企業ならもっと高い給与を得ることができます。
新卒の一般的な年収は300万円ほどですから、プログラマーというだけで初年度から1.5倍の給与を得られるので、客観的に見ても高収入の職になりつつあります。
その要因としてはスマホやAIを中心にIT関連産業が急拡大しているためで、業界規模の拡大に人材の供給が間に合っていないのです。
そして日本でもプログラミングを義務教育に取り入れたりと、プログラマーを国家規模で育成しようという動きになっています。
中高生の男子の将来の夢には「ITエンジニア」が第1位になるなど、この流れは着実に進んでおり、いつしか需要過多は解消され、売り手市場ではなくなるはずです。
だからこそまだ供給不足の現在にプログラミングを始めて、良い待遇を得ることは個人の生存戦略として極めて重要です。
今や脱サラをしてプログラミングスクールに通い、プログラマーへの転身を図る人もいますが、生存戦略という観点から具体的にどの言語を選択すれば良いかを紹介しましょう。
プログラミングの時流は早く、Rubyブームは過去のものに
光陰矢の如しといいますが、プログラミング界隈にとっての1ヶ月は、他の業界の半年~1年に匹敵します。これは誇張ではなく、現実的な数字です。
スマホが普及してきた頃、2010年前後は空前のスタートアップブームで、シリコンバレーを中心に新しいスマホアプリを作る企業が続出し、やや遅れて東京には波及しました。
その時に流行ったのがRubyというプログラミング言語で、「Ruby on Rails」というWebフレームワークを使えることが最も高給取りへの近道となりました。

「とにかく早く企画を実現させて、仮説を検証せよ」という考えが流行したため、早く構想を具現化できるツールとしてRuby on Railsが重宝され、2014年頃まで「Railsエンジニアはシリコンバレーで一番の高給取り」とも言われていました。
しかし2018年現在、今からRubyを学習するのは賢い選択とは言い難く、Ruby on Railsは完全に盛りを過ぎています。
今でも「プログラミングを新たに始めるにはRubyが良い」とよく言われますが、それを鵜呑みにすると世界のトレンドに反してしまうでしょう。
もっともこうした流れはRubyだけではありません。JavaやObjective-Cなどかつて利用人口の多かった言語も同様に盛りを過ぎており、プログラミングに流行り廃りがあるのはいつの時代も避けては通れないのです。
(※トレンドが過ぎたからといって職を失うわけではありません。既にその言語を使って動かしているシステムは、サービスが存続する限り、同じ言語を使ってこれからもアップデートしていかなければならないからです。ただし新たに学習する手段としては、市場が縮小するものを選ぶメリットは少ないでしょう。)
エンジニアの生存戦略は優秀であること
まず前提として知っておくべきなのは、エンジニアにとっての最大の生存戦略は、プログラミングを使いこなせるかどうかではなく、その人が優秀であるかどうかです。
コンピューターサイエンスを習得していたり、大規模なプロジェクトをマネジメントしていたり、ゼロからサービスを拡大させたりといったスキルは、仮にどの言語を学ぶとしても汎用的なスキルとして生きてきます。
さらに優秀なプログラマーであれば、新しい言語を覚えることはさほど苦ではなく、数ヶ月もあればほぼマスターできてしまいます。
よく誤解されるのですが、プログラミング言語を新しく習得する場合、初学者よりもある程度経験を積んだ30代くらいのエンジニアの方が習得期間は短くなります。
なぜなら「プログラミング的な考え」はどの言語でも共通で、またプログラミング固有の文法もある程度統一されているからです。
初心者のうちは全て体当たりで覚えていくので、暗闇の中で壁にゴツゴツぶつかりながら、手探りでゴールを探しているような状態ですが、熟練するとコツを覚えるので、壁にぶつかる回数を減らしてゴールにたどり着けるのです。

しかしプログラマーもアスリートと同じように、いつしか衰えが来ます。
年を取れば誰しも保守的になって新たなトレンドに付いてこれなくなったり、長時間働くだけの体力がなくなったりと、どうしても若い人の成長速度に付いてこれなくなる時が訪れます。
アスリートでも20代半ばくらいの、肉体的な衰えは少なく、経験値を積んだ時が最もパフォーマンスが高いことは知られていますが、プログラマーも同じような認識です。
そして最初にどのプログラミングを選ぶかというのは、どのクラブチームに入って練習を始めるかというのと似ています。
昔強かったけど落ち目のクラブに入るよりも、これから伸びていくチームに入った方が成長できます。プログラミングも同様に、これから伸びる言語に触れた方が、これから活躍の機会が自ずと増えるので、自分自身も成長しやすいのです。
今伸びているのはPython、堅調なのはJavaScript
さて本題に入り、どのプログラミング言語を選ぶべきかということですが、今最も伸びているのは間違いなくPythonです。伸び方はブッチギリです。

Google傘下のDeepMindが作った囲碁プログラムが世界王者を破ったことが世界的な話題となりましたが、現在は「第3次AIブーム」と言われており、どこもかしこも「これからはAIだ」と息巻いています。
最近は加熱しすぎてAIでもないのにAIと謳った製品が登場するなどキナ臭くもなっていますが、それを考慮しても今後何十年に渡ってAIが身近な存在になるのは間違いないでしょう。
そしてAIのほとんどはPythonというプログラミング言語で作られています。
ですから「伸びている業界→AI→Python」という流れでPythonを学習するのが時代の流れに沿っています。私に限らず2018年現在において、一つ言語を挙げるとすれば多くの人がPythonを挙げるはずです。
もう少しぶっちゃけて言うと、初学者がこの先どのようなキャリアパスを歩むかはその人自身も分からないもので、学習しながら自分のやりたいことを探していくことになります。
常に価値観は刷新されていくので、「こうでなくてはならない」という固定概念を持つのではなく、その時々で軌道修正していくので、最初から今後やるべきことを明確に決める必要はありません。さらに言うと決めたところで、最初から大したプログラムはつくれません。
ですから最もリスクが少なく、チャンスになりうるのが、”今最も伸びている言語“なのです。
試しに最初にPythonをやってみて、他の言語を触ってみたくなったら移っても問題ありません。でも最初にC言語に触れるより、Pythonを触れておけば、今後なにかの機会で武器になる可能性がグッと上がるのです。
だからPythonが良いのではないかというのが本音ベースでの考えです。
JavaScriptは絶対に廃れない稀有な言語
Pythonと並んでもう一つオススメの言語としてはJavaScriptです。というのもJavaScriptは絶対に廃れない言語だからです。

JavaScriptとはウェブブラウザに搭載されているプログラミング言語で、ウェブサイトを操作できる(実質的に)唯一の言語です。(その他の用途もありますが、一旦ここではウェブサイトのみに限定して説明します)
そもそもRubyやJavaなど他の言語になぜ流行り廃りがあるのかというと、これまでその言語が使われていた場面において、後発のプログラミング言語がより効率的に開発できるようになり、古い言語が代替されるからです。
言語やツールが日々切磋琢磨しながら、より効率的な手段が編み出されていく過程で、ある言語が廃れ、別の言語は隆盛していきます。
しかしウェブブラウザからは原則としてJavaScriptしか利用できず、そしてJavaScriptに変わる言語が登場することは少なくとも向こう10年は絶対に起きません。
JavaScriptを習得すると、それが無駄になることはまずないので、初学としてはオススメの言語なのです。
スマホが普及してからはアプリが主役になったため、ウェブサイトというジャンルはサブとしての立ち回りが続いていますが、今後「Progressive Web Apps」という分野で隆盛する可能性があります。
JavaScriptはPythonほど爆発的に伸びているわけではありませんが、抜群の安定性とそこそこの将来性を持っています。
余談ですが、JavaScriptは他言語との競争はないものの、安定したイメージとは裏腹に、内部では最も権力闘争が起きている言語です。ReactやVueやAngularといったライブラリが権力を争っていますが、初心者のうちはそれらに触れずソッとしておきましょう。
【ここまでの簡単なまとめ】
- PythonがAIブームの煽りを受けて世界的に猛烈なトレンドになっている。
- JavaScriptは寡占分野なので安定しており、今後も伸びる可能性がある。けど権力闘争が激しい。
2018年現在、世界的なトレンドを見るとPythonかJavaScriptがオススメというのが結論です。
どちらを選ぶべきかですが、最初はシンプルにやりたい方を選べば良いと思います。AIに興味があればPython、ウェブサイトに興味があればJavaScriptという選択で構いません。
手っ取り早く習得したいならスクールに通おう
ではJavaScriptとPythonのいずれかを学習すると決めたら、個人的にはプログラミングスクールにさっさと入ってしまった方が良いと思います。
先ほども例に出しましたが、プログラミング学習は暗闇の中、壁に頭をぶつけながら手探りでゴールにたどりつくようなもので、その過程でストレスを感じることが多々あります。
プログラミングスクールはガイドであり、「こうしたら良いよ」と天からアドバイスをくれるので、それに従えば壁にぶつける回数を減らしてゴールすることができます。
プログラミング学習の一番の懸念は挫折することで、独学で始めると上手くいかずに「自分には才能がない」と諦めてしまう人がとても多いです。でもスクールに通えば無用な試行錯誤の回数を減らせるので、挫折する可能性をグッと減らせます。
今回のプログラミングのトレンドの話でも、初心者にとっては知らないことばかりだったと思います。現役エンジニアにとっては当たり前のことでも、初学者で知識がないと誤った選択をしがちなので、プログラミング学習を始める上でガイドは必要です。
料金は10万円~15万円とそこそこの値段はしますが、今後一生モノのキャリアにつながる上に、現役エンジニアにメンタリングしてもらえるので、十分すぎるほど払う価値はあるでしょう。
具体的にどのスクールを選べばよいかについては別記事で詳しく紹介する予定ですが、最短距離で学習を進めたいのならスクールはマストだと思います。
ここまで長々とした説明になりましたが、初学者のプログラミング選びについては以上になります。
プログラミングはとにかく流行り廃りが激しいので、自分がどの言語を学習するのかは初学者に限らず、現役エンジニアにとっても常に付きまとう課題です。
伸びている分野を学習しておけばリスクを抑えつつ、リターンを最大化できますので、結論としてはPythonかJavaScriptがオススメです。
皆さんにとって良い気付きとなれば幸いです。