Ryukalice

Railsしかできない初学者を応援する話

2017-05-14

読んだ
Railsしかできない奴はいつまで経ってもRailsしかできない | Qiita

この記事に関しては「Railsしかできない奴は他の要素技術を受け入れない」みたいな論調で書かれているが、実態は恐らく「他の要素技術を受け入れないからRailsしかできない奴」が存在してしまっているだけで、Railsから始めたエンジニアは母数が多いから目立ってるだけだと思っている。

それは別として、やはり Ruby on Rails しかできないエンジニアを叩く人々は多いし、増加傾向にあるとは思うけど、僕はその声をあまりよく思っていない。

いいじゃん、仕事があるんだから

Django も Phoenix もまだあんまり仕事がないでしょう?市場に仕事が溢れかえる前に技術習得を終わらせられれば甘い汁が吸えるのは事実だけど、そこには少ないドキュメントや情報を手がかりに触ってみる勇気と時間が必要だし、習得したものの全然仕事にありつけないリスクだって付きまとう。

いくら Rails がオワコンだと言われようとも、仕事はまだ山のようにある。今から何かサクッと web サービス立ち上げようか、ってなったときに Rails 以外を選択するのは勇気がいるし、エンジニアの母数が少なければリスクも高いので、結局 Rails はまだしばらく使われ続ける。

「終わりかけ」ならまだ余裕

Rails がオワコンなのは事実だと思うけど、あくまで「終わりかけ」のコンテンツであって、終わったわけではない。IT 業界は技術の移り変わりが早いなんて言われるけど、急に市場から仕事が消え去るなんてことはない。新たな web アプリケーションフレームワークが注目され始めて、エンジニアの母数が増えて、ドキュメントが充実し始めて、そのことにビジネス屋さんが気付いて、皆が Rails 以外を選択する雰囲気になるまでには、膨大な時間がかかる。

その膨大な時間があれば、今「Rails しかできない奴」と言われている人々は、他の要素技術に興味が沸いたり、所属する組織や市場の影響で、内発的か外発的かはともかく別の技術を触ることになっていると思う。そして、今度はその人たちが、その新技術しか使えない人々を貶す記事をインターネットの海に放出するわけだ。

市場を移るのは簡単

スタンダードな web アプリケーション開発のフレームワークが浸透するまでに、仮に半年かかったとして(実際はもっともっとかかると思っているけど)、普通のエンジニアは新たな技術を学ぶのに、何ヶ月もかからないはずだ。元々 Rails で web やプログラミングのスキルを有しているのであれば、その頃には充実しているであろうチュートリアルを通して、自分で簡単なタスク管理アプリかグループウェアでも作ってみるのに1週間もかからないだろう。

その頃には仕事もたくさん出回っているのだろうから、食いっぱぐれたりはしないだろう。最悪、Rails からの replace 案件が山のように増えているだろうから、その仕事をやればいい。その仕事が出回っていないのなら、まだ Rails が現役ってことなので、まだ Rails で食えるってことだ。

仮にその流れにも気付かなくて、気が付いたら Rails の仕事なくなっちゃってました、という事態に陥ったとしても、気付いた時点で学習すれば余裕で間に合う。Rails に代わる技術なのであれば、学習コストも低くて生産性も高いはずだ。4月(先月)から未経験で Rails を始めてバリバリ仕事をして稼いでいる若者もたくさんいるのだから、経験者であればその何倍ものアドバンテージを得られるはずだ。

前に誰かが Twitter で「フロントエンドの動向が早いって人はフロントエンド畑にいないだけで、フロントエンド畑の人から見るとバックエンドの動向は早いよ。つまり自分がいない畑の動向が早く見えるだけで、実際にはそんなに早くない」みたいなことを言っていたけど、本当にその通りだと思っていて、その畑にいれば急に後から着いていけないほど追いていかれるなんてことは、ないのではないか。

最新技術に振り回される苦痛

技術者は最新技術を追いかけないと死ぬ、みたいなことを言いたがる人は多いけど、大丈夫、死なない。逆に追いかけて振り回されることで死にそうになることはある。僕も1, 2年ぐらい前は、フロントエンド周りで次々と誕生しては死んでいくライブラリやフレームワークを手当たり次第に触っていた時期があったが、はっきり言って時間の無駄だった。その時は楽しかったけど、今それが役に立っているかと言われると微妙で、去年の中頃ぐらいに仮装 DOM のパラダイムを学ぶぐらいで十分だったな、という気がしている。つまり最新技術を追うには、時間を無駄にするかもしれないと言うリスクが付きまとうのだ。

jQuery みたいに急速にスタンダードな技術のオワコン化が加速したとしても、今ほとんどのフロント関係のエンジニアが React を書けるように、世の中が変われば自分も変わるので安心していいと思う。仮に変われなかったとしても、前述したように変わることにコストはかからないので安心して良いと思う。エンジニアリングでお金持ちになりたい!とか、新しい要素技術で一発当てたい!とか考えているわけではなく、月収20〜100万ぐらいの価格帯の普通の web エンジニアであれば、それぐらいの心構え(今、一番食える技術を追いかける心構え)で問題ないと思うし、それぐらいの心構えでは食えないような間口の狭い業界ではあってほしくないと思う。

「今」一番仕事の多い技術に投資することを恐れるな

プログラミング3年生ぐらいで「Rails しかできません」というと、よほど技術力がない限り世間の評価は冷たいと思うが、プログラミング始めて1,2年で Rails と付属する周りの技術が扱えれば、十分だと僕は思う。勿論他の要素技術に興味があるなら学ぶべきだし、Ruby, Rails から離れたパラダイムの技術を学ぶことは大きなメリットになるが、Rails しかできない人を貶すような記事を読んで嫌々新しい技術に触り出すのは、とても悲しいことだと思う。

そもそも、そんなことを言ってエンジニアを煽る人の9割以上は技術に明るくない人々だ。技術を追いかけられなくなったけど追いかけているフリをしたい経営者や技術講師等のポジショントークか、ようやく扱える技術が両手で数えられるぐらいになって感動し、初学者にマウントを取りたくなっちゃった人のマスターベーションだ。これは豆知識だが、そこを見極める簡単な方法があって、GitHub のアカウントを求めると聞いてもいない言い訳をつらつらと並べる人は黒だ。

話が外れたが、自分の好きな技術が全く流行らなくて苦労している人より、自分の好きな技術が需要のど真ん中な人の方が楽だし幸せなので、最新技術を追いかけていなければ食っていけないとか、最低いくつの言語を使いこなせないエンジニアは食っていけないとか、そんな言葉は跳ね飛ばして、今一番楽しくてお金になる(求められている)技術に投資することを恐れないでほしい。