ゴールデンウィークいかがお過ごしでしょうか。
僕は連休の真っ只中に「コーディング試験」を受けました。
経緯
4月の中頃に、LinkedIn経由でリクルーターからメッセージを受信した。
それは開発者にとって珍しいことではなく、何気ない気持ちでその求人にも目を通してみた。すると、面白い会社の面白いポジションだったので、俄然興味を惹かれた。
ひとまず受けてみるか…。(どうせ落ちるかもしれないし)
4社のリクルーターから同じようなメッセージを受け取ったので、多分ターゲットは広範囲だ。何気なく同僚に話を振ってみたら、彼もまたそのメッセージを受信していたらしい。
ハプニング
ちょっとしたハプニングがあったんだけど、普通に一次試験の日程を間違えた。
平日の昼間に香港から荷電があった。「なんや!」と思って応答したら、「ハロー!試験の準備は万全かな?」なんて陽気な声で訊かれて、心臓が止まった。
試験の日程を勘違いしていたことと、リスケジュールをお願いする旨を伝えて電話を切る。
リクルーターからのメールを見返すと、確かに試験日は今日と書いてあった…!だけど、その前に「週末にゆっくり準備しておいてね〜♪」とあった。そして「そっか、週末から準備すればいいや〜」なんて呑気に構えていた。
「あっ、ごめんごめん!週末のくだりはコピペだったw」
というリクルーターからの返信が。おおおおおおお。
自分が…!自分が悪いんだけども…!
僕の脳天気な性格が災いした事件だった。
試験準備
無事にリスケジュールができたので、試験準備に取り掛かる。
リクルーターさんからオススメされたhackerrank.comtというサイトで練習問題を解く。一次面接はコーディング試験なのだ。
久しぶりに触れるコーディング試験の世界は、冷や汗ものだった。
プログラミングでの最小公倍数の求め方とか、計算量を格段に落とすアルゴリズムとか、もうすっかり忘れてた…。やっぱり実務で使わないことは忘れる。そして試験では問われるかもしれない。
不安になって「XX社 コーディング試験」等、ググる。問題は通例2問。1問目がチョロ問で、2問目がハードモードらしい。
狂ったようにハッカーランクの問題と格闘したのが昨夜のこと。6時間ほど経った頃、過集中が切れて寝落ちした。アルゴリズムが夢に出た。
試験当日
そして試験当日、というか今日。香港から試験時間ジャストにかかってきた電話を、今度は満を持して即座に取った。
コーディング試験はお互いがシェアしている画面をベースにして進めていく形式だった。相手が問題文をペーストして、僕がそれを見ながらコードを書いていく。作成したプログラムは何度でも実行して良いし、どんなテストデータを作成しても良い。
だけどこれは通話でのコーディング試験なので、自分の考えを積極的に発信していかなければいけない。疑問に思ったこと、困ったこと、立てている道筋…等々なんでも。
話しながらのコーディングはやっぱり別の脳を使う。。序盤では、快活に話せて、テストデータに相手の名前なんか入れて笑いを誘ったりもできたけど、後半はグダグダ。
焦った結果、思考が曇ったのが悔しかった。平時だったらいくらでも解けるレベルの問題だったのに…。だけどこれが本番。
普段はゆるく過ごしているので、本番の張り詰めるような空気に完全にペースを持っていかれてしまったのでした…。
希望があるとしたら、時間内に問題を解き終えたことかもしれない。去年受けたコーディング試験では時間切れになってしまったので、正直嬉しかった。
あと、あの緊張状態の中で無意識レベルでバグを何度か潰していた。普段はエラーの内容を読んで該当箇所を発見するという作業があるのに。これはもう経験がものを言ったとしか言いようがない。考えるよりも先に指が動いていて、アスリートの世界ってこんな感じなのかなと思った(言い過ぎ)。
結論
終えてみた所感としては、もしこの試験が、
- 問題を正解すれば良い足切り的試験 →パスするかも
- 問題を解く過程を見るガチ試験→微妙かも
と言ったところかな。今回の試験の難易度的には、ハッカーランクで問題を解きまくる必要はなかったかもしれない。それよりも、話しながらコードを書く経験がもっと必要かもと思った。もっと言えば、肝っ玉が必要。