コーディングインタビューで気をつけること
ども、カニカマです。カナダでアプリとかを作ってます。
今日は、ソフトウェアエンジニアとして海外で就職するなら技術試験として、コーディングインタビューをすることがあると思うんですが気をつけないといけないことがありますって話をしたいと思います。
それは、コーティングインタビュー中に独り言を喋りながらできる練習をしときましょうってことです。
コーディングインタビューは知識や技術を見るだけではない
日本ではスキルチェックのためのコーディングインタビューは少ないと聞いていますが、北米ではほぼ確実にあると思います。
HR(人事)の人からの電話面接などがあり、その次にマネージャーとかの面接、その後スキルチェックとかの場合が多いですかね。
問題はさまざまで、会社や面接する人によって違うと思います。
ある会社はアルゴリズムを問う問題であったり、ある会社は実践的に実際の小さなプロジェクトをリファクタリングしたり機能を足したりとかもあります。
僕もたまに面接官として参加します。
そうすると、自分が面接を受けている時は気づかなかったけどとても大事なことに気づきます。
ちゃんと口に出して言う
それは、コーディングインタビュー中は考えていることや、今からやろうとしていることを口に出して言う必要があるということ。
たまに、問題を解くのや考えるのに必死で黙ったまま考え込んでしまう人や、黙々とコードを書いたりする人がいます。
これはできるだけ止めたほうがいいです。
面接官側からするとその人が今何を考えているのか分からないからです。
そもそも問題の意味を理解していないのかって思われる可能性すらあります。
問題のどこでつまっているのかが分からないと助けようもありませんし、今考えている途中なのか、分からなすぎてフリーズしているのかの判断がつきません。
なのでできるだけ「今からこういうことをしようと思うけど、どうしようかな。とりあえずこれはこうかな。次は、・・・」みたいな感じです。
そうすると面接官もそこまでは理解しているのねって分かりますので安心します。それでズレていれば多少手助けをすることも可能になります。
質問はしてもいい
問題が難しくて、少し分からないみたいなことはありえます。
質問したら理解していないと思われないかと心配になりますが、無言で考え込むよりはちゃんと聞くほうが何倍もいいです。
わからないことや問題の条件なんかはもちろん、ちゃんと自分があってる方向にいっているかなどは逐一聞くべきです。
所詮ソフトウェアエンジニアもコミュニケーション
ソフトウェアエンジニアはコンピューターに向かってコードだけを書いているわけではありません。
チームがあり、いろんな人達と協力してアプリなんかを作っていきます。
求められるのはもちろん技術スキルでそのためのスキルチェックなんですが、やっぱりそれだけじゃないんです。
「この人はどういう風にコミュニケーションをとるのだろう?」ということに興味があり確認したいわけです。
もちろん最小のそれなりの技術や知識は必要だとは思いますが、それと同じぐらいコミュニケーションがちゃんととれているかを見ています。
無言で解かれて「はい、できました」って言われても正直困る。暗記してるだけなのか考えて出した答えなのかが分かりにくいからです。
僕が面接官である場合、注意して見てるのは、
・どういう風に問題にとりかかるか?
・どういうアプローチを考えれているか?
・何通りぐらい思いついているのか?
・エッジケースやさまざまなケースを想定しているか?
・分からないことはチームや周りとコミュニケーションとったり、助けを呼べるか?
・ヒントをもらったときやギブアップした時はどういう感じの返答をするか?
とかは気をつけて応募者のことを見ています。
全部の問題が解けなくてギブアップしたとしても、そんなに大したことではないということも全然あります。
ちゃんと質問したり、ヒントをもらって少しずつ答えに近づいたりするほうが印象がよかったりします。
というわけで
コーディングインタビューの時は喋りながらできるようになりましょう。
そして質問もガンガンして、面接官とコミュニケーションをとりながら問題解決を目指しましょう。
参考にDanさんのモックインタビュー(模擬インタビュー)を貼っておきます。
ちなみに知らない人のために言うと、このDan Abramovという人はJavaScriptのフレームワークReactの共同開発者で「Redux」を作った作者の方です。
以前はFacebookにいていろいろなReactの開発や発信をしている人、つまりフロントエンド界では超有名人であります。
そんなすごいエンジニアの面接なんて一瞬ですぐ答えて終わりかと思いきやそうでもないんです。
そして2人の面接官も技術系では有名なYoutuberの方々です。
どちらもJavaScriptです。
こちらはアルゴリズム問題。
こちらはもっと実践的なReactのプロジェクトを実装する問題。
どちらの問題でも、1つ1つ質問を重ねながら回答に近づいていく感じはかなり参考になります。
これから北米、あるいは海外でコーディングインタビューがある人は一度目を通してみて損はないかと思います。
自分で勉強している時も独り言で自分のやっていることを説明しながらやるがいいと思います。
ではでは。
この記事が気に入ったらサポートをしてみませんか?