自己紹介
はじめまして!株式会社リクルートにデータスペシャリストとして新卒入社しました橋本大輝と申します。
自分は入社当初はデータサイエンティストって結局具体的には何をする仕事なんだろう、エンジニアリングにも興味あるけどどこまで手を伸ばせるのかな、という不安感を持っていたのですが、新人研修を通して社内で触れることができる技術の幅と自由度を知りその不安が大きく解消されました。
ここではそんなデータスペシャリスト入社者に向けた新人研修の概要について、個人的に面白かった/ためになったところに重点を置きながら紹介していきたいと思います。
全体の流れ
スケジュール
技術に関する研修は全てリモートで実施され、大まかに下図のようなスケジュールで行われました。
以下では各研修の内容を
- データサイエンス x ソフトウェアエンジニアリング
- ソフトウェアエンジニアリング
- データサイエンス
というように内容で分けて紹介していきたいと思います。
データサイエンス×ソフトウェアエンジニアリング
データサイエンティストというと分析や予測モデルの作成などがまず仕事内容として思い浮かぶと思うのですが、研修ではデータだけでなくデータとエンジニアリングをいかに掛け合わせるかを学ぶ実践的な内容が盛り沢山でした。
一つの例として、GCP (Google Cloud Platform)に関する研修では GCP の各機能について一通り学んだ後、Terraform、Kubernetes、Redis などを用いてレコメンドサービスを構築する超実戦型の研修が行われました。
これはゼロからシステムを組むわけではなく、開始時に例として下図のようなとても綺麗な CI が完備されたサービスが配布され、この構造を理解しながら 4 日かけて自分たちなりの工夫を行なっていく構成になっています。
二人組で取り組む課題であったこともあり、初めてバックエンドに触るというような人でも仲間の助けを借り、すでにある実装ベースに手を動かせるようになっているため安心です。
何をどう改善するかが自由であったため、あまり触ったことがなかった Terraform にたくさん触りたいと思った私は Istio を使って AB テストを簡単に行えるようにする改善などを行いました。
最終日には各班が取り組み内容について発表する機会があり、レコメンドのアルゴリズムを凝る班、応答速度を凝る班など班ごとに取り組み方は様々で、同期の技術アセットの幅広さを思い知る機会となりました。
他にも PIGICON という簡易版 アキネイター (プレイヤーが想像している人物を yes, no で答える質問を繰り返していくだけでゲーム側が当ててくれるゲーム) を EC2 コンテナ上に実装して性能を競うコンペ形式の研修も行っており、 PIGICON については別記事で詳細に取り上げています のでぜひ覗いてみてください。
ソフトウェアエンジニアリング
リクルートにはデータスペシャリストとは別にエンジニアコースが存在するため、両者の研修も分かれているように思うかもしれませんが、中には一緒に受けたり、共通した人が講師を務める研修も少なくありません。その中でもテスト駆動開発によっていかにコードを効率よく、目的意識を持って書いていくかはデータを扱う身としてもとてもためになりました。
エンジニアコースの研修内容は
リクルートメンバーズブログ
でも紹介していますので、ご覧ください。
アドホックなデータ分析を主に行なっている人は Jupyter Notebook で素早く作業することに慣れている場合が多いため、書いてから長い間他人が読むことになるコードを書くことに慣れていないケースが(自分を含め)多々あります。t_wada さん が講師を努めてくださったテスト駆動開発の研修では開発手法についてライブコーディング形式で学ぶことができ、多くの反省を促される時間となりました。
要件を手をつけやすいように整理し、テストを書き、これをクリアできるようにコードを書いていくサイクルをライブで見ることで、今まで腑に落ちていなかった開発におけるテストの役割や、どうしてテストの記述分手間が増えるのにこれが生産性向上に繋がるのかなど様々な気づきが得られました。
余談ですが、普段個人 wiki とスケジュール管理に利用している emacs の org-mode でライブコーディングの内容を詳細にまとめて同期向けに共有したところ emacs を使っている新卒がいることに t_wada さんが感動してくださり、そんな t_wada さんの反応を見た自分も感動しました。
データサイエンス
データサイエンスに関しては個人ではなかなか体系的に学びづらい AB テストによる効果計測や、実世界に溢れる整形されていない煩雑なデータを扱う上で重要な前処理に特化した研修など痒いところに手が届くような学びを多く得ることができました。
AB テストに関する研修ではどうして AB テストは因果関係の知識獲得に有用なのか、また AB テストに必要な統計学など考え方の基礎となるような知識から、よくある AB テストの落とし穴といった実践的な内容まで幅広く学びました。
前処理に関してはよく遭遇するケースを網羅するような勢いで種々のケースごとに複数の前処理方法のメリット・デメリット、パフォーマンス比較などを実際に pandas で実装しながら学んでいきました。
何事においてもそうですが pandas の使い方にも派閥があるようで、同期の中でも pandas.DataFrame.query
をよく使うか否かは大きく割れていたように感じました。
まとめ
新人研修を通してデータサイエンスとソフトウェアエンジニアリングについて縦横無尽に学ぶことで、リクルートで触れることができる技術の幅と自由さを体感できただけでなく、両分野を横断的に見れる広い技術的な視野を入社初期に獲得することができたと感じています。 これは今後開発を行なったり、各分野を深掘っていく際にもとても強い武器になると感じています。
この記事を読んでいる皆様の抱く「リクルートに入社するとどんなことを学べるのかな?」という想像が、少しでも具体化されていたら嬉しいです。
最後に
さて、ここまで読んでいただきありがとうございます。このような技術研修を行っている弊社では絶賛新卒採用を行っております。
===========================
===========================
興味のある方はぜひ申し込んでみてください!
※書影はそれぞれ下記ページより引用致しました
『プログラマが知るべき 97 のこと』
〈 https://www.hanmoto.com/bd/isbn/9784873114798 〉
『SQL アンチパターン』
〈 https://www.hanmoto.com/bd/isbn/9784873115894 〉
『テスト駆動開発』
〈 https://www.ohmsha.co.jp/book/9784274217883/ 〉
『事業をエンジニアリングする技術者たち』
〈 https://www.lambdanote.com/products/engineers-in-voyage 〉
『A/B テスト実践ガイド』
〈 https://www.hanmoto.com/bd/isbn/9784048930796 〉
『前処理大全』
〈 https://gihyo.jp/book/2018/978-4-7741-9647-3 〉
主に旅行領域でデータ分析などを担当
橋本大輝
新卒でリクルート入社。コーディングも好きですがCGも好きです。