100名調査:Rubyエンジニアの楽しさと悩みを大解剖
2023.08.18
2024.01.22
約4分
こんにちは。Forkwell(フォークウェル)の赤川です。Rubyエンジニアの最新のキャリアについてもっとよく知るために、フォークウェルに登録するRuby実務経験があるエンジニア100名にアンケートを行ったので、その結果を公開します。アンケートでは、Ruby を書く楽しさを感じられる一方で、この先も Ruby でいいのだろうか、というキャリアに関する不安の声もみえました。2010年代に感じられていた Ruby のワクワク感、伸びている感が落ち着き、コミュニティ成熟化による若手離れ、上級者のマンネリ感などの健在化が見て取れます。Rubyエンジニアの方はもちろん、Rubyエンジニアを採用したい企業は、ぜひ参考にしてください。
Rubyエンジニアは、Rubyをどう思っているか
51%がこの先も Ruby を使い続けたい
他の言語との比較が待たれますが、2人に1人は使い続けたいと思っているのは、数ある言語の中でもかなり高いと感じます。
「Rubyをすすめたい?」56%がYesと回答
こちらでも半数以上のエンジニアが、Rubyを推奨したいと回答しました。
Ruby を薦めたい理由は?
初学者に最適
- 日本で生まれ日本語のリファレンスも充実している
- 簡単だから
- 学びやすく、Ruby ( Rails ) の知識のみでも動くプロダクトが作れるため
- ちょっとした自動化をやりたい人に向いている
- 環境を構築しやすい
- 未経験からエンジニアになりたい人に向いているコンパイルしなくても簡単に動かせるため
- 理解しやすいため
- とっつきやすい言語だから
- とりあえず何かプログラミングを学んで作りたいものがある人に勧めたい
- プログラミングを学び始めた人
- 多言語の経験がない人にも使いやすい
- 多言語に比べ簡単なため
- 駆け出しエンジニア向け
- 単純な内容を時間をかけて実装している研究者向け
- Cのように余計な事を考えなくてよく、構文もシンプルで標準ライブラリはドキュメントが完備されているから
|
Ruby そのものが楽しい
- コーディングしていて楽しい
- (1つ以上の言語を体得している人なら)柔軟な書き方ができる
- 趣味のプログラミング言語を探している人。開発が楽しいから
- Rubyコミュニティに良い人が多い
|
早く検証したい事業への適正
- 参入障壁が低いのでスタートアップの人に向いている
- スタートアップなら、MVPを作るのに適している
- スピード感ある開発が可能
|
仕事の数・質
- 自社開発企業が多い
- ある程度経験のあるエンジニアに多機能の開発が必要なプロジェクトに参画する方
- 広く使われているから
|
その他
- 変化の早すぎるJS界隈で苦労している人。あの界隈は疲弊し過ぎだと思います
- node とかで疲弊してる人
|
Rubyエンジニア特有の悩みは?
Rails ありき
- Ruby on Railsありきの言語になっている
- Rails以外の使い道が弱い気がする
- Rails以外のニーズが見当たらない
- Railsへの依存。パブリッククラウドでは使いにくい
- Railsのアップデート問題
- Railsが必須なケースが多すぎる
- Rails 以外のフレームワークに携わる機会が少ない
- Webサービス開発だとRailsだけしかないので、Railsに偏った知識になる
- 検索するとRailsの情報が優先され、Rubyそのものの使い方がなかなか出てこないことがある
- 大体Railsと一緒に扱われ、Railsの情報がRubyの言語仕様として紹介されたり、その逆もあるので生のRubyに触ったりSinatraを導入する時に混乱する。そしてActive Supportを単体で導入したりする
- 生のRubyをやっているとRailsにあるメソッドが恋しくなる
|
業界の勢い・コモデティ化
- 他の言語と比較優位性があまり無い
- 言語自体が衰退している気がする
- レガシーだとディスられがち
- node とかの新興勢力に刺されがち
- 時代遅れ感がある
- 若い人の参入が減ってきていて、頭でっかちになってしまいそう
- 最近景気が悪い
- (日本ではまだ大丈夫そうだけど)人気が落ちていて使い続けていいのかという不安
- マイナーなイメージ
- rubyオワコンという人たちがいる
- 世界的には普及していないところかな?
|
マンネリ化
- 小規模・中規模以上のアプリを作るときに、とりあえず Railsを使っておけば間違いないと考えがち。実際に助かることもあるが、マンネリ化する
- Golangなど他言語への移行の話がちらつき、学習のモチベーションが上がらない
- 型まわりとActiveRecordとRailsの古くささ
- 「Rubyを捨てるべきか」を悩むのはRubyエンジニア特有の悩みだと思う
- 成長の仕方わからん
|
自由度が高すぎる
- 個々人のクセが出やすい言語
- Rubyでなんでも出来てしまうのでカオスなコードに出会う事がある
- 人によって書き方が違うのでルール作りが必要
- 自由な言語なので、開発者によって可読性がとても低いコードになる
- カッコ有無で書き方が揺れること
|
Active Record などへの依存
- 意識していないとSQL書く機会が減る
- active recordにどっぷりすぎると、他言語のorマッパーでsqlを書かないといけないやつが非常に不便に感じる
- Active RecordのRoRを使ってるのにも関わらずDB設計のレベルが低いエンジニアが多い
- 簡単に開発できてしまうので、細かい理解がないままになってしまいがち
- Rails 任せになって根本的な部分の理解が浅いことが多い
|
採用の難しさ
- 人材確保が難しい
- Rubyエンジニア減少による採用難
- 採用が難しい
|
特性
- 環境構築が面倒。開発環境(IDE)の選択肢が少ない
- フルスタックに活躍するためにはRuby以外の学習や越境が必要
|
コミュニティが活発が故に
- RubyKaigiで太る
- コミュニティが充実しすぎていて、外から見たときに内輪盛り上がりしてるように見える
|
利用者の多さ故に
- Webの検索結果に不正確な情報がたくさん出てくる
- プログラミングスクールの教材に使われることが多く、転職において差別化しにくい
|
型がいけてない
- 型定義が羨ましく思えるときがある
- 他の静的型付け言語ではコンパイラが動作を保証してくれているところまでテストを書くことがほぼ必須であること
- 型がなくて制御しにくい
- 型が無いと読みづらいコードがたまにある
- 型定義への考え方
- 型がないこと。型があれば特に考えることもなく実装できることが多いですが、Rubyだと該当箇所に呼ばれる
- contextを考える必要があり、実装が非常に難しいです
- 型がしっかり決まっている言語(C言語やGo言語など)が取っつきにくい
|
それだけで完結しない
- Rubyで完結できず、適材適所で他の言語も使う必要がある
- データエンジニアとして作業をする場合は、結局Rubyだけでは解決しづらい(可能だがコストが高い)
|
なし
- 思い浮かばない
- わからない。Rubyしか知らないので
|
未分類
- Java を元々書いていたエンジニアが書く Ruby コードを見て頭を抱えがち
- 実行速度が遅い
- 言語が固定化されやすい
- ホームページとか見てると、コンテンツの中身よりもバックで使われている技術を推測してしまう
- Gemの依存問題
- 他の言語と比較される
- モンキーパッチのようにコードを追うのが大変
- 知らぬ間に知らない挙動がメソッドに
- RubyGemsのインストールが大変・遅い
- メソッドチェインで何事も解消しようとすること
- 便利なループ構文が多く、for文を書いたら負け、みたいな意識が芽生えてしまう
- ERBが汚くなりがち
- nullに違和感を感じるようになる
- 自分しか書けないことがよく起きる
- 今は無いかもしれないがバージョン問題
- 同機能の別名メソッドが多く、よく使うメソッドの別名に出会ったとき混乱する
(特にEnumeratorで)便利な関数が結構多いので、どれを使うかで悩む。
|
Rubyエンジニアの年収とキャリア
Ruby経験者の年収中央値は 650万円、10%以上が1000万円以上
今回の調査結果をみると、Ruby経験者は600万円台に一つのピークがあり、その前後に分布していることがわかります。
一方で、10人に1人が1000万円以上を稼いでおり、Rubyで高収入を得ることが珍しくないこともわかります。
Ruby経験者はこの1年で54万円の昇給(中央値30万円)
査定での昇給幅は、平均値であれば26万円/年で、月給換算では月2万円程度あがっていれば、人並みの査定結果であることがわかります。転職する場合には、100万円以上昇給した人が半数以上いることがわかり、Ruby経験者の需要と、採用する企業側の苦労が伺えます。
会社の選び方:若手は開発環境、中堅は自身の成長、ベテランは待遇を重視
各世代が現職を選ぶうえで重視したことトップスリーは以下です。
|
若手
(エンジニア経験3年未満) |
中堅
(エンジニア経験10年未満) |
ベテラン
(エンジニア経験10年以上) |
1位 |
開発技術・開発環境(60%) |
自身の成長可能性(66%) |
収入・待遇(47%) |
2位 |
リモートワーク(47%)
従業員の人柄・雰囲気(47%) |
開発技術・開発環境(49%) |
リモートワークの可否(44%) |
3位 |
ー |
収入・待遇(46%) |
開発技術・開発環境(36%) |
会社の選び方:企業規模・安定性・成長性 は重視されない!?
企業規模・安定性・成長性を求める Ruby経験者は、どの世代でもかなり少ない結果となりました。この結果からは、ある程度の技術さえあれば、会社が傾いてもなんとかなるだろう、という自信を感じます。Rubyをおすすめする声の中に「スタートアップにおいてMVPを作るなら Ruby」というコメントもあったように、不確実な状況下でも挑戦できるマインドが、Ruby経験者には備わっているのかもしれません。
この先使いたいプログラミング言語、一番人気はGo
Go と TypeScript が Ruby の50%を上回りました。もう少し掘り下げてみましょう。
今後使ってみたい言語、若手はGo、ベテランは Rust、Python も支持
ITエンジニア経験別に、どの言語を今後使ってみたいかを分類しました。
Goはどの世代からも支持されていることがわかります。世代間の差が特に出たのは Rust で、10年以上のエンジニアは、Rust の支持率が Ruby を上回っていることがわかります。一方、経験が浅い人にとって、 Rust はまだまだ敷居が高いようです。Ruby は若手からの支持が低いのも気になるところです。
Go人気はどこから??
Ruby経験者から最も支持を得たGo言語。Go言語の基礎や人気の秘密は、こちらの記事で解説しています、
受託開発の現場では回答が分散
所属企業の業態別にみても、特徴が分かれました。
Goをより指示していたのは、自社サービス企業で働くエンジニアであったことがわかりました。一方、受託開発・SES企業に属する Ruby経験者では、支持される言語がバラバラな結果となりました。
エンジニアとしてマンネリと向き合うために
アンケートでは、成長速度の鈍化、マンネリ感についてのコメントも見られました。こうした気持ちとどのように向き合うのがいいでしょうか?Ruby on Rails の作者であるDHH氏は、フォークウェルからのインタビューにこのように回答しています。
ある程度のレベルに達すると、何かを極める代償として成長スピードが遅くなることを受け入れる必要があります。しかしスピードは遅くとも成長は続きます。例えば私は 5年前、10年前よりも今現在の方がはるかに優れたプログラマーになっています。これは仕事を学習の機会と捉えて継続し、常にエゴをチェックしてきたからです。「20年間Rubyのプログラミングをしてきたからって何なんだ?」 新しい技術や方法などまだまだ学ぶことができるはずだと考えるのです。
引用元:DHHが語る 成長するエンジニアが実践する3つのルール
「何かを極める代償として成長スピードが遅くなることを受け入れる」これは Ruby に限らず、エンジニアとしての成長に停滞感を感じたときこそ思い出したい言葉です。
Rubyエンジニア100名アンケートで見えた Ruby の楽しさとキャリアの不安
アンケートでは、Ruby を書く楽しさを感じられる一方で、この先も Ruby でいいのだろうか、というキャリアに関する不安の声もみえました。2010年代に感じられていた Ruby のワクワク感、伸びている感が落ち着き、コミュニティ成熟化による若手離れ、上級者のマンネリ感などの健在化が見て取れます。Ruby界隈が盛り上がり続けるためには、こうしたエンジニアの声に、各社が応え続けることが大事です。また、若い世代を積極的に受け入れる姿勢は今後さらに重要になるでしょう。