isyumi_netブログ

isyumi_netがプログラミングのこととかを書くブログ

「フロントエンドエンジニアですか? サーバーサイドエンジニアですか?」と聞かれても困る

転職活動をしているとよく聞かれます。
果たしてこの質問にどの程度の意味があるのでしょうか。

前置き

もちろん、本人が好きでそう名乗っている場合は否定しません。
あるいは、特定のことがあまりにも得意すぎてしまう人が周りからそう呼ばれてしまうのはしょうがないと思います。

また、雇用の透明性の問題として、事前に求人する役割を明確にしておくべきだという流れはあり、
それに準じようとした結果そうなったのかもしれません。

とある求職者の気持ち

知らんがなって思います。

今までいくつかの会社で働きましたが、そんな役割分担はありませんでした。
また、『どちらをやりたいか』といった願望も特にありません。

確かに、その時によって主にサーバーを触っていた時期やフロントエンドを触っていた時期というのはあります。
しかし、それというのはその場にいる人や状況で決まったことであって、
特に僕のアイデンティティとは関係がありません。

そして、御社ではどのような人が働いていて、どんな技術的課題があるのかわからないので、僕が入った場合僕がどちらをやるべきなのか、こちらでは判断がつかないです。

正直言って、そういうのは出たとこ勝負で何とかなると思っています。
どうしても分類する必要があるということなら、そちらで好きに決めていただければいいのではないかと思います。

求人側の意見

実は、先日転職活動をしていた時にいろんな会社に聞きました。
ほとんどの会社が、「実はそんなに○○エンジニアをはっきり分けているわけではない」と言っていました。

いらないんじゃん。

先方が言うには、「求人サイトのフォームの都合でそうなっちゃう」ということでした。

他には「そこを明示しておかないと人が集まらない」という声もありました。
なるほど。
ということはそこを重要視するソフトウェアエンジニアも一定数いるということでしょう。

技術的な意見

まず、だいたい色んなことで共用できるスキルと、
特定のジャンルの技術というのはあります。

例えば、応用情報技術者試験の勉強をしましたとかは共用のスキルだと思います。
Reactが得意とかは特定の技術だと思います。

そして、そのどちらに投資しているか個人差はあると思います。

なので、


「ゼネラリストタイプですか? スペシャリストタイプですか?」
 スペシャリストです→「一番得意なのはなんですか?」

みたいな話の流れならいいかなと思います。

ただ傾向として、基礎を重視している人は特定の技術にも素早く対応できるし、
逆に特定のことに尖った経験がなければ基礎が積み上がっていかないということもあるでしょう。
だから、必ずしも対立軸でもないと思います。

また、例えば僕は競技プログラミングをしています。
僕はこれを基礎力の訓練だと思っています。
しかし、競プロを一芸だと思って練習している人もいます。
このように、何を持って基礎とするかが曖昧なので明快な話ではないかな〜という気がします。

組織論として

その組織が成し遂げられることの最大値は、最もそれが得意な人の得意さに依存すると思います。
なので、その分野のスペシャリストがほしい時は必ずあると思います。
そういう人を募集して厚遇するのは悪いことではないと思います。
エースです。一番手です。旗手。マタドール。

逆に色んなことができないとできない判断というのもあったりします。

総合的に言えば、『スペシャリストが数人でその他がゼネラリスト』みたいな組織が一番いいのではないでしょうか。

特定の分野のスペシャリストばかり揃えたり、『全員が何かしらのスペシャリストであれ』みたいな考え方はあんまり好ましいとは思っていません。
まあ、その辺りは各社の経営戦略なので口出してもあれなのですが……

個人的には、

  • 言語不問でちょっと複雑な問題を出してコードを書く速さと正確さを見る
  • 散らかってるコードを渡してリファクタリングしてもらう
  • こういう障害が起きたらどういう順番で対応しますかって聞く

などのほうがいい人を採れるのではないかと思っています。

類例:就活における個人的体験の話

ちょっと横道にそれまして、自分が転職活動で体験したことの話をします。

フロントエンドフレームワークを例に出します。
僕の実務経験量としてはReact>Angular>Vueです。

さて、内定をもらえる割合ははっきりとその会社が主に使っているフレームワークに相関していました。
同じくReact>Angular>Vueの順です。
多分20%ずつぐらい違っていたと思います。

もちろん、各社がどういう理由で合否を出したのかはわかりません。
なので、フロントエンドフレームワークの実務経験だけが理由ではないでしょう。

ただ、現にこれだけはっきり相関しているので、
「React経験多いから内定を出そう」「Vueは実務経験なさそうだから落とそう」という判断をした会社は必ず一定数いたはずです。

僕はちょっと微妙なお気持ちになりました。

Vueってそんなに難しいフレームワークなのでしょうか……
ReactやAngularをいっぱい触っている人でもキャッチアップできないようなものということでしょうか。
もし本当にそうなら、多分いまVueを使っているということ自体が巨大な経営リスクだと思うのですが……

正直『僕ならさらっとドキュメント読めばすぐ使えるようになるでしょ』と思っています。
やったことないけど。

同じように、似たような技術で片方しかやったことないとか両方やったことあるけど業務経験としては片方のみとかのケースで合格率が大きく変わることはが結構ありました。

気にし過ぎでは……

主張

始めに戻ると、僕の主張は

  • 特定のスペシャリストが必要な時はある
  • スペシャリティ以外の尺度もいっぱいあるはず
  • 本人が特定のスペシャリストを名乗るのは別にいい
  • 実質「〇〇の専門家」と思われても仕方ない人もいる
  • 自分のスペシャリティとか気にしてない人も結構いるはず

ということです。

それに対して

  • ソフトウェアエンジニアは、その人の持ち技術で分類できる
  • より細かくソフトウェアエンジニアを分類することで上手にマッチングできる可能性が高まる
  • その人の最も強い点の強さがその人の技術の総合力

というような考え方の人が多いなと思ったという話です。

残念だった点

事情をよくしらない人事の方がそういう勘違いで落としてしまったならまだわかります。
でも、落ちたタイミング的に、どちらかといえばソフトウェアエンジニアの人たち方が強くそういう価値観に染まっているような気がします。

残念だなーとおもいます。

疑問

ちょっと同業者に聞いてみたいな〜と思いました。
Twitterにリプでもしてください。

  • 自分は何かの分野のスペシャリストだと思うか?
  • スペシャリストだと思う場合、他の技術の仕事をすることにどの程度ポジティブか
  • 特定の分野に強くなれるなら似たような別の分野も上手にできるはずという考えをどう思うか
  • 逆に基礎がしっかりしていればだいたいのことには対応できるはずという考えをどう思うか
  • それ以外にこの記事を見て思ったこと

自分は何かの分野のスペシャリストだと思うかというのは、
「自分なんて○○さんと比べてorz」という話ではなく、
あくまでアイデンティティとして「自分は○○方面の人だ」みたいな意識があるかということです。

他の技術の仕事をすることにどの程度ポジティブかというのは、
もちろん合意の上という話です。
また、「本人がその分野に取り組んでみたいと思っていた」みたいな話でもないとします。