猫Rails

ねこー🐈

よわよわRailsエンジニアのジレンマ

こんにちは。よわよわRailsエンジニア愛知代表のshitaです。

最近フィヨルドさんやmofmofさんのミートアップで、駆け出しエンジニアの方達に就職の相談をいただくことがありました。

自分は未だによわよわなのですが、駆け出しエンジニアの頃は今よりもっとよわよわでした。その時にRails友達と話していた悩みを思い出したのでここで共有させてください。

よわよわRailsエンジニアのジレンマ

よわよわRailsエンジニアはよわよわな現場にしか入れず技術力が上がらないので、ずっとよわよわな現場から脱出できない。

  1. つよつよな現場はつよつよRailsエンジニアを求めるため、よわよわRailsエンジニアはよわよわな現場に入るしかない
  2. しかしよわよわな現場では技術力を上げるのが難しい
  3. 技術力が上がらないので、よわよわエンジニアはつよつよな現場に入ることができず、ずっとよわよわな現場から脱出できない

そしてよわよわな現場はお賃金が低くブラックなことが多いため、徐々に精神的に追い込まれていきます。

『よわよわな現場では技術力を上げるのが難しい』というのがポイントです。

(ここで言うつよつよな現場は、いわゆる『ふつうの』Railsアプリケーション開発 をやっている現場を指します。Rails開発で当たり前とされていることができている現場です。テストが書かれているかどうかが1つ分かれ目かと思います。まともなテストを書くにはまともな設計が必要なので、よわよわな現場はテストを書けません。)

よわよわな現場では技術力を上げるのが難しい

よわよわな現場でも技術力を上げることは不可能ではないですが、実際にはなかなか難しいのが現実です。理由は以下のとおりです。

つよつよなコードに触れられない

つよつよな現場にはつよつよなコードがあります。ちゃんとDB設計/クラス設計/URL設計等が行われていて、Ruby/Railsの流儀に則っていて、Fatコントローラー/Fatモデルではない、メンテナブルでリーダブルなコードがあります。毎日つよつよなコードに触れるのは、毎日Railsのベストプラクティスを学んでいるようなものです。ただコードに触れているだけで、自然と良い書き方が身についていきます。

一方よわよわな現場にはよわよわなコードがあります。テストコードはなく、Restfulではなく、ドメインロジックはモデルに書かれず、コントローラーは1000行を超えます。駆け出しエンジニアの場合は経験が浅いので、Railsはこんな感じなのかと思ってしまいます。毎日よわよわなコードに触れるのは、毎日Railsのバッドプラクティスを正しい書き方として学んでいるようなものです。ただコードに触れているだけで、自然と悪い書き方が身についていきます。

コードレビューを受けられない

つよつよな現場ではコードレビューが受けられます。コードレビューはスキルアップの場でもあります。良くないコードを書いてしまった場合でもコードレビューで指摘してもらえるので、コードレビューのたびに新しい学びを得られます。

一方よわよわな現場にはコードレビューはありません。良くないコードを書いても、それが良くないコードだと気づくことはありません。

モダンな技術に触れられない

つよつよな現場はモダンな技術を採用しています。つよつよな現場には技術好きな人達が集まるため、新しい技術についての知見も共有され、プロジェクトにマッチするようなら自然と採用されていきます。

一方よわよわな現場はレガシーな技術が使われ続けます。選択の結果あえてレガシーな技術を採用したのなら良いのですが、よわよわな現場はそもそもモダンな技術を知らないし関心がありません。CoffeeScriptjQueryを使い続けます。その結果、つよつよな現場で求められるスキルセットと自分のスキルセットの間でズレが生じてきてます。

勉強時間を確保できない

つよつよな現場はホワイトです。つよつよな現場はつよつよなRailsエンジニアを採用するために働きやすい環境づくりに力を入れています。今までお世話になったつよつよな現場では当たり前のように残業はありませんでした。仕事は早々に終わるので、業務後に自己研鑽に時間を使えます。というか、つよつよな現場では業務時間中にも勉強できます。昔お世話になった会社では業務時間中に普通に勉強会が開かれてて、目ん玉飛び出るくらいびっくりしたのを覚えています。当時の自分は勉強は業務時間外にやるものだと思っていたのですが、どうもつよつよな現場ではあたりまえのことのようです。

一方よわよわな現場はブラックです。当たり前のように残業があるため、新しい技術の勉強にはなかなか時間が割けません。結果、更新されないままの手持ちの知識でなんとかしようとするため無理のある設計/実装になっていきます。メンテナンス性は考慮されず、コードはさらに地獄と化していき、プロジェクトは炎上し、さらに勉強時間を確保するのが難しくなっていきます。あとこちらがより深刻なのですが、ブラックなので精神的に摩耗してしまい、家に帰っても勉強する気力が残っていません。

よわよわな現場を脱出するには?

よわよわな現場を脱出するにはつよつよな現場で経験を積むのが一番です。すでに述べたとおり普通にはつよつよな現場には入れませんが、こんな感じで一工夫すれば可能性が出てくるのかなーと思います。

つよつよな現場にアルバイトで入る

これは自分がとった方法です。

会社としては正社員を採用するよりアルバイトを採用するほうが敷居が低いです。そのため、とりあえずアルバイトとしてつよつよな現場に入って経験を積むのはありだと思います。開発経験としては正社員と遜色のない経験を積めますし、そのまま正社員に誘われることもあります。

フィヨルドブートキャンプに参加する

これも自分がとった方法です。

フィヨルドブートキャンプはプログラミングスクールです。ただ、他のプログラミングスクールとはだいぶ違っていて、単純なRailsの知識を教えるのではなく実際につよつよな現場で働けるだけの現場力を身につけてもらうことにフォーカスしています。

昔記事を書いたので、詳しくはこちらをどうぞ。

nekorails.hatenablog.com

メンターの@komagataさん@machidaさん達と一緒にOSSRailsアプリケーションを開発をするのですが、これはつよつよな現場そのものです。がっつりつよつよな現場の経験を積めます。

駆け出しエンジニアを募集しているつよつよな会社を探す

つよつよな会社は、新卒を除いてあんまり未経験者を募集していません。

しかし、つよつよな会社でも駆け出しエンジニアを積極的に募集している場合があります。そういう会社は研修もしっかりしていて、まだまだよわよわな駆け出しエンジニアを受け入れる体制ができているのかなーと想像します。

例えば自分がフリーランスとしてお世話になっているmofmofさんは、実務未経験/実務経験が浅いRailsエンジニアの方達に向けて定期的にミートアップを開いています。

www.wantedly.com

その会社がつよつよかどうかは、実際に現場で働いているエンジニアさん達に聞くのが良いと思います。知り合いのエンジニアに聞くか、勉強会の懇親会などで聞けば教えてもらえるかなーと思います。

他の方法

あとはOSS活動も良いと思うのですが、OSS活動できる時点で既によわよわではないかなーと。

勉強会に行くのはつよつよな現場のつよつよな知見を得られて良いと思います。ただよわよわな現場だと基本炎上しているので、その時間と体力を捻出するのがけっこう難しかったりします。

まとめ

最近はプログラミングスクールが増えて駆け出しエンジニアが大量に増えたため、パイの奪い合いが激しくなって、駆け出しエンジニアの就活がより厳しくなったと聞きます。そのため仕方なくよわよわな現場に入る方達が増えて、その方達がこのジレンマから抜け出せなくなってしまうのではないかと心配です。

優秀な人であればよわよわな現場に行ったとしても勝手に成長しますし、むしろ現場を改善していけるんだろうと思います。しかし、自分も含めて多くの駆け出しエンジニアはまだまだよわよわです。それはとても難しいことです。

駆け出しにエンジニアとってよわよわな現場を避けることはとても大切なことだと思います。よわよわな現場に入ってしまい、心をやられてしまったという話をいくつか聞いたことがあります。せっかく勉強してきた結果がそれでは悲しすぎます。

駆け出しエンジニアのみなさんの就職が上手くいくことを心より願います🐈