giftee Tech Blog

ギフティの開発を支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信しています。

25卒新卒dev研修を振り返ってみる

eyecatch

はじめに

こんにちは! 25年度新卒エンジニアとして入社した zacker といいます。

この記事では 同じく新卒エンジニアの さとしょう と共同執筆で、新卒エンジニアメンバーで2ヶ月間のdev研修の内容をお伝えします!

私が「ギフティの研修について」、さとしょう が「研修を通して考えたこと・学んだこと」というそれぞれの視点から紹介していきます。

ギフティに新卒として入社したときの空気感が伝わると嬉しいです。

ギフティの研修について

ギフティの研修ってどんな感じ?

ギフティの研修は大きく2つに分かれています。

1つ目は新入社員全員が受ける「新入社員大学」で、ギフティの各部署の方が講師となって、それぞれの部署の役割や事業について学びます。2つ目はエンジニア向けのdev研修で、Webに関わる技術を身につけるためのブログサービス開発を行います。

この記事では、dev研修の内容をお伝えしていきます。

dev研修では、ブログアプリケーションを開発するという課題の中で、設計から実装まで一連の開発の流れを体験することができます。 また、ギフティのプロダクトの多くは Ruby on Rails で開発されているため、配属後を見据えて、本研修の開発言語として Ruby が採用されました。

しかし、この研修では Ruby on Rails などのフルスタックフレームワークを利用することができません。

高機能なフレームワークを使わずに、Webrick のような必要最小限の gem のみを利用して開発を行いました。フレームワークが提供する機能を自分の手で実装することで、Webに関わる技術について理解を深めることができました。 また、実装で困ったときには「Rails ではどうしているんだろう? Rails のコードを読んでみよう」というように、Rails を使っていないのに Rails の知識が身につくこともありました。

開発と並行して、セキュリティ、Web、AWS、DBについて4冊の課題図書を読んでいきます。 研修中に読むことで「裏側ってこうなってたんだ」「ここも注意して作ったほうが良さそう」といった発見が次々とあり、理解が深まっていくのを実感できました。

自分たちで考えられる余白が多い

研修というと、あらかじめ決められた計画に沿って進めていくイメージがありました。

しかし、ギフティのdev研修は「自分たちで研修をデザインできる」部分が多く残されています。 もちろん、「要件定義をする」「作業計画を作る」などのチェックポイントは用意されていますが、それ以外の部分は柔軟に進めることができます。

そのため、ただ決められたことをこなすだけでなく、たくさんのことを学びたいと思うことができました。「ここ気になるんだけど一緒に勉強しない?」というように、即興でRailsやAWSのミニ勉強会を開いて基礎を学んだり、互いのアプリケーションを触って改善点を考えたりもしました。 また、開発中に感じた小さな疑問について同期で話し合うことで、理解していたと思っていたことでも、意外と分かっていなかった部分があることに気づくことができました。

そして、研修が始まって1ヶ月が経った頃、だんだんと「研修中に感じた興味を深掘りしたい」という思いが強くなり、それを実現するために同期のメンバーと「この研修をどのようにしていきたいか」という話をすることもありました。 このような話ができるのも、好奇心を持って積極的に取り組むことができる同期に恵まれたからだと感じています。

トレーナーが心強い

研修期間中は、先輩エンジニアの方がトレーナーとして研修の進行や相談に乗ってくれます。

朝会で今日やることを共有したり、要件定義・作業計画のチェックをもらったり、夕会でその日の振り返りをしたりと、日々様々な場面でサポートを受けることができます。

トレーナーからは開発だけでなく、プロダクトの価値についても考えさせられるような質問をいただくことがありました。「ユーザーってログインしたいんだっけ?」という質問が飛んできたときは、機能を作るのであればユーザーにとって嬉しいことがなければいけないということを改めて実感しました。

夕会で話すトレーナーは毎週入れ替わりになっていました。トレーナーもそれぞれ興味や得意分野が違うので、いただけるフィードバックの角度が異なり、それが自分が考えるときの視点にも影響してきます。セキュリティに詳しいトレーナーが担当になった同期は、プロダクトがより安全になっていくということもありました。

中間発表

研修が始まって1ヶ月が経つ頃に、開発の進捗や学びを共有する発表会があります。

中間発表では、自分たちが開発しているサービスの内容や、それにかける思い、開発で工夫した点などを発表します。成果を披露するだけでなく、学びを共有し合い、フィードバックをもらって新たな気づきを得ることが大きな目的です。

発表にはトレーナーだけでなく、多くのエンジニアの方が参加してくださいます。Slack上にはリアルタイムで感想がつぶやかれるチャンネルがあり、エンジニアの方が感じた生の声を見ることができます。

Slackの実況チャンネル

面白いフィードバックの一つとして、エンジニアの方がアプリケーションに対してセキュリティ攻撃を仕掛けてくれます。 .envファイルを盗まれたり、XSSでページが壊れたりと、ヒヤッとする場面が多いですが、実際の攻撃を体験することで、セキュリティの重要性を身をもって学びました。

研修を通して考えたこと・学んだこと

ここからは zacker に代わり、さとしょう がdev研修を通して得た、気づきであったり、思考、そして学びについてお話しします。

一人ひとりが異なる「冒険」を選べる研修

dev研修は大きく分けて2つのフェーズに分かれています。
ブログサービスの要件定義およびサービス全体に関わる設計を行う段階と、実際に開発を行う段階です。

この研修の素晴らしい点は、一人ひとりが自分なりの「冒険」を選べることです。私は「ブログサービス×日記」という方向性を定め、プロダクトの価値をどのように実現させるかという点に重きを置きました。同期たちもそれぞれ異なる観点で研修の目的地を定めていました。

私は要件定義のフェーズで、プロダクトの価値を実現させるための構想を深く練ることに情熱を注ぎました。「ユーザーにとって本当に価値あるサービスとは何か?」を徹底的に考え抜く時間は、本当に充実していました。

同期の発表で気づいた、研修に正解はないということ

研修が1ヶ月経った頃の中間発表は、まさに「学びの宝石箱」でした。

同期の発表を聞いて、様々な刺激を受けたのを覚えています。ある同期は興味を持った技術をどんどん深掘りしていく行動力を見せていました。別の同期は開発の進捗を可視化して、プロジェクトの状況を一目でわかるようにしていました。また、「わからない」ことに真摯に向き合い、壁打ちで思考を整理している同期もいました。

みんな異なるアプローチで研修に取り組んでいるのに、それぞれが素晴らしい学びを得ている。この光景を見て、「研修に正解はないんだ」と実感しました。

この発表を通じて、私自身も大きな気づきを得ました。技術を学ぶ上で最も重要なのは、自分が興味を持ったテーマについて、まるで好きなことについて語るように、関連部分まで深く理解して自分のものにしていく姿勢だということです。

何より強く感じたのは、「これで終わりじゃない、ここからが本番だ」という前向きな気持ちでした。

研修後半で見つけた「自分なりの学習スタイル」

中間発表を終えて、研修後半に入ると、学習に向き合う姿勢が大きく進化しました。

同期の多様なアプローチを見て気づいたのは、「広く浅く学ぶ」フェーズ「深く掘り下げる」フェーズを意識的に使い分けることの重要性でした。新しい技術に出会ったときは幅広く調べて全体像を掴み、興味を持った分野については徹底的に深掘りする。この学習リズムを意識することで、学習中に迷子になることが減り、効率的に知識を獲得できるようになりました。

作業管理の面でも大きな変化がありました。同期の発表で「進捗の可視化」の威力を目の当たりにして、私もGitHub Projectsを活用するようになりました。それまでGitHub Issuesでタスクを列挙していましたが、Projectsでタスクを意味のあるまとまりに分け、各作業の想定時間を明記することで、自分の作業ペースが把握でき、計画的に研修を進められるようになりました。

そして何より意思が固まったのが、「技術のための技術」よりも「ユーザーのための技術」を心がけることです。研修前半でトレーナーから問いかけられた「ユーザーってログインしたいんだっけ?」という言葉を改めて振り返り、「機能を作ること」と「価値を提供すること」の違いを深く理解しました。開発中に迷ったときも、「この実装はユーザーのどんな課題解決につながるか?」を判断基準にする思考が身につきました。

ギフティならではの「学習環境」を使い倒す

研修を通じて実感したのですが、ギフティには学習を加速させる環境が豊富に用意されています。

Slackのtimesチャンネルに学習メモを投稿すると、先輩エンジニアの方々から的確なアドバイスをいただけることがありました。また、夕会では毎日その日の学びを振り返るので、「今日は何を学んだんだっけ?」と自然に内省する習慣がつきました。

同期同士でも、日々の学びを共有する雰囲気があったり、それぞれが自分ならではの学びをtimesチャンネルで公開していたので、自分にはない知識や観点を共有し合うことで学習が加速していく実感がありました。

最終発表で感じた「個々人の学びの共通点」

ついに迎えた最終発表の日。2ヶ月間の集大成を発表する瞬間でした。

振り返り資料を作成しながら、研修初日の緊張した自分、中間発表で新たな視点を得た自分、そして今の自分を比較すると、明らかに「エンジニア/社会人としての基盤」が形成されていることを実感しました。同期や先輩エンジニアとの対話を重ねる中で、自分なりの学習方法を言語化して確立できたことで、エンジニアとしての自信が芽生えていたからです。

当日の同期の発表は、まさに「学びの多様性」の素晴らしさを体現していました。

  • パフォーマンスチューニングに情熱を注いだ人
  • CSSの奥深さに魅了された人
  • セキュリティの深い学びを得た人

というように、みんな異なる「専門性」を見つけていました。

驚いたのは、アプローチは違っても、全員が同じ境地に到達していたことです。

  • 技術を深く理解する楽しさを知った
  • ユーザー視点でプロダクトを考える大切さを学んだ
  • 駆け出しのプロとして自分なりの学習方法を確立できた

一人ひとりが独自の道を歩んでいるのに、エンジニアとしての本質的な価値観は共有されている。この発見は、ギフティの研修が単なる技術習得ではなく、「エンジニアとしてのマインドセット」を育成していることを物語っているなと感じました。

ギフティの研修で得た「一生もの」の学び

振り返ってみると、この研修で得たものは技術的なスキル以上に大きな価値がありました。

以下の3つの要素は、私にとって一生ものの学びと呼べるものです。

  1. 疑問を放置せず、とことん追求する習慣

    • 「なぜこうなっているんだろう?」と思ったら、表面的な理解で終わらせず、深く調べて理解するまで追求する姿勢
  2. チームで学ぶことの価値

    • 一人では辿り着けない気づきを、同期との会話や先輩との壁打ちで得られることを実感
  3. ユーザー視点での技術判断

    • 「技術的に実装できるか」だけでなく、「ユーザーが本当に求めているものか」を常に考える視点

これらの学びは、配属後もエンジニアとして成長していく上で、きっと長く役立つものになると思います。

まとめと謝辞

実際にギフティの研修を受けてみて、技術を学ぶだけではなく、「エンジニアとしてのマインドセット」を育ててくれる環境だったなと思います。

技術を深く学べるのはもちろんですが、「自分なりのエンジニア像」を見つける良い機会でもありました。同期と一緒に切磋琢磨して、先輩エンジニアから温かいサポートを受けながら、しっかり成長できる環境だったなと振り返っています。

これからは各チームに配属されますが、研修での学びをベースにして、さらに学びを積み重ねて、組織や事業に貢献できるよう頑張りたいと思います!

研修期間中にたくさんサポートしてくださったトレーナーの皆さん、そして一緒に学び合った最高の同期メンバーのおかげで、とても充実した2ヶ月間を過ごすことができました。本当にありがとうございました!

ギフティでは一緒に成長していける仲間を募集しています

最後までお読みいただき、ありがとうございました。

ギフティに興味を持っていただけた方は、ぜひ一度お話ししましょう!