DIVE INTO CODE

2019年5月27日

エンジニアの採用基準では、何を見ているの?

【こんな方におすすめ】
・未経験からエンジニアとしての就職を目指す方
・どのようなエンジニアが活躍できるのかを知りたい方
・エンジニアが持つべき心構えについて理解を深めたい方

【目次】
・エンジニアの採用基準における「3つの観点」とは
 その1:技術スキル 〜最低限必要なスキルレベルがある〜
 その2:仕事のスタンス 〜未経験でも重視されるポイント〜
 その3:知的好奇心 〜学び続けることを楽しもう〜
・まとめ

■話し手
DIVE INTO CODE 代表 野呂 浩良
■聞き手
StartGate 永田 拓也

エンジニアの採用基準における「3つの観点」とは

今回は、未経験のエンジニアの採用基準では何を見ているの?という話です。

これから学ぶ方にとっては、どういうところを見られるのか気になりますよね。

3つありますね。1つ目が「技術スキル」。2つ目が「仕事のスタンス」マインドのことです。3つ目が「知的好奇心」。この3つが重要だと思っています。

なるほど。

採用基準は人によって違いますけれど、抽象化するとこの3つに尽きると私は思っています。

その1:技術スキル 〜最低限必要なスキルレベルがある〜

Image from Gyazo

まず技術のところから聞かせてください。

未経験からのエンジニアでは、採用基準は年々変わっていると思います。特に不足している分野のエンジニアほど、より基準が甘くなりがちです。
具体的に言うと、私たちが教えているWebと機械学習では、機械学習の方がエンジニアの絶対数が少なかったり、学ぶ難易度が高かったりするので、より希少価値が高いです。ただおそらく今後は採用基準が上がると思います。
Webは職種として登場してだいぶ経つので、年々大きくは変わらないです。何が必要かがある程度分かってしまっているし、いろんな会社で仕事が生まれているので、エンジニアが行ってできればいいよねという話になりがちですね。未経験者の場合は、例えば

・Webアプリケーションをゼロから作って、デザインも自分で手書きしたものからテンプレートを使って見た目を綺麗に整える
・Webアプリケーションを作る時に難易度が高いとされる機能を一通り実装する。例えば、投稿者画面にコメントを付けられる、プラスαでグラフを表示できる、しっかりした管理画面ができる、ログイン機能がしっかりできているなど。

これらのスキルは必要条件。つまり足切り条件ですね。最低限これができていれば良いだろうというスキルです。

会社によってその基準は変わりますか?

違いますね。人気が高い会社ほどハードルが高いです。当たり前ですよね。なぜだと思いますか?

その会社の「これくらいできているでしょ」という基準が上がっているのかと思います。

そうです。上げてもいいですよね。応募者が多いですから。

そうですよね。下げる意味はあまりないですよね。

よほど大量に採用しているのであれば別ですけれども。誰でもいい訳でもないじゃないですか。人間はスキルだけなの?と言ったら違いますよね。

確かにそうですね。

最低限のレベルというのは、ネット上に書かれているようなものができても何の意味もないです。ネット上に載っていないことや、載っていることでも自分で考えてやらなければならないレベルまで踏み込んでできているかというのが、勘所ですかね。

「このくらい必要」という本とか、指標として分かりやすいものがあれば何か教えていただけませんか?

本はありますよね。RubyだったらRuby、PythonだったらPython、JavaだったらJavaで「エンジニアがおすすめしている本を一通りやりました」というのは一つの基準ですよね。逆に、エンジニアが薦めない本をやっても何のアピールにもならないです。

それで通っちゃう会社も怖いですね(笑)

あるとしたら、技術をそこまで必要としない仕事だと思います。それが悪いとは言いませんが。技術スキルは、言語によって多少違うと思いますが、だいたいレベル感は一緒ですかね。Webアプリケーション開発でも、機械学習でも。

この辺を理解するためには、先輩に聞いてみるのがいいんでしょうか?

そうですね。私たちでも教えているRubyで言うと、無料教材のレベルはできて当たり前です。そのレベルで現場に来ても、たぶんどうにもならないです。

「知ってるんだ、でもそのくらいか・・・」という感じですね。

「公開されているものは当たり前にやってるでしょ」と。「そこから追加は?」となりますよね。私たちもスクールを立ち上げて受講生とずっと向き合っていますけれども、その基準すらできないのはありえないと思っています。

なるほど。

それぞれのサービスを過小評価している訳ではないのですが、載っている情報だけをなぞってやっただけで仕事ができると思いますか?今までやっていないことが出た途端に思考停止するだろうな、と想像するじゃないですか。そんな人と一緒に働きたくないですよね。

仕事ってやっぱり、自分なりの価値を何かしら発揮して意味がありますからね。

答え合わせではないんですよ。答え合わせだけでやったら精神的に辛くなりますし、耐えられなくなっちゃいます。

そうですよね。自分でクリエイティブに考えて生み出すことができたら楽しいですよね。

その通りです。

その2:仕事のスタンス 〜未経験でも重視されるポイント〜

2つ目が「仕事のスタンス」ですね。未経験の新卒でも、アルバイトや部活でどういう経験をしたとか、周りの他人とどう向き合い、関わって来たのかがすごく見られます。
他の職種の経験者であれば、他の仕事にどう向き合ってきたのか。仕事で求められていることに対して言われたことだけやってきたのか、あるいは言われてないけれどもやったほうがいいことを自分で見つけてやってきたか。さらにそれだけではなく、高い成果を出すために決してあきらめずに自分で勉強も続けて、同期と比べてめちゃめちゃすごい実績を出したとか。あるいは上司とのコミュニケーションを工夫して、何の問題もないようにできましたとか。そういう向き合い方です。

そういうのは面接の中で見られるんですか?

確実に出ますね。技術スキルが最低限の条件、仕事のスタンスが必要十分条件という感じですね。技術があってもこれがなければ落とされます

とても大事なんですね。

エンジニアの仕事って、コミュニケーションしないと始まらないんですよ。まだ世の中にないものを作るのです。どこからか持って来て作るのならサービスを買っているだけですが、自力で作る必要があるんですよ。自社の独自のものとか、今回の問題を解決するために作るとしたら何をすればいいのかを、その当事者と話さないといけないんですよね。
当事者と話すということは認識を揃える必要があります。相手が「こういう設計をして、こういうコードを書いてね」と言うはずがないですよね。それならエンジニアは要りません。代わってやる必要があるんです。相手が何を求めているのかしっかりヒアリングして、その上で「これでいいですか」とコミュニケーションしなければいけない。

時には、技術的に難しかったり、一度提案した方法では実現できなかったり、納期がずれるかもしれなかったり、ということが起きます。それでもビジネス上やりたい時に、「嫌です、定時であがりたいです」と帰られたり、頑固に「このやり方じゃないとできないです」と言われたりしたら困ります。

分からない方法でも自分なりに勉強して自己研鑽した上でできた喜びを共有できるのは他の仕事だって一緒じゃないですか。ということは、過去は関係なくチャレンジできますけれども、過去は見られます。リセットとはならないんですよ。

「僕、他の職種であまりうまくいかなかったんでエンジニアになってみたんですよね」という人はダメなんでしょうか?

ゼロリセットは方向転換としてありだと思いますが、今までの仕事に本気で向き合っていない人は、急にワンチャンもらえるかって言ったら、そんなに甘くないですよ。

どの仕事も変わらないということですね。

そうです。だって、相手は人間だということは変わらない。人間社会で生きるんですよね。

社会人ってそういうことなんですよね。社会と接するから社会人。

無人島に行って1人で暮らすのとは違うんです。相手の役に立つということはとても大事です。

リゾート地でパソコン1つで仕事している人も、パソコン上でコミュニケーションを取ってますもんね。

そうです。なんか楽そうだとか、技術持っていたら人と関わらなくていいのかなとか思っていたら大間違いです。

なるほど。これが仕事のスタンスのお話ですね。

少しでも相手のことを思ってこういう努力をしたとか、こういう姿勢でやってきましたとか、こういう状況でもこういう行動を取ってきました、というのはアピール材料になります。細かいことだとしても、向き合ってきたことをしっかり表現したほうがいいです。

今から学ぶ方も、その点は自分で大切に持っておけばアピールになるんですね。

その通りです。もし本当に、これまでいい加減に仕事をしてしまったし、学部でも情報系をやっていなくてゼロからリセットという人は、まず学び方から徹底的にリセットしたほうがいいです。自分をリセットしないと。

生まれ変わった気持ちで。そこからですね。

今から生まれ変わるんだと思って、本気で学習に打ち込んだほうがいいです。私の経験で言うと、学び方は仕事の仕方と一緒です。仕事を通して学べる人は、学びも大きいです。仕事を通してタスクしかやらない人は何も学ばないんです。成長しない。ということは、学び方で仕事の成長はほぼ見えるんですよ。つまりいい加減に学ぶ人は仕事でも伸びないです。

「これをこなせばいいや」でははなく「自分を高めていくんだ」というスタンスでやっていくということですね。

それがプロになるということです。趣味プログラマーだったら、四の五の言わずにおもしろくやればいいかもしれない。でも趣味じゃないですからね。

仕事としてやるんですからね。めちゃくちゃ大切ですね。

その3:知的好奇心 〜学び続けることを楽しもう〜

Image from Gyazo

3つ目が「知的好奇心」ですね。プログラミングが好きで、楽しいと思う人じゃないと続かないとベテランのエンジニアはよく言います。新しい情報を調べても調べても、暗記してもキリがない世界なんですよ。
例えるなら、数学の世界も数1Aから始まって2Bがあって3Cがあって、それから大学数学があって・・・と途方もない世界に思えるかもしれません。
コンピュータサイエンスもそういう世界です。理論や公式を覚えるのとは違いますけど、新しいことは尽きない。新しい技術は学会や企業で研究された結果としてどんどん実装されるので、理論が新しくなっていくんですよ。仕事でやるにはあまりに情報が変わっていくので、そういう世界をおもしろいと思っていかないと難しいです。今まで得た知識や資格だけで飯を食うことはできないです。

そうなんですね、やっぱり。

だから、新しい分野を学び続ける人でないと続かないです。アサインされた案件によっても必要な情報が違うからまた学び直さないといけない。そういうのを「チッ」と舌打ちするようではダメなんですよ。アサインしたくなくなって同じ案件ばかり持たせますよね。そうして、案件がなくなったらサヨナラですよ。

用済みになっちゃいますね。一緒に仕事しにくいですね。

そういう人になりたくないですし、そういう人を採用したくないですよ。
少しでもいいから、おもしろいと感じたものを記録して溜めておいて自分が何に興味を持つのかを自分で分かっていることがまず大事ですね。本当に些細なことでいいです。”puts”というメソッドがおもしろかった、でもいいですよ。

へえ〜。あまり難しく捉えるよりは、楽しんでいいんですね。

童心にかえったつもりで、「なんで?」「なんで?」といろいろ言っていいと思います。

「なんで?」って思っているはずなんですけど、ついそれを置いてしまうんですよね。

それにはいろんな理由があると思うんですよ。
人からバカだと思われないかなという気持ちや、学校で正解だけを求められて、間違ったことを言うとバカにされた経験があるかもしれません。「なぜ?」と言うと親から「そんなこと言わないの」と返されてしまったりとか、いいこと言わなきゃいけないとか・・・いろいろあると思うんですよね。純粋に思ったことを口に出せばいいんですよ。

僕もこのシリーズで、めちゃめちゃ学ばせてもらってますからね(笑)。ありがとうございます。

ぜひぜひ学んでください!
採用基準としての3つの観点、①技術スキル、②仕事のスタンス、③知的好奇心についてお伝えしました。
この3つについては、学んでいる人たち同士やすでにエンジニアになっている人たちとの対話の機会を増やしたり、ペアプログラミングしてみたり、そういう「場」を共有すると楽しくなります。ぜひやってみてください。孤独にやらないほうがいいですね。

なるほど〜。ありがとうございました!

まとめ

・エンジニアの採用基準には、①技術スキル②仕事のスタンス③知的好奇心の3つがある
・技術スキルとして、ネットに書かれているようレベルを理解しておくことは最低限必要。さらに自分で考えて実装できることが求められる
・仕事のスタンスは、未経験からエンジニアを目指す場合でも、これまでに仕事そのものや周りの人とどう向き合ってきたかが問われる。エンジニアの仕事はコミュニケーションが不可欠。これまでの仕事のスタンスに自信がない場合は、まず学び方から徹底的にリセットしよう
・知的好奇心はエンジニアにとって重要。絶えず更新されていく技術情報を楽しんで学び続けよう

DIVE INTO CODEのことをもっと知ってみませんか?