エンジニアを採用する上で個人的に重視している4つの軸
**これは、あくまで個人の見解です。あくまで個人の見解です。**大事なことなので2回言いました。
企業によって「優秀な人」の定義は違いますし、採用担当によっても個々に少しずつ違いますので、全然一般論ではないです。当たり前ですけど。
そうは言っても、どこの採用担当も考えているであろう普遍的な部分も少しは含まれると思うので、1つの参考として公開します。
私の採用基準は、次の4つです。
1. UNIX 系 OS を普通に使える
2. ハードウェアに対する理解が深い
3. エンジニアリングに対する哲学を自分の言葉で語れる
4. 計算機とのコミュニケーション能力が高い
これは、医療系ITベンチャーでエンジニア採用を担当している一人のおっさんの**「ごく個人的な採用基準」**です。それを承知で読んでね。
エンジニアと他社の採用担当の両方の参考になれば幸いです。
UNIX 系の OS を普通に使える
UNIX 系の OS に対するリテラシーは、エンジニアにとって必須です。
もちろん「クラウドで運用される Web アプリケーション全盛の時代に業務でバリバリ使うから」「最新の技術は Linux での動作を前提とする場合が多いから」などの背景があるからです。
……なのですが、それ以上に**「パソコン好きが高じたエンジニアなら、どんな形であれ必ず一度は通るはずの道だから」**という理由の方が、実は大きかったりします。
計算機をいじるのが大好きな人なら、Windows のようなコンシューマ向けの商用 OS では飽き足らず、オープンソースで開発された UNIX 系の OS に興味を持つフェーズが必ずあるはず。
**「オラわくわくすっぞ…!」**という好奇心に突き動かされて、思わず使ってしまうはずなのです。だって、Windows でも macOS でもない「何か」が、無料でネットに転がってるのですから。
高く伸びたアンテナでそれを自然とキャッチして、辛抱強く試行錯誤しながらコマンドラインで計算機と対話してきた人は、エンジニアとして筋がいい。
要するに、新しい技術にキャッチアップするための「好奇心を持てる」ということが要件の1つなのです。そのベンチマークの1つが「UNIX 系の OS を普通に使える」「なんなら自宅の PC に入れて普段使いしている」……ということだと考えてます。
ハードウェアに対する理解が深い
一般のドライバーがエンジンの仕組みを知っている必要はありませんが、プロのドライバーならある程度は知っている必要があるでしょう……というか、自然と知りたくなって思わずボンネットを開けてしまうと思うんですよ。
同じように、ソフトウェアエンジニアであっても、ハードウェアに対する理解は必要です……というか、やっぱり自然と好奇心を持つはずだと思うんですね。いったい計算機はどのように動いているのだろうと。
比較的低級な言語に取り組んだ実績があるなら、ある程度ハードウェアに対する理解があるのかなと推測できます。例えば、C言語でシビアにメモリ管理しながら組み込み開発した経験があるとかなら、ハードウェアを有効に使う感覚が養われるからです(組み込み系とか)。
あるいは、「最近どんな技術書を読みましたか?」という質問に対して、すぐ時代遅れになりそうなハウツー的な本よりも、例えば「チューリングの考えるキカイ」みたいな本の方が本質的なので、一発で K 点越えです。
もしくは**「ドスパラでパーツを揃えて PC を組み立てて Ubuntu を入れた」**でもいいと思います。ブラウザをポチポチやるだけで、クラウド上の仮想マシンが起動する(ように見える)時代だからこそ、筐体にマザーボードをはめて CPU を差し込み、メモリをスロットに挿して SSD を取り付け……という作業を、嬉々として語れるならすばらしい。
逆に、C とか Haskell とか F# とかのようなちょっと厳しめの言語に興味もなく、PC を組み立てたこともない人には、あまりグッときません。だって、ボンネット開けそうにないんだもん。
エンジニアリングに対する哲学を自分の言葉で語れる
プロであるなら、自分の仕事に対する何らかの「こだわり」を語れるはずです。それは、他人に共感されるものである必要はなくて、あくまで「私はこう思う」「俺はこうあるべきと考える」という自分なりの哲学です。
もっと言えば、正しいか間違っているかではなくて、好きか嫌いかです。
例えば、「Vim か Emacs か」で宗教論争が起こるのは(最近だと「VSCode か Atom か」なのかもしれないけど)、彼ら/彼女らが優れたエンジニアであり、商売道具のエディタに強いこだわり(好き嫌い)を持っているからです。
当社の場合、かれこれ 30 年以上もパソコンオタクをやっている CTO は、コマンドラインを使うことに異様にこだわる人です。日付を確認したくて、ターミナルに「cal」と打ってカレンダーを表示させる人を私は初めてみました。そんなコマンド、普通は人生で3回くらいしか使わないと思うんですよね……なんなら「sl」の方が回数多いんじゃないか。
あるいは、最近入社した中堅エンジニアは、ローカルマシンに Arch Linux をインストールしてました。なんでも、好きなウィンドウマネージャがあって、どうしてもそれを使いたいらしい。画面をチラッと見せてもらったのですが、全ッ然色気がなかった。なんやあのコンクリート打ちっぱなしの壁みたいな画面は。
彼らは、他人には理解できない自分なりの哲学を持っていて、「どうして好きなのか?」とか「なぜ自分はそうするのか?」とかを、自分の言葉で語ることができます。そして、それこそがプロフェッショナルの証だと思うのです。
……まあ、これはエンジニアに限った話ではないのかもしれません。
要するに、自分の専門に関して一家言を持っているということですから。
計算機とのコミュニケーション能力が高い
エンジニアに対人のコミュニケーション能力など不要ですが、対計算機のコミュニケーション能力は必須です。
システムがうまく動かないとき、まるで医者が患者を診るように**「君はどこが悪いんだい?」**と計算機と対話しながら原因を特定できるエンジニアは、たいへん筋がよろしい。
高いコミュニケーション能力が生まれるのは、計算機に対する洞察に富むからです。それは、OS がハードウェアを動かす仕組みであったり、システムのアーキテクチャであったり、プログラミング言語の特性であったり、さまざまな要素に対する理解を基礎にして培われます。
そして、これはコンピュータに対する飽くなき興味と好奇心があるから自然とそうなるのです。
優秀なエンジニアは、ずらずら表示されるエラーログを読み解いて、バグを潰すのを楽しみます。自分の知識を総動員しながら、計算機と対話できるからです。
**「恋人の機嫌を直すのを楽しむ」**みたいな感じでしょうか。
モテるわ、それは(現実の異性にモテるとは言ってない)
要するに「パソコンオタク」がほしい
私が採用でエンジニアを見る4つのポイントをワンフレーズで要約すると、**「パソコンとエンジニアリングが好きか?」**に尽きます。
もちろん、基本的な職能(スキル)は大事なのですが、経歴書に分かりやすく書けるようなスキルはあまり重視していません。「Ruby on Rails:3年」とか「React:4年」とかは**「普通自動車免許」くらいにしか見てません**。だってできて当たり前じゃん、そんなの。
そうではなくて、自分の意志が介在する余地なく、ある日突然「パソコン」が胸にぶっ刺さり、
「三度の飯よりパソコンが好き」
「キーボードに触れていないと死ぬ」
「気がついたらエディタを叩いて何かを作ってしまう」
という重い病気にかかってしまった人……もはや**「愛」とか「恋」**と言って過言ではないものを持っている人。職務経歴書に落ちない「何か」が見え隠れする人。
そういう人は、「ぶっ刺さった原体験」が「こだわり」という形で表に現れ、それを自分の言葉で熱く語ることができ、それほどの熱意があるからこそエンジニアとして**「勝手に秀でてしまう」のだと思います。
私は、そういう「どうしようもないパソコンオタク」といっしょに働きたいし、そういう尖った人たちで最強の開発チームを作りたい**。
分かってもらえますか、この感覚。
もちろん、実績は大事です。即戦力を期待して経験者を中途採用するわけですし、好きだから得意(実績をあげてきた)とは限らないので。だから、「エンジニア採用面接での「質問項目」と「意図」を公開する」のような記事に書かれているように、実績を深掘りする質問もさせていただきます。
でも、最終的に行き着く先は、**「好きか、そうでないか」**なのです。
だから、私は常にこういう角度から面接をさせていただいてます。
「パソコンは好きですか?」
「エンジニアリングを愛していますか?」
まとめ
ウチにもいつの間にか採用ページができていました。勤務地は大阪です。関西圏では珍しい、医療系 IT ベンチャーのウェブエンジニア採用なので、腕に覚えのあるオタクエンジニアはぜひどうぞ。
ふーしーぎーなーオタクがー キミのエントリーをまってるー(ててってーて!)
(悪魔くんオープニングテーマ風に)
おしまい。
追記:note も書いてるので、よかったら読んでね。
https://note.com/fujitahajime