研修

2024年度新卒エンジニア研修を実施しました!

研修

はじめに

新卒エンジニア研修を担当しました ugo です!

今年も新卒エンジニア研修を実施し、全カリキュラムが無事終了しました。 この記事では、各研修の講師を担当したメンバーが、新卒エンジニア研修のカリキュラムの内容と研修資料をまとめました。ぜひご覧ください。

2024年度新卒エンジニア研修概要

新卒エンジニア研修のコンセプトは 「サービスを作るための技術要素や観点について、現時点で良いやり方を一通り学ぶ」 と設定しました。 サービスを運用していくために必要なオブザーバービリティといった領域も今年から研修に盛り込みました。

研修に参加した新卒エンジニアは3名です。 オフィス内はフリーアドレスとなっていますが、研修のためオフィスに固定席を設け、1ヶ月に1回程度の頻度でオフィスの別に席に移動する形態で実施しました。講師も新卒エンジニアの近くに座ることで、相談をしやすい環境づくりを行いました。

Railsチュートリアル研修

担当:horiyu、nissyi、ugo

Railsチュートリアルの研修はhoriyu、nissyi、ugoが担当しました。

研修の目的はRailsチュートリアルを通じて、WEBアプリケーション開発の基礎とRailsについての知識を深めてもらうことです。

MVCのパターンの理解、Gemを使わない認証機能の作成などを中心に学んでもらいました。

講師陣は研修中に出てきた質問に回答をしていたのですが、特にwebpackerとimportmap-rails、jsbundling-railsについての質問をもらった際は、講師も一緒になって調査をして学習会を開催しました。

学習期間中、Rubyコミュニティにも参加してもらいたいという思いでOmotesando.rb #98に一緒に参加しました。

そこで新卒の皆さんはRuby技術者認定試験の興味を持って本を買っていたり、LTに興味を持ったりと良い刺激になっていそうだったので良かったです。

AIを前提とした体験の実現に向けての勉強会

三宅(@monochromegane)が担当しました。

AIを前提とした体験の職種を超えた共通理解を醸成するため、AIを前提とした体験の実現に向けての勉強会を社内で再度実施しました。

詳細はペパ研ブログ「AIを前提とした体験の実現に向けての勉強会を開催しました」をご覧ください。

お産合宿

担当:donokun

お産合宿では新卒14期エンジニアの3人に@donokunが混ぜてもらって5/30,31の二日間で waiwai-ai というプロダクトの発案と開発をしました。

お産合宿はペパボで伝統的に行われている開発合宿で、自分たちが「もっとおもしろくできる」と思うものを存分に作ることが特徴です。新卒エンジニアの3人は勝手におもしろいことを進める集団なので、donokunは彼らのやっていきに乗っていきつつ開発プロセスのサポートや技術的な支援を行いました。

結果的にプロダクト開発の産みの苦しみ・喜びを短期間で体験できたと思っています。詳細は3人が発信してくれるとのことです。お楽しみに!

フロントエンド研修

担当:nacal、gyugyu、gatchan

フロントエンド研修はnacal、gyugyu、gatchanが担当しました。

研修の内容はRailsチュートリアル研修で作成したSNSアプリケーションのfrontendをReactに置き換えるというもので、用意した教材をもとに進めていただきました。

Railsチュートリアル第7版では、Hotwireの活用などによりNode.jsが不要なフロントエンド環境をデフォルトとした内容になっていますが、一般的に主流であるNode.jsを利用したフロントエンド開発を経験してもらうことでより現場に近い技術領域でのスキルセットを身につけることを目的として実施しました。

使用した教材はこちらで公開されています。

コンテナ

担当:drumato、shibatch

コンテナ研修は drumato, shibatchが担当しました。 10日間でLinuxのプロセス隔離機能からArgoCDまでを総ざらいするヘビーな研修でしたが、受講者の皆さんに楽しんでいただけたようで良かったです。

具体的には、以下の内容をベースに、関連する技術を「サービスを本番運用する」視点で深堀りつつ進めました。

  • コンテナ技術の基本的な考え方
  • Linuxカーネルで提供されているプロセス隔離機能や、その他コンテナランタイムが利用する機能
  • runcを直接触ったコンテナの起動
  • Dockerの使い方、Dockerfileの書き方、本番運用するうえでのプラクティス実践
  • GitHub Actionsの使い方、ペパボ社内で実際に利用されているActionsをもとにしたハンズオン
  • Kubernetesクラスタのアーキテクチャ理解、基本的なWorkloads APIハンズオン
  • ArgoCDの使い方

研修中は事前に用意した座学資料をもとにもくもく作業しつつ、疑問があったり詰まったりしたタイミングで講師に相談する、というハンズオンと、 その最中にdrumatoの方から突発的にコンテナ技術やインフラ運用、SREに関する理解を深めるためのクイズを出題し取り組んでもらいました。 私達が日常的に行っている、「扱う技術に対してエキスパートになっていく」ことと、「技術をどのように使って最高のシステムを構築/運用していくか」の二軸で議論できたので、 とても良い研修になったと思います。

実際に出した突発的なクイズをいくつか乗せておきます。

container-quiz1

container-quiz2

オブザーバビリティ研修

担当:pochy

オブザーバビリティ研修を担当しました、技術部のpochyです。

ペパボではオブザーバビリティ研修を今年から新卒技術研修の中に組み込みました。

研修は、スライドによる説明と演習とで構成しました。 説明フェーズでは、現代のWebサービスの運用における高いオブザーバビリティの必要性や、オブザーバビリティを高めるためのプラクティス、またペパボで使われているオブザーバビリティツールについて説明しました。 演習フェーズでは、k8sクラスタ上で動いているシステムのオブザーバビリティを高めるという実践内容を用意しました。このk8sクラスタは、前項の「コンテナ研修」で使われたものをそのまま流用しました。

内容の詳細や背景については別記事として投稿しましたので、興味があればぜひお読みください。 🔗: ペパボでもオブザーバビリティ研修を実施しています

説明につかったスライドはこちらです。

データエンジニアリング

担当:yancya

データエンジニアリング研修を担当したyancyaです。この研修はペパボで運用しているデータ基盤『Bigfoot』について完全に理解してもらうための1日でした。

まず、Bigfootの役割や、構成する要素と関係性の解説を行いました。BigfootではETL(Extract Transform Load)よりもELT(Extract Load Transform)寄りの構成を取っており、前者と後者で何が違うのか、なぜ後者に寄せているのかという事について、ディスカッションを通じて完全に理解してもらいました。

次に、Bigfootの主要な構成要素であるBigQueryがMySQLやPostgreSQLなどの一般的なRDBMSと何が違っていて、何が得意で何が不得意なのかという事について、実際に触りながら理解してもらいました。

Bigfootの動いているGoogle CloudのプロジェクトはTerraformによって構成管理されており、今年の一連の研修にはTerraformの研修が無かったので、自分たちが研修で使う権限について、その場で構成管理のリポジトリにPull Requestを出して貰うなどして、現場のリアル感を理解(わか)ってもらいました。

朝から夕方まで、ランチの時間も含めて丸1日にわたる研修でしたが、何かを教えるというより、索引を提示するだけで勢い良く知見を吸い取りに来てくれるという感じの会でした。終わる頃にはyancyaはシオシオになってしまいましたが、Bigfootを使って今後どんなことをしていきたいかなどの夢を語り合う参加者のみなさんの姿は、まるで生の映画を見ているようでした。やってよかった。

セキュリティ

担当:n01e0

セキュリティ研修を担当しました、セキュリティ対策室のn01e0です。

セキュリティは一朝一夕で身につく知識だけではないので、とにかく感覚を磨いてもらうことを目標にしました。 座学は少なめにしつつ、リクエストを取り入れた内容にし、ハンズオンの比率を高くしています。

演習の内容については社内限定のため、公開することはできませんが、Rails Tutoialで作成したアプリケーションに対する脆弱な実装を含むPRへのセキュリティレビュー体験やRails製の脆弱なアプリケーションに対する攻撃と修正を行ってもらいました。

公開版の教材はこちらです

機械学習

担当: watasan

今年の機械学習研修は、miyakeyが担当した「AIを前提とした体験の実現に向けての勉強会」を踏まえて、「AI前提のサービス開発」における機械学習導入の前提理解を目的として実施しました。

研修は以下のコンテンツで構成しました:

  1. 機械学習ハンズオン:Googleの「Machine Learning Crash Course」を活用し、AIの要素技術としての機械学習の役割理解を目指しました。受講生同士のオフラインでの質問し合いを促し、協調学習を実現しました。
  2. サービス導入ディスカッション:SUZURIでの実際の機械学習導入プロジェクトを事例として紹介。プロジェクトのプロセスや課題、成果を共有し、参加者が自社サービスへの機械学習導入を具体的に検討できるよう促しました。

参加者の反応は非常に良好で、特にサービス導入ディスカッションでは活発な議論が行われ、機械学習導入に向けたアクションプラン検討にまで至りました。 一方で、機械学習経験者向けのコンテンツ調整の必要性も感じられ、今後は受講者の経験レベルに応じたバランス改善を検討しています。

外部講師を招いた研修

担当:ugo、kyokutyo

外部講師の方をお招きして、より専門的な研修も実施しました。

  • モデリング & RSpec特別講座 (講師:igaigaさん)
  • データベース特別講座 (講師:yokuさん)
  • 画像処理特別講座 (講師:yoyaさん)
  • TDDワークショップ (講師:t_wadaさん)
  • コミュニティの歩き方 (講師:junebokuさん)

モデリング & Rspec 特別講座

igaigaさんをお招きして、モデリング & RSpec特別講座を開催しました。 以下のスケジュールで講座を実施しました。

  • 1日目: モデリング (3時間)
    • 前半: 座学
    • 後半: モデリングのワークショップ
  • 2日目: RSpec (3時間)
    • 前半: 座学
    • 後半: RSpecのワークショップ

Railsの練習帳を教材として使い、座学で学んだことをワークショップで実践してみるという形式でした。ワークショップでは実際にモデリングをして、お互いで自身のモデリングを発表して、レビューをもらうといった内容となっていました。

質問が多く出て、教材には書いてない発展的な内容まで教えていただくことができました。

データベース特別講座

yokuさんを招いてDB特別講座を開催しました。

『MySQLのロックの種類とその競合』 というタイトルで、MySQLのロックの仕組みを詳しく解説していただきました。 特に、メタデータロックとInnoDBのロックに焦点を当て、異なる操作間での競合やトランザクションの影響について具体例を交えて説明いただきました。 ALTERやDROPなどのテーブル操作がSELECTやUPDATEとどのように競合するか、またインデックスを利用したロック範囲の調整方法など、実践的な知識を実際にデモを見せてもらいながらご紹介いただき、理論だけでなく実際の運用に役立つ知識が身につく内容となっていました。

画像処理特別講座

WEBアプリケーションでは商品画像、サムネイルといったようにさまざまな画像を取り扱います。 そこで、yoyaさんをお招きして、画像圧縮に関する講座を開催しました。

色差サブサンプリング、周波数ドメイン、予測符号化といった画像コーデックに関わる手法やGIF、PNG、WebPなどの画像フォーマットについて、基礎から学べる内容となっていました。

TDDワークショップ

t_wadaさんをお招きして、TDDワークショップを開催しました。 新卒エンジニア3名と、既存のパートナー6名の計9名が参加しました。

参加した9名によるテックブログ「t_wadaさんによる2024年度版TDDワークショップを開催しました」をご覧ください。

コミュニティの歩き方

junebokuさんをお招きして、「コミュニティの歩き方」と題した研修を開催しました。

テックカンファレンスのオフラインでの開催が増える中で、改めてコミュニティとの向き合い方をお話しいただきました。 新卒エンジニアと新卒3年目までのメンバーが参加しました。

新卒エンジニアは後述するCTO協会合同新卒研修に参加していたため、合同研修をよりよくするためのヒントが得られたとおもいます。 資料が公開されているためぜひご覧ください。

資料

ソフトウェアとコミュニティ (ペパボでの研修) @ 2024-06-14

日本CTO協会新卒合同研修

担当:kurotaky

エンジニア育成は多くの企業にとって重要な課題です。特に新卒エンジニアの育成は、将来の各社の技術力を支える基盤となりますが、同時に大きな育成コストがかかることも事実です。 この課題に対して、日本CTO協会のエンジニア育成ワーキンググループが主催する「新卒合同研修」を企画しました。

この取り組みの特徴は、複数の企業のCTOや有志が協力し合い、それぞれが講義や研修を提供することで、個々の企業の負担を軽減しつつ、業界全体で新卒エンジニアを育成する点にあります。 研修内容は多岐にわたるテーマで、エンジニアとしての基礎から実践的なスキルまでカバーします。以下はそのテーマの一覧です。

  • キャリア戦略・フォロワーシップとマネジメント
  • Git基礎ハンズオン
  • BtoB SaaS開発基礎
  • アジャイル開発入門
  • BigQueryによるデータ分析入門と生成AIの活用
  • AWS研修
  • サーバー解体研修
  • 生成AI講義
  • 日本CTO協会による合同ISUCON研修

新卒エンジニアとしては、幅広い技術領域の基礎を学べ、異なる企業の同期とのネットワーキングの機会になりました。 研修を提供する企業としては、育成コストを抑えながら、自社だけではできないテーマを提供できたと思います。

研修発表会

研修の最後に、発表会という形で研修で学んだことを15分程度で以下の内容を発表してもらいました。

  • 研修を通しての学びと変化
  • 楽しかった・面白かった思い出
  • 今後の意気込み

終わりに

講師の方々や各社新卒同期との交流で技術だけではなく、考え方も学ぶことができたと感じます。それは新卒エンジニアの皆さんが積極的に質問やコミュニケーションをとっていたからでしょう。仕事を始めるとわからないことや自身で道を切り開かなければならないことが出てきます。そんな時は、新卒エンジニアの持ち味である積極性を発揮して、周囲の人から吸収し、専門性を磨き上げもらえたらと思います。

最後になりますが、新卒エンジニアの皆さま、研修お疲れ様でした!また、研修を作り上げてくださったパートナー皆さま、外部講師の皆さま、日本CTO協会の皆さま、研修に協力していただいた皆さま、ありがとうございました!