これからプログラミングを始めようと考えている人は、どのプログラミング言語から入ったらいいか、悩むと思います。
Web系、アプリ系、あるいは、組み込み系など、開発対象によって、言語の選択も変わってきます。
プログラミングスクールや企業の研修などでは、まず、有名言語の習得を勧められます。
または、入門書で、習得が容易な言語から入る方も、多いでしょう。
上記の事情を勘案して、プログラマーのキャリアがスタートすると、往々にして、皆、同じような言語を身につけたキャリアパスを進むことになります。
Web系ならば、PHPやJavaといった言語経験のあるプログラマーが量産されるわけです。
有名言語だけでなく、少しだけマイナー言語も、合わせて身につける事を、オススメします。
1. 人気言語の弊害
例えば、案件掲載サイトで、Web系の案件を探すと、非常に多くの、PHPやJavaの案件が目に止まります。
案件数が多いという事は、つまり、それだけ受注対象とする仕事の数が多い事を意味します。
だから、PHPやJavaといった案件数の多い言語スキルを、身につけようとする思考は、ある種、当然であります。
但し、昨今では、前述の通り、PHPやJavaなどの有名言語のプログラマーが量産されています。
同じようなスキルを持つエンジニアが量産されれば、いくら案件数がたくさんあったとしても、案件に対する競争が激化していきます。
それについては、クラウドワークスやランサーズで、システム開発案件を確認してみると分かりやすいでしょう。
「PHP」や「LAMP」と言ったキーワードの入っている案件に、数十人以上の応募が殺到しています。
これは、他の言語に比べて、突出した応募数です。
「PHP」や「LAMP」は、プログラム初学者にとっても、習得が容易な言語の代表格です。
折角、PHPを覚えても、これだけ応募者数、つまり、競争相手が多いと、受注する事は簡単ではありません。
それどころか、応募者多寡によって、案件の単価が下がっていくという流れになるのは必然です。
なぜなら、特段“あなた“に作業をやって頂かなくても、代わりなら、いくらでもいるからです。
2. 少しマイナー系言語がオススメな理由(体験談含む)
そこで、有名言語よりも、少しマイナー言語を習得する事をオススメするのです。
「少しマイナーな言語」という表現は、全く需要のない言語ではなく、有名言語に比べて、少し需要が落ちる程度の言語を指します。
筆者は、PHPやJavaなどを得意とする、ごく一般的なエンジニアです。
引き受ける案件も、当然、PHPやJavaが多数を占めます。
ただ、あるプロジェクトで、Scalaという言語に関わる機会がありました。
その際、私は、Scalaの業務経験は無かったのですが、Javaの経験が十分あった為、依頼を頂きました。
そして、このScala案件に関して、条件交渉の段になると、自分の想定していたよりかなり良い条件を提示頂きました。
PHPやJavaなどの、エンジニア市場において、習得者数が多い言語では、買い叩かれ、単価が下がっていきます。
一方で、
エンジニア市場において、習得者数が少ない言語は、クライアント側にとって、エンジニアの確保が困難、という事情があります。
それゆえに、エンジニア側が有利な状況で、条件を進めていくことが可能なのです。
この「少しマイナーな言語」によって、オイシイ思いをされたというエンジニアの存在は、よく耳にします。
3. まとめ
・人気の言語は、案件数も多いが、習得しているエンジニアも多い為、受注競争が激しくなる。受注志望者が多いと、案件の単価も下がっていく。つまり、安い単価の案件を、多くのエンジニアで奪い合う構図になってしまう。
・人気言語よりも、少し案件数の劣る、マイナー系の言語の案件では、先ず、習得しているエンジニアが少ない為、クライアントや仲介が、貴重な存在として扱ってくれる。交渉において、高単価や良い稼働条件が獲得しやすい。
・人気言語では、その他大勢のエンジニアとの差別化が難しい。少しマイナー言語では、その他大勢のエンジニアとの差別化が図れて、エンジニア市場において、他者と異なる、高い価値を提示できる。
PHPやJavaなどの有名言語では、SESや派遣で働くうえで、クライアントや仲介からは、どこにでもいる、群衆の中の一人のようにしか見られません。
一方で、Scalaなどの少しマイナーな言語経験があると、なかなか見つからない人材という事で、クライアントや仲介の目の色が変わるのです。
意外とオイシイ思いが出来ると思いますよ。