天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

【学生向け】HireRoo が作ったコーディングテストを freee のエンジニアが受験してみるに参加してきた

freee.connpass.com

こちらのイベントに参加してきたので会の様子と感想を書いていこうと思います。

学生ではないのですが、シンプルにコーディングテストの経験がない(と思っていた)のでどんなものなのか気になったのと、企画自体が面白そうだなと思ったので参加してきました。

会の概要

エンジニアを目指す学生なら 1 度は通るコーディングテスト。いざ受けるとなるとどんな問題が出るのか、どんな感じで回答するのか不安になる学生も多いのでは思います。

このイベントでは HireRoo さんが作問したコーディングテストを freee にて新卒採用面接官の経験もあるメンバーが実際にその場で受験し解説を行います。

会の様子

イントロダクション

一般論としてコーディング試験とはどういうものか?という話がありました。

  • 選択・自然文記述式の知識問題
  • プロジェクト形式の実装(ディスカッション含む)
  • 課題解決方法の提示
  • 設計図をその場で書く

といった多様な形式があり、正解といえるコードを書くことがゴールだということです。
コーディング試験はスキルのマッチ度だけではなく、プロセスを見ることで技術課題に対してどのような姿勢で向き合うのか?(楽しめるのか?)といったところも見れるため、有効な試験とされているということでした。

また、その後にコーディング試験は、

  1. 問題理解
  2. 解決の類推
  3. 方針検討
  4. 解答コードの実装

という基本的な流れを抑えて準備をすれば決して怖いものではないという話がありました。
(よくあるアルゴリズム試験を例とした)準備の具体的な方法としては、まずは有名なアルゴリズムやデータ構造を理解したうえでLeetCodeやAtcorderの問題を解いて実践を繰り返し、実世界のコードへ応用することが重要だという提案も出ていました。

コード面接を実際に解いてみる

続いて、実際にコーディングテストを受験してみる様子が公開されました。

  • まずはコメントベースで処理を書く
  • 最初は再利用性を意識するのは最低限にして、問題のハッピーパスを実現するために愚直なコードを書く
  • 入力例を見つつ図に落としながら問題解決方法を口頭で説明する
  • インターネットを検索することは自由なため、仕組みだけキーワードとして覚えておいているものであれば、細かい実装の仕方などは調べることで対応する
  • 用意されているテストは回せない

といった点が特に印象的でした。

結果ふりかえり

結果は見事満点でした。評価は今回のケースだと、(あらかじめ用意されていたテストケースの)正解率+パフォーマンス+コードの可読性で評価されていました。

会全体を通した感想

もともとはコーディング試験を受けたことがないと思って受けていたのですが、技術課題に対して向かう姿勢を見るために、何も知識も経験がない状態でプログラムを構築してみようとした試験を新卒時代に受けていたのを話を聞いている最中に思い出しました笑

態度を見ているという話を聞いて、そういえば何もプログラミングの知識がない状態ではじめてコードを書いた時にこんなことができるのかと感動したなあというのを思い出し、そういうのが自分から出ていたのを当時の採用担当の人は見ていたのかな?と初めて感じました。

当初想定をしていた参加目的とは少し逸れた体験になったのですが、プログラミングが純粋に楽しくてやっていた頃を思い出したりして、ここ最近なにか失われている感覚や自分の原点みたいなのが回想できる恵まれた機会になったので参加して良かったです。