先日"GO GLOBAL" meetup #1というイベントに参加してきました。
"GO GLOBAL" meetup とは
海外での活動や海外のエンジニア文化に興味のあるエンジニアが集まり、知見の共有や交流を目的としたコミュニティです。海外の話を参加者の間で積極的に共有し、日本のテック業界が世界に躍進するのを後押しする存在となることを目標にしております。
今回が第1回ということなので、今後も継続的に開催されていくのだと思われます。
第1回のテーマは、**「エンジニアのためのコーディング面接・オンラインテスト勉強会」**でした。企業側、応募者側双方の話が聞けて有益な時間でした。
LTなどの詳細はこちらを見ていただくとして、印象に残った話や学びなどを書いていきます。
技術課題の話(企業側)
やり方はいろいろあるそうなのでそれぞれ書きます。
課題を出す
- 課題を解決するコードを期限内に提出してもらう
- アプリ作成、ML、セキュリティ
- Pros
- 非同期的なので、限られた時間&対面よりもプレッシャーが低い
- 好きな環境(IDE/エディタ)で書ける
- Cons
- 非同期的なので、どういった志向をたどったアウトプットなのか把握し辛い
- 課題の自由度が高すぎると評価に時間がかかる
コーディング試験
コーディング試験について
- コンピュータサイエンスの基本理解度を見るために行う
- コードテストだけで実力を測ることは不可能であり、真の実力は面接で確認することが必須
- 採用プロセスは「書類選考+コードテスト→面接」が多い
Codility
スマートニュース社ではCodilityというコーディング試験サービスを利用している。
- コーディングプロセスが見える
- 自動採点
- デモテストがある
- 人事が見るためのレポートもある(例:https://app.codility.com/public-report-detail/)
ちなみに運用実績は
- 期間:4年以上
- 平均スコア:相当低い
- 満点:3.1%
- ゼロ点:16.7%
チートしちゃうと…
- similarity checkがあり、過去のコードと似ていたら人事にメールが飛ぶ
- あやしいなと思ったら面接でコードの中身について話を聞いている
truck
リクルートテクノロジーズ社では、インターン生の選考にtruckを利用している。
課題の内容は
- DB操作
- HTTP API送信・受信
- アルゴリズム問題
全部回答するのに2-3時間はかかるが、これはある程度実力だけじゃなくて、入社意欲も見れる
技術力 + モチベーションが大事。
trackのいいところ
=> 解けても解けなくても自由にアピールができる
だめなところ
=> エディタが使いにくい
なので点数だけを見てフィルタはしない。面接時の参考値にする。
技術課題の話(応募者側)
コーディング試験
- 1つのスキルである=練習すればできるようになる
- 通常の業務では鍛えられないスキル
- Cracking the Coding Interviewという本を参考にしている企業は多い
ホワイトボード試験
面接官の前で、ホワイトボードにコードを書いていく。
- on site面接だと大抵ホワイトボードの試験がある
- 人前で書くのつらい
- コーディング+ホワイトボードに書くスキルが必要
- 静的型付け言語よりも動的型付けの方が楽(書く量が少ない)
- 練習が大事
書籍・サービスなど
言及されていたものはこちら。
企業側
応募者側
- Cracking the Coding Interview: 189 Programming Questions and Solutions
- コーディング試験問題集
- 英語 https://www.amazon.co.jp/dp/0984782850
- 日本語 https://www.amazon.co.jp/dp/4839960100
-
HackerRank
- 英語でコーディング試験の練習ができるサービス
-
LeetCode
- 英語でコーディング試験の練習ができるサービス
- GAFAなどの選考で実際に使用された問題などもある
-
Pramp
- オンラインコーディング面接の練習が英語でできる
- 世界中の求職者とマッチングしてそれぞれ面接官・応募者となって疑似コーディング試験を行う