エンジニアキャリアの歩き方
【言語別】Python、JavaScript、Goの将来性と学習順序
どれが将来安泰か、を先に決めようとすると決まらない
最初の言語を選ぶとき、多くの人が将来性で比べようとします。ところが、これは調べても答えが出ません。10 年後にどの言語が伸びているかは誰にも分からず、断言している記事があっても、根拠は書き手の予想です。
比べる軸を変えると、決められるようになります。将来を当てにいくのをやめて、今のところ観測できるものだけで並べます。使えるのは、求人にどのくらい出てくるか、最初の一歩がどのくらい重いか、その言語の周りにどんな仕事が広がっているか、詰まったときに情報が見つかるか、の 4 つです。
観測できる軸だけで、3 つを並べてみる
ここでは JavaScript、Python、Go を例にします。どれも現時点で求人が継続して出ており、今から学んで無駄になる、という性質のものではありません。違うのは、その先につながる仕事の種類です。
| 見る軸 | JavaScript | Python | Go |
|---|---|---|---|
| 求人での出方 | Web の画面側では前提として並ぶことが多い | データ処理や自動化の募集で目立つ | 出る会社は限られるが、募集は継続している |
| 最初の一歩 | ブラウザだけで動かせる | 文法が素直で書き始めが軽い | 文法は少ないが、扱う概念は先に出てくる |
| 周りに広がる仕事 | 画面、サーバー、アプリ開発 | 分析、機械学習、業務の自動化 | 大量の処理を捌く基盤、内部の仕組み |
| 日本語の情報 | 入門から実務まで多い | 入門から実務まで多い | 入門は少なめ、実務の記事は増えている |
この表から言えるのは優劣ではなく、入り口の広さと、その先の分岐の向きが違うということだけです。求人の出方も業種や地域で変わるので、住んでいる場所の求人を実際に検索して、自分の目で確かめたほうが確かです。
一本目は、続く方を選ぶ
どれを選んでも学べるなら、決め手になるのは続くかどうかです。そして続きやすさを決めるのは、作りたいものが手元にあるかどうかです。
画面を触って結果が見えるほうが手応えを感じるなら、Web の側から入るのが自然です。手元のデータを整理したい、繰り返している作業を自動化したいという動機があるなら、そちらの用途に強い言語から入ると、最初の成功体験が早く来ます。動機がはっきりしない場合は、身の回りで実際に困っていることを一つ探すところから始めても構いません。
避けたいのは、言語を先に決めて、その後で作るものを探す順番です。この順番だと、最初の題材が練習問題になりやすく、動いた後に続ける理由が残りません。
二本目は、一本目が決めてくれる
一本目をある程度まで進めると、二本目は自然に決まります。画面側から入った人は、データを保存する必要が出てサーバー側の言語に触れることになります。自動化から入った人は、作ったものを人に使ってもらうために画面が要るようになります。
このとき、二本目の習得は一本目よりずっと速く進みます。条件分岐も繰り返しも例外の扱いも、考え方はほとんど共通で、書き方が違うだけだからです。だから最初の一本に時間をかける価値があり、同時に、その一本を後悔する必要もありません。乗り換えは、思っているよりずっと安く済みます。
復習ミニクイズ
「大規模システムの裏側」や「高単価な専門職」を目指すキャリア戦略において、Go言語が選ばれる理由とその学習の進め方として、レッスン内容に即したものはどれですか?