こんにちは、フリーランスエンジニアのてぃすです。
エンジニア・プログラマは年収1000万を現実的に目指せる職業として最近特に注目を集めている職業です。
今いる業界の将来性に不安を感じ脱出してきた人たちも、どんどんエンジニア・プログラマという働き方に集結しています。
ある程度エンジニア・プログラマという職業について調べていると、どのプログラミング言語を習得すればいいのか、という疑問が出てくるタイミングがあると思います。
どのプログラミング言語を選べばいいか、という疑問について調べてみると最近ではJava・Ruby・Pythonについて言及されていることが多いでしょう。
特にJavaはプログラミング言語の中では最も募集が多く、働くために選択する言語としてオススメされているのをよく見かけます。実際多くのシステム会社の新入社員研修でもJavaが選択されていることは非常に多いです。
しかしJavaと言う選択肢は貴方の望むエンジニアとしての働き方とは異なる可能性が高いです。
僕自身、Javaを使った現場で2年ほど働いたのち、Rubyの現場に移動しましたが、同じプログラマという職業であるにも関わらず、まるで別業界のような働き方・文化の違いを感じました。
Javaについて
案件の数で言えばJavaは他のプログラミング言語に比べて飛び抜けて多いです。
特に公共事業や銀行・保険、大企業の機関システム、社内システムの多くがJavaを使って構築されています。
で、それだけ大きなプロジェクトとなると1社のリソースで作ることは当然難しく、人員確保に外部に頼るケースが多くなります。
そんな時に仲介を務める企業の中に存在する人売り派遣企業。こいつが厄介です。
人売り派遣企業の存在
Javaで若手や未経験を集めている会社って、人売り派遣企業が非常に多いです。
ここでいう人売り派遣企業とは、システム開発会社として喧伝し、正社員として自社で雇用しながら、実際の業務は客先で行わせる企業のことです。
社員数の割に本社の規模が小さかったり、月1回の帰社日ありとか採用情報に記載されていたら要注意です。
低い報酬・広がらないスキル
このような人売り派遣企業は全てではありませんが、3次受け・4次受けなどが当たり前に存在しており、それによって報酬・待遇が理不尽なレベルで低いケースがよくあります。
僕自身そういった人売り派遣企業の正社員を退職後、エンジニア派遣を使用して派遣社員となった経験がありますが、その時に給与が2倍近く上がってますからね。
https://tisnote.com/persol-tech-haken/
派遣社員の半分の待遇で正社員を働かせているとか正気の沙汰じゃありません。
さらには僕自身も経験しましたが、他の案件で使えるような技術も学べない汎用性のない技術を使用する現場に、数年放っておかれるということもザラにあります。エンジニアという働き方のメリットが消し飛んじゃいます。
大規模案件に関われることはメリット
かといってJavaを選択すること自体が間違っているとはおもいません。大きな客先で作業できること自体はメリットとなります。
エンジニアとして面接を受けていると以前のプロジェクトの規模を尋ねられることがよくありますからね。
更にはそういうところでプロジェクトマネージャーなどの上流工程に関わることができれば年収・市場価値はぶち上がります。
ただ上で話したようなマイナスを被る可能性が高いということを気に留めておかないと搾取されるし消耗するし、お先真っ暗になりかねないよ、ということです。
多言語との比較
自分はまさに人売り派遣企業の正社員としてJavaを使って働いていました。
その後派遣社員としてRubyの開発案件に参加しましたが、そこで感じたのは業界に入る前に想像していたエンジニアの働き方に近いな、という感想でした。
かなりの数の現場を面談や訪問で出向きましたが、どこもエンジニアは私服だったし、雰囲気がフランクであったり。そしてみんな意見を交換しながら、活き活きと働いている印象が強かったです。
僕の知っているJavaの現場の多くではスーツ姿で長机にぎゅうぎゅうに詰め込まれて配置され、指示されたコードだけを黙々と書くというところがほとんどでした。同じ職業とは思えませんね。
代替案としてのRuby
僕は現在Rubyをメインとしてプログラマをやっていますので、Rubyに主軸を置いた話になります。
一般的に初心者でも学びやすい言語ですので、独学でもコンスタントに働きながら努力することができれば、現実的にエンジニアとしての就業・他言語からの移行も可能です。
もし独学が厳しいと感じた場合でもRubyを題材としているプログラミングスクールは非常に多いので、そういったところの助けを借りるのもありでしょう。
さらにRubyを使用している企業はベンチャーなど柔軟な働き方を尊重しているところも多いため、リモート勤務や時短勤務を実現できる可能性が高いです。
以下の記事では本格的にRubyを学びたい人のためのプログラミングスクールを紹介しておりますので、興味がある方はぜひ見てみてください。
https://tisnote.com/potepan-camp/
結論
個人的な経験や周りの話からJavaを非難するような記事となってしまいましたが、Javaを習得しておけばエンジニアとして生活していくのに困ることはなくなるでしょう。
基本的に1つの言語を習得すれば別言語に転身をすることは難しいことではありません。Javaのようなベーシックな言語であればなおさらです。
とはいえエンジニアの自由でモダンな働き方を選んだ人がJavaを使ったサラリーマン的な働き方を求める現場に参加して、「聞いていた話と違うじゃないか」と感じてしまうことを危惧してこのような記事を書いてみました。
何十もの現場を体験してきたという訳ではないので、偏った見方と感じる人もいるかとは思いますが、ここで書いた意見は紛れもない事実のうちの1つです。
あなたのキャリア構築の一助として活用してもらえれば嬉しく思います。
閲覧いただき、ありがとうございました。