Rubyの求人情報を調べてみるとPerlやPHPに比べて案件の数は少ない傾向にあることがわかります。
Ruby案件の数は増加傾向にあるものの、PerlやPHPに比べて学習コストが高いためエンジニアの数は限られます。そのためエンジニア需要に対して供給が少なく、高単価になりやすい傾向にあります。
今回はRubyエンジニアの方に向けて、求人情報の特徴について解説していきます。
Ruby案件の求人の特徴について
Rubyは言語単体でも使えますが、フレームワークの「ruby on rails」を使うことが基本となっています。
「ruby on rails」の基本理念は「同じことを繰り返さない」です。
フレームワークは「枠」であり、「枠」とはアプリケーションを作るために同じような処理を記述しなくてすむよう一定の枠を提供することで、「同じことを繰り返さない」という基本理念につながります。
Rubyは自由度が高いのですが、それに一定の「枠」を作って記述や構造を一定にすることで品質を保ちながら効率的に開発が行えるようになります。
そのため実際のアルゴリズムやビジネスロジック、業務で必要なプログラムに集中できます。
また、「ruby on rails」の他にもRubyのフレームワークは存在します。
ただ「ruby on rails」が事実上の標準フレームワークで広範囲をカバーしているため、その他のフレームワークはシンプルで軽量なものが多いです。
単純な用途には他のフレームワークを、本格的な開発には「ruby on rails」をという使い分けができているようです。
このことから、Rubyのフレームワークの選定は「ruby on rails」が基本で間違いないでしょう。
Rubyは主にWeb業界でサービスを行うために使用されます。特に「ruby on rails」のようなフルスタックフレームワークは規模の小さい小規模システムで恩恵が受けられます。
なぜなら、大規模システムでは製作するプログラムが大きくなるので「フレームワーク」の規模を大きく超えるからです。そのためRubyが採用されるのがスタートアップ業界の求人が多いという特徴があり、働き方は比較的自由で環境がいいといえるでしょう。
Rubyの市場について
RubyはもともとWebサービスに使われる言語です。今までWebサービスで主流だったPerlやPHPに比較すると案件そのものの絶対数はまだ少ないです。
PerlなどがWebの黎明期の80年代に開発されたスクリプト言語に対して、Rubyは90年代半ばに登場し、その後の普及もPerlやPHPに比べて遅かったため過去も含めた採用例はあまり多くはありません。
ただ、近年Rubyを採用している企業は増加傾向にあり、反面PerlやPHPは減少傾向にあります。
現在、RubyはPerlやPHPと違ってプロジェクト案件の需要に対しての募集が少ないため、
採用されるエンジニアの単価は高めとなります。そして、開発実績がマッチする場合は特に高単価になる傾向が高いです。
またRubyを採用する企業は、スタートアップ企業などに多くみられます。
特にHerokuがRubyで記述されていることもあって、Rubyとの親和性も高く、初期コストを抑えたいと考えているスタートアップ企業には最適といえるでしょう。そのため自社開発が多く客先常駐型は少ないです。
また、働き方については他のデザイナーやエンジニアとコミュニケーションをとりながら開発を進めることが多いため、在宅案件はあるにしても非常に少ないです。
客先常駐型はセキュリティの問題などからもともと在宅、持ち帰り案件は少ないのですが、
自社開発が多いので客先常駐型より関わる企業、関係者も少なく一定の期間実務を行って信頼を得た段階で、在宅をもちかければ承諾される余地があるといえるでしょう。
まだ、案件は少なめといっても増加傾向にあり、将来性が高い言語で今はエンジニアも少ないとなれば今が狙い目といえるでしょう。
Rubyの求人で高案件の仕事をするために必要なこと
Rubyはフレームワークの「ruby on rails」を使えば一通りのことはできます。
ただ、基本は「ruby on rails」で可能な機能を自分で実装できるというのが出発点です。
そのためここではフレームワーク抜きでお話しします。
Rubyは日本で生まれたプログラミング言語だけあって日本語資料は充実しています。
また、案件も増加傾向にあるといえるでしょう。
Rubyを使うエンジニアも増えているので、将来的には供給が多くなる可能性もあります。
そこで、他のエンジニアとの差別化が必要となります。
Rubyはもともと「プログラマーは賢い」という理想のもとに作られた言語です。
また、Rubyは最初からオブジェクト志向で作られた言語なので、当然オブジェクト志向を習得していないといけません。コード記述の自由度が高いので、開発や修正が容易です。
これらがメリットなのですが、同時にデメリットにもなります。
オブジェクト志向理解自体が難しいプログラマーもそもそも存在し、コードの記述の自由度が高いのはプログラマーの技術レベルや癖に応じて書き方が代わり品質を保てなくなる危険性があるといえるでしょう。
工業製品としては一定の品質が担保されている必要があります。
ソースコードの品質を保つためにもオブジェクト志向の完全理解やプログラムの設計など概念の理解から保守性の高いプログラムの構築まで学んだスキルで高い実装技術が必要です。
また、実際の開発のためにフレームワークの選定やコードの静的解析、ソースコードレビューなどを通じてコードを一定の品質に担保する仕組み作りが重要なので、それらを実現するための知識と経験必要です。
こういった基礎知識や経験に通じていれば「Ruby」本来の良さである自由度を生かしたプログラムが作成できるでしょう。
Rubyは需要と供給の関係で考えても高単価を期待できますし、自由度が高い反面、基礎力が大きく問われますので経験を積むことで、さらなる高みを目指すことができます。