2025年度新卒エンジニア研修レポート
はじめまして。2025年新卒エンジニアのtakeumaです。現在はニコニコQセクションに所属しています。
本記事は、2025年4月中旬から7月末にかけて行われたドワンゴの2025年新卒エンジニア研修について、その内容と感想をまとめたものです。
エンジニア研修の全体像
ドワンゴの新卒エンジニア研修は、「マインドセットを学ぶ」「ソフトウェア開発に必要な基礎知識を学ぶ」という2つの目的をもって行われています。 特に、新社会人として社会・会社・組織に貢献していくうえで、エンジニアに必要なマインドセットを身につけることができたこの研修は、私にとって非常に有意義なものでした。
エンジニア研修は大きく分けて以下の3つのフェーズで行われました。
- 04/17 (木) 〜 05/23 (金) 基礎研修:Webアプリケーション開発、セキュリティ、AWSなど
- 05/26 (月) 〜 06/23 (月) 個人課題:ブログサービスを作ろう
- 06/24 (火) 〜 07/31 (木) チーム課題:ニコニコ動画のクローンサービスを作ろう
各フェーズではまた、以下の3つのマイルストーンが共通して設けられ、スケジュールを立てて行動しやすい仕組みとなっていました。
- キックオフ:要求仕様の読み合わせ、取り組み方などの共有
- 前半振り返り会:中間地点での進捗共有、振り返り
- 後半成果発表会:最終成果物のデモンストレーション、振り返り
振り返りには、KPT (Keep/Problem/Try) フレームワークを用いて、それぞれの取り組みにおいて良かった点・改善点・次回挑戦したいことを整理しました。 KPTは体系的な振り返りのフレームワークとして有名なものですが、新卒ならではの力不足を痛感して課題点 (「Problem」) ばかりに目が行きがちな自分にとっては、客観的に自分の取り組みを褒める「Keep」・次に取るべきアクションを定める「Try」を明確にできるこのアプローチは有益でした。
また、研修全体を通して、一日のルーティンも以下のように枠組み化されていたため、リモートワークであってもリズムを整えることができました。早起き大事!
- 09:00 〜 10:00 朝読書
- 10:00 〜 10:30 朝会
- 15:00 〜 15:30 コーヒーチャット
- 17:30 〜 18:00 振り返り会
朝読書では、脳がもっともインプットを受け入れやすい朝一番に、Web関連技術・ソフトウェア開発・チームワークやマネジメント・コミュニケーションなどに関する課題図書を読みました。 技術に関するインプットは個人課題・チーム課題で活かされ、シナジーが生まれましたし、マインドセットに関するインプットはチーム開発者としての基礎を築くうえで役立ちました。
朝会・振り返り会では、その日のタスクとその進捗を整理・共有しました。ここでもKPTフレームワークを活用し、改善のサイクルを回すことができました。
午後の「コーヒーチャット」では、エンジニア新卒同期で雑談をする時間が設けられました。 リモートワークだからこそ、こういった雑談の時間があるのはありがたかったです。 研修課題の技術的な質問から、最近の趣味や生活の話まで、さまざまな話題で盛り上がりました。 同期との距離を縮めることで、研修期間中のコミュニケーションが円滑になっただけでなく、配属後も社内の他チームやサービスに対する解像度を高めやすく、連携が取りやすい環境ができました。
こうして、エンジニア研修は全体から細部まで精緻に構造化されていたと感じます。それにより、インプットとアウトプット、キックオフと振り返りなどがバランスよく配置され、効果が最大化されていたように思います。
基礎研修
この章から、研修期間中の3つのフェーズである基礎研修・個人課題・チーム課題について紹介します。
ZEN Studyを用いた学習
基礎研修では主に、ドワンゴの提供するe-ラーニングサービスZEN Studyを使って、Webアプリケーション開発に必要な基礎知識を学習しました。 私たちもユーザー視点でサイトや教材内容をウォークスルーすることで、ZEN Studyやその教材を作っている方にフィードバックを返す、という目的も兼ねていたようです。
新卒エンジニアはさまざまなバックグラウンドと技術スタックを持って入社するもので、おのおのの足りていない知識をこの教材で補うことができます。 例えば私は、Ruby on RailsやDjangoを用いたバックエンド開発やTypeScriptを用いたフロントエンド開発自体には慣れていましたが、特にDockerについては勢い半分で使っていた節がありました。この教材で、一からDockerfileやcomposeファイルを記述しながら可搬性のある環境を構築でき、良い経験となりました。
AWS研修
基礎研修の最後に行われたAWS研修は、ニコニコサービスの全システムをAWSに移行した今、特に重要な研修項目です。 クラウド技術は、教科書に書かれるような理念的な知識と実際のベンダーごとのドメイン知識とに大きな難易度の飛躍がありがちです。 初めてプロジェクトのインフラを触ることになった際に、インスタンスを立てる時に出てくる数々の設定事項 (あるいは、TerraformなどのInfrastructure as Codeを記述する時のさまざまなオプション) で目が回ったという経験は、皆さんもあるかと思います。 そこで、一週間かけて座学とクラスルームトレーニングを行い、手を動かしながらAWSの各サービスを理解できるこの研修は、とても実践的なものでした。
セキュリティ研修
また、基礎研修期間のあとにある個人課題の期間中に、セキュリティ研修も受講しました。 セキュリティ研修では、グローバルセキュリティエキスパート株式会社 (GSX) 様による「SecuriST®認定Webアプリケーション設計士」「SecuriST®認定脆弱性診断士」の2講座を2日かけて受講しました。
座学では、 OWASP Top 10 などの文書でも標準化されているようなセキュリティリスクについて網羅的に学び、それらを克服したセキュアなWebアプリケーションを構築するための要件や設計を学びました。 また、脆弱性診断ツールを利用して、Webアプリケーションに潜むリスクを洗い出して分析するハンズオンも行われました。講座で用意されたサンドボックス環境の中で、古風で脆弱なショッピングサイト「BadStore」に対し手動で攻撃を仕掛けたり、ZAP (Zed Attack Proxy) を用いて自動的に脆弱性診断を行ったりした経験は、「枯れた技術」に相乗りしているだけでは気づけないようなセキュリティリスクへの危機意識を高めてくれたものです。 セキュリティ研修に関して、GSX様とのインタビューにも参加しております (記事)。詳しく知りたい方はぜひ読んでみてください。
このセキュリティ研修は、個人課題に取り組んでいる最中に受講したため、学んだ内容をすぐに個人課題のプロダクトに反映させることができました。 セキュリティリスクを洗い出して対策するというサイクルを実際のプロダクト開発の中で回すことができたのは、知識の定着につながったと思います。
個人課題
個人課題では、基礎研修で学んだWebアプリケーション開発の基礎を活かし、ブログサービスを開発しました。 個人課題は、下記のような学びを実際のプロダクト開発を通して自分で得ることが目的で行われました。
- Webサービスに必要な環境構築を学ぶ・準備する
- 基本的なWebサービスのスタックを学ぶ
- 基本的な開発サイクルを学ぶ
必須の要件は、ブログ記事のCRUD、ユーザー認証、AWSへのホスティング、アクセス制御などのみで、インフラ構成の検討や技術選定に関しては大きな裁量がありました。
成果物
個人課題の成果物「oh-blog」
個人課題で制作したブログサービスでは、上記の機能要件・非機能要件を満たしつつ、研修後の配属先チームでも活かせるような技術スタックを選択しました。 フロントエンドではReact、バックエンドではRuby on Railsを用いて、AWSのEC2インスタンス上にホスティングしました。 また、CI/CDをGitHub Actionsで構築したり、インフラ構成をTerraformで記述したりするなど、短期的な開発であっても実際の運用や保守を見据えた技術に挑戦しました。
開発の過程
個人課題は、キックオフから前半振り返り会までの約2週間、その後後半成果発表会までの2週間の、合計約1ヶ月の期間で行われました。
実際に着手を始めてみてから、インフラを使いこなすことの難しさを痛感しました。 S3にフロントエンドの静的ファイルを置き、EC2でバックエンドを立ち上げる、というだけでなく、CloudFront、Route53、ALB、EFSなどのサービスも組み合わせて、適切なネットワークを構築するのに苦労しました。
スケジュール管理が甘かったために、成果物は要件を満たすものの、自分で実現したかった機能の実装は一部諦めざるを得ませんでした。 チームとのコミュニケーションがあまり生じない個人開発でのスケジュール管理でも、スケジュールやタスク、設計などのドキュメントを可視化して、「自分自身と対話している」状況を作ることの重要性を知りました。
一方で、一からWebアプリケーションを完成させた経験は、Web技術の全体像を把握するうえで非常に有意義なものとなりました。 例えば、APIなどの非同期状態管理にTanStack Queryを積極的に活用したのですが、その経験を活かして配属先のプロジェクトでTanStack Queryを導入することもできました。
振り返り
個人課題最後の成果発表会では、成果物のデモを行うだけでなく、プロジェクトの振り返りも行いました。 プレゼンテーションのスライドでは、真っ先に「『ローカルで動く』から『本番で動く』までの道のりってこんなに長かったんだ…」と書き込みました。 セキュアなシステムを設計し、可用性の高いインフラにし、それでいながらコストを最適化する、など多様なビジネス要件を実現できるための選択肢の多さが、道のりの長さを生んでいるのだと感じました。
趣味ではなく仕事として開発をするうえでは、分からないものをデフォルト値のまま使う (あるいはCoding Agentに丸投げする) のではなく、こういった長考による意思決定を重ねる必要があります。 一方、CI/CDなどを構築して、品質を保ちつつ開発の道のりを短くしていくことも重要です。
チーム課題
チーム課題では、新卒エンジニア5人のチームを組み、ニコニコ動画のクローンサービスを作成しました。 個人課題に加えて、仕様の策定、タスクの分担、進捗の共有、Pull Requestでのコミュニケーションなど、チームで開発を行うためのさまざまな要素が加わりました。
必須の要件はさほど多くなく、動画のアップロードと再生、コメントの投稿と描画、ユーザー認証などの基本的な要求があるのみで、コンセプトから技術選定まで、チームの色を出すことができました。
私たちのチーム名は「平成ノスタルジア」となりました。平成らしいUI/UXのWebサイトを令和の技術で作ろう、というコンセプトで開発を行いました。
成果物
チーム課題の成果物「VideoArchive1989...」
グレーを基調としたカラーパレット、動画プレイヤーにかかったブラウン管風のシェーダー、画質の粗いコメント描画など、懐かしさを感じる見た目になっているかと思います。
フロントエンドはReact、バックエンドはKotlinのKtorフレームワークを用いて開発しました。Webアプリケーションとしてよくあるクライアントサーバー構成に加えて、FFmpegを用いて動画のエンコード処理を行うワーカーも構築しました。 動画のS3へのアップロードイベントをトリガーにして、動画エンコードワーカーがAWS Batchによって起動するような構成にしました。
「VideoArchive1989...」のインフラ構成
開発の過程
チーム課題は合計5週間の期間で行われました。
個人課題でスケジュール管理の重要性を痛感したため、チーム課題ではGitHub Projectsを中心に、IssueやPull Requestをカンバンやガントチャートで可視化しながら、緻密なスケジュール管理を行いました。 また、OpenAPIによるAPIスキーマとAPIクライアントの自動生成を行うなど、ドキュメント管理を徹底しつつ、そのための管理工数が膨れ上がりすぎないような工夫も行いました。
動画サービスを制作する経験があるという方はなかなかいないと思いますが、私もその一人で、S3の署名付きURLを用いた動画のアップロード、FFmpegを用いたエンコード、ストリーミング再生など、どう実現すればいいのか想像もつかないような要件に不安を感じました。 そのため、着手する前に技術調査をチーム全員で行い、実装のイメージを共有してからタスクの分担を行いました。
短期集中でのプロジェクトでは、チーム内のコミュニケーションを密に取ることが何よりも重要です。 私たちのチームは、エンジニア研修全体の朝会の後・振り返り会の前に、チーム内での情報共有の時間を設け、その他の時間もSlackですぐに打ち合わせの時間を取れるようにするなど、コミュニケーションの頻度を高める工夫をしました。 また、週に一度はなるべく出社して、対面でのコミュニケーションを取るようにしました。 「懐かしさを感じるUI/UX」という人によって感覚の異なる概念についてブレーンストーミングをする際など、対面でのコミュニケーションが特に有効で、おかげでチームメンバーの趣味や美学を反映させることができたかと思います。
振り返り
成果発表会では、サービスを社内に公開しつつ、デモンストレーションを行いました。 チームメンバーが事前にアップロードした懐かしいコンテンツに加えて、先輩や同期からもさまざまなコンテンツがアップロードされ、一時はインターネット博物館のような様相を呈しました。
チームでは、私は主にフロントエンドの実装とTerraformを用いたインフラ構築を担当しました。 最初は調査・学習に時間がかかって開発のベロシティが上がらないことも多かったのですが、徐々に慣れていき、自分なりの工夫ができたかと思います。 個人開発に比べても、自分の趣味やチームのやりたいことを反映させる余裕があり、楽しく開発をすることができました。 社内での成果発表会で「音声も音質を落としたようなエフェクトにしてみてはどうか」という提案を受けましたが、ちょうど音声処理などが趣味だったので、発表会後に個人的に実装してみました。 このように、研修期間が終わっても作り続けていきたいと思えるようなプロジェクトにできたことは、非常に有意義でした。
研修全体を振り返って
4ヶ月近くにわたるエンジニア研修を通して、「マインドセットを学ぶ」「ソフトウェア開発に必要な基礎知識を学ぶ」という2つの目的は達成されたと感じています。 趣味での個人開発とは異なる点として、技術調査を要する未知のタスクでも適切なスケジュール見積もりをすることや、ドキュメントを整備して自分自身やチームメンバーと対話することが、職業としての開発をするうえでは重要なマインドセットです。 技術的な基礎知識に関しては、特にAWSやTerraformを用いてインフラを構築する経験や、脆弱性診断を含めたセキュリティ対策の実践などを通して、プロダクト開発に必要な能力を身につけることができました。
上記に掲げた目標に加えて、同期や先輩とのコミュニケーションを深めることができたのも、研修全体を通して得られた大きな成果の一つだと思います。 同期とは、リモートワーク中心でありつつも自主的に出社日を設けたり、コーヒーチャットで雑談をしたりすることで、配属後の業務にも活きる関係を築くことができました。 研修を運営する先輩社員の方々や、研修中にメンターとしていろいろ指導してくださった配属先チームの先輩など、社内のさまざまな方と交流する機会もあり、技術的に助けられるとともに、ドワンゴの文化を理解することができました。
さて、本記事では、2025年新卒エンジニア研修についてまとめました。 また、チーム課題で結成された2チームのうち、もう一方のチーム「Physical Distance」でも、遊び心の多い動画サービスが作られていました。 同期の書いたこちらの記事もぜひ読んでみてください。
株式会社ドワンゴでは、教育事業、ニコニコ事業、モバイル事業など様々なサービス、コンテンツを一緒につくるメンバーを募集しています。 ドワンゴに興味がある・または応募しようか迷っている方がいれば、気軽に応募してみてください。