久々のコーディング試験

ゴールデンウィークいかがお過ごしでしょうか。

僕は連休の真っ只中に「コーディング試験」を受けました。

 

経緯

4月の中頃に、LinkedIn経由でリクルーターからメッセージを受信した。

それは開発者にとって珍しいことではなく、何気ない気持ちでその求人にも目を通してみた。すると、面白い会社の面白いポジションだったので、俄然興味を惹かれた。

 

ひとまず受けてみるか…。(どうせ落ちるかもしれないし)

 

4社のリクルーターから同じようなメッセージを受け取ったので、多分ターゲットは広範囲だ。何気なく同僚に話を振ってみたら、彼もまたそのメッセージを受信していたらしい。

 

ハプニング

ちょっとしたハプニングがあったんだけど、普通に一次試験の日程を間違えた。

平日の昼間に香港から荷電があった。「なんや!」と思って応答したら、「ハロー!試験の準備は万全かな?」なんて陽気な声で訊かれて、心臓が止まった。

試験の日程を勘違いしていたことと、リスケジュールをお願いする旨を伝えて電話を切る。

 

リクルーターからのメールを見返すと、確かに試験日は今日と書いてあった…!だけど、その前に「週末にゆっくり準備しておいてね〜♪」とあった。そして「そっか、週末から準備すればいいや〜」なんて呑気に構えていた。

 

「あっ、ごめんごめん!週末のくだりはコピペだったw」

 

というリクルーターからの返信が。おおおおおおお。

自分が…!自分が悪いんだけども…!

 

僕の脳天気な性格が災いした事件だった。

 

試験準備

無事にリスケジュールができたので、試験準備に取り掛かる。

リクルーターさんからオススメされたhackerrank.comtというサイトで練習問題を解く。一次面接はコーディング試験なのだ。

 

久しぶりに触れるコーディング試験の世界は、冷や汗ものだった。

プログラミングでの最小公倍数の求め方とか、計算量を格段に落とすアルゴリズムとか、もうすっかり忘れてた…。やっぱり実務で使わないことは忘れる。そして試験では問われるかもしれない。

 

不安になって「XX社 コーディング試験」等、ググる。問題は通例2問。1問目がチョロ問で、2問目がハードモードらしい。

狂ったようにハッカーランクの問題と格闘したのが昨夜のこと。6時間ほど経った頃、過集中が切れて寝落ちした。アルゴリズムが夢に出た。

 

試験当日

そして試験当日、というか今日。香港から試験時間ジャストにかかってきた電話を、今度は満を持して即座に取った。

 

コーディング試験はお互いがシェアしている画面をベースにして進めていく形式だった。相手が問題文をペーストして、僕がそれを見ながらコードを書いていく。作成したプログラムは何度でも実行して良いし、どんなテストデータを作成しても良い。

だけどこれは通話でのコーディング試験なので、自分の考えを積極的に発信していかなければいけない。疑問に思ったこと、困ったこと、立てている道筋…等々なんでも。

話しながらのコーディングはやっぱり別の脳を使う。。序盤では、快活に話せて、テストデータに相手の名前なんか入れて笑いを誘ったりもできたけど、後半はグダグダ。 

焦った結果、思考が曇ったのが悔しかった。平時だったらいくらでも解けるレベルの問題だったのに…。だけどこれが本番。

普段はゆるく過ごしているので、本番の張り詰めるような空気に完全にペースを持っていかれてしまったのでした…。

 

希望があるとしたら、時間内に問題を解き終えたことかもしれない。去年受けたコーディング試験では時間切れになってしまったので、正直嬉しかった。

あと、あの緊張状態の中で無意識レベルでバグを何度か潰していた。普段はエラーの内容を読んで該当箇所を発見するという作業があるのに。これはもう経験がものを言ったとしか言いようがない。考えるよりも先に指が動いていて、アスリートの世界ってこんな感じなのかなと思った(言い過ぎ)。

 

結論

終えてみた所感としては、もしこの試験が、

  • 問題を正解すれば良い足切り的試験 →パスするかも
  • 問題を解く過程を見るガチ試験→微妙かも

と言ったところかな。今回の試験の難易度的には、ハッカーランクで問題を解きまくる必要はなかったかもしれない。それよりも、話しながらコードを書く経験がもっと必要かもと思った。もっと言えば、肝っ玉が必要。