本サイトは広告・プロモーションが含まれています
雑記

【体験記】人生で初めてコーディング面接を受けた


どうも、管理人のコンです。
先日、人生で初めて「コーディング面接」なるものを受けてきました。

結論から言うと、まあ、ボロボロだったわけです(笑)

それでも学びが非常に多かったので、未来の自分への戒めと、これから同じような挑戦をする誰かの参考になればと思い、備忘録として残しておきます。

受けた会社と受験の経緯

今回受けさせていただいたのは、特定の技術領域で面白い取り組みをされているソフトウェアの受託開発会社さんです。

以前からその会社の活動に注目していて、純粋に「面白そう!」「ここで働けたら充実した仕事が出来そう!」と感じて応募しました。面接まで進めさせてもらって感謝しかないです。

受験環境と面接官の方々


面接はGoogle Meetで行われました。 正直、あまり使い慣れていなくて、開始早々チャットの送り方を聞くというポンコツぶりを発揮してしまいました…。

僕のガチガチの緊張、絶対画面越しに伝わっていたと思います。 でも、面接官のお二人(チームリーダーの方と3年目のエンジニアの方)がすごく優しくて、「大丈夫ですよ〜、落ち着いてくださいね」と和やかに対応してくださったおかげで、なんとか試験に臨めました。本当にありがたかったです。

コーディング面接

試験時間は90分。 内容は、実際の業務で出てきそうな計算処理やデータ操作を、指定された要件に合わせてどんどん実装していく、という実践的なものでした。

90分後、書いたコードについて「ここの設計は良かったですね」「ここはもっとこうできたかも」と、その場でフィードバックをいただけたのが、個人的にすごく満足度が高かったです。自分の弱点が明確になりました。

個人的な反省

面接後に「うわー、こうすれば良かった…」と頭を抱えた、私の大きな反省点を2つ共有します。

全体像を把握せず、行き当たりばったりで実装してしまった

次々に出されるお題に対して、目の前の処理を関数として実装することに必死で、全体を通した設計を考える余裕がありませんでした。 「まずはこれを実装して、次はこれ…」と、場当たり的な対応になってしまったんです。

終わってから冷静に考えると、「あ、これらは全部『〇〇』というオブジェクトに関する操作だったな」と気づきました。 最初に全ての問題に目を通し、共通するデータや処理をまとめる「クラス」を一つ設計してから取り掛かっていれば、もっと見通しが良く、拡張性のあるコードが書けたはずです。完全に後の祭りでした…。

テスト駆動開発(TDD)的なアプローチを取れなかった

実装中は「これで合ってるのかな?」と不安になりながら、手動で何度も確認していました。この確認作業が、地味に時間と集中力を奪っていきました

本格的なテスト環境を構築する時間はありません。でも、例えば期待する結果を返す簡単なチェック関数」を先に作り、それをクリアするように本体の関数を実装していく、という簡易的なTDDならできたはずです。

先に「正解のゴール」をコードで設定することで、もっと自信を持って、かつスピーディに実装を進められただろうな、と猛省しています

まとめ


今回のコーディング面接は、結果はともかく、自分の現在地と課題を浮き彫りにしてくれる、本当に貴重な経験でした。 親切に対応してくださった面接官の方々には感謝しかありません。

この反省を次に活かして、またチャレンジしたいと思います。
この記事が、これからコーディング面接に臨む誰かの、ほんの少しのヒントにでもなれば良い感じにハッピーです。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA