レアゾン・ホールディングス 2024新卒エンジニアバックエンド研修 -研修から実践へ: 未経験からバックエンドエンジニアへの道のり-

こんにちは!2024年新卒menu株式会社事業部 バックエンドエンジニアの土肥です。
アイルランドの大学でComputer ScienceとBusinessを専攻しました。CSの基礎知識はありましたが、具体的な開発の経験があまりなく、不安いっぱいで入社しました。しかし今では、毎日仕事を楽しみながら成長できています。この変化をもたらしてくれたのが、レアゾン・ホールディングスでのバックエンド研修です。ここでの基礎知識習得なしでは今の楽しい生活はありえません。今回はその研修プログラムについて紹介します。

研修の概要

研修の概要はオウンドメディアの記事で詳しく紹介していますので、こちらからご覧ください。 media.reazon.jp

テーマの概要

今回のバックエンド研修は7日間に渡り、以下の講義が行われました。

  • データベース、クエリ文について
  • webサービスAPIについて
  • ToDoリストに必要だと思われるAPIを作ってみよう
  • フロントエンド研修で作成したECサイトのバックエンド側を作ってみよう

テーマの詳細

データベース、クエリ文

 この講座では、最初にデータベース(以下DB)とは何かを学習し、その後にSQL・NoSQL・NewSQLの3つのDBの違いをグループごとに調べ発表しました。研修では新卒エンジニアに能動的に学習する癖をつけるために沢山の調べ作業がありましたが、それもこの1つです。バックエンドエンジニアとして、トランザクションにおけるACID特性やN+1問題についてチームで理解を深めることができたのはなくてはならない経験でした。
 その後はER図*1を書いてDBの設計練習をしました。DB設計はこれから書くコードの未来を80%担うと言っても過言ではないと教わったので、みんな真剣に細部までこだわって書いていたのが印象的です。

講義で描いたER図の一例

 次に、標準SQLを用いてクエリ文を書く練習を行い、先輩エンジニアが作って下さったオリジナル問題をひたすら解きました。select、join、count、insert・・・。今までSQLを触ったことない人も身体でクエリ文を覚えることができる良い時間になりました。

WebサービスAPI

 このテーマでは、そもそもWebサービスってなんだろう?HTTP、サーバーって何?といったバックエンドに必要不可欠な基本的な知識について基礎から学びました。ページが表示されるまで速いことで有名な阿部寛さんのホームページを用いてHTTPを学べたのは印象的でした。
 また、APIとは何かも1から学びました。APIとはApplication Programming Interfaceの略で、ソフトウェア同士が情報をやりとりするために使うインターフェースのことですが、それを実際にcurlなどを使って叩くことによりAPIがどのように使われるのか、そしてAPIのレスポンス形式を見ることができ、エンドポイント、HTTPメソッド、何をリクエストして何がレスポンスとして返ってくるかなど、APIの機能と使い方を具体的に理解することができました。

APIのイメージ図 情報をやり取りしている

ToDoリストに必要だと思われるAPIを作ってみよう

 この研修では、上記のwebサービスAPIについて学んだ後すぐ実践的な練習として、以下の4つの処理(CRUD)に関連するAPIを作成しました。

  • 作成 (Create): 新しいToDoをデータベースに作成し、それを使用者に確認させるためのAPI
  • 読み出し(Read): データベース内の指定されたToDoを取得するAPI
  • 変更 (Update): ToDoリストの一項目を更新するためのAPI
  • 削除 (Delete): 不要なToDoを削除するためのAPI

 これらの処理を作成するにあたり、バージョニング、エラーハンドリング、セキュリティ、スケーラビリティなど、多くの重要な点を考慮する必要がありました。バックエンドエンジニアはAPIがどうやって機能するのか、どうやって管理・保守されるのかといった、より深い視点から理解することが重要なことを肌で感じることができました。

フロントエンド研修で作成したECサイトのバックエンド側を作ってみよう

 上記のToDoリストAPI作成の練習を経て、前回のフロントエンド研修で作ったECサイトのバックエンド側を制作するグループワークを行いました。ユーザーの登録、ログイン、ログアウトや、商品一覧の参照をするAPIを実装しました。 それだけではなく、ユーザーがECサイトでどのような操作を行う可能性があるかを深く考え、どのようなエラーハンドリングを行うべきか考える学習もできました。
 また、フロントエンドがどのようなデータをもらうことができれば嬉しいか、どのようにバックエンドと連携するのかを考えることができる素晴らしい機会にもなりました。
 さらにこのグループワークでは、先輩エンジニア2人以上がPR(プルリクエスト)をApproveしないとmergeできないというルールがありました。機能によってブランチを分けたり、コンフリクトを解消したり、これは研修初日に学んだGit研修の良い復習になりました。また、先輩エンジニアからPRレビューをいただいて、研修の時点で実際の現場でどのようなことが重視されているかを肌で感じることができました。

先輩から頂いたPRレビューの例

実務を支える研修

 上記の研修はかなり基礎的な内容でしたが、私にとってどれも欠かせない内容でした。私は現在menu株式会社でバックエンドエンジニアとして働いていますが、クエリ文をバンバン書きますし、DBの設計をしたり見返したりするのはもはや日常です。特に、正しいクエリ文が書けないと、データの不整合を起こしお客様にご迷惑をかけてしまいますし、N+1問題に気をつけないと処理が重くなってしまいアプリの挙動が遅くなってしまいます。
 また、ECサイトを作る経験は非常に貴重で、特にエラーハンドリングの重要性を実感しました。エンジニアとしてエラーは避けられないものですが、どのように対処し、予防するかを配属前に練習できたことは大きな学びとなりました。現在の業務では、アプリを利用するお客様にできるだけ快適な体験を提供できるよう、エラーの発生を最小限に抑えるために取り組んでいます。

まとめ

 今でこそバックエンドエンジニアとして日々充実した生活を送っていますが、正直この研修なしで配属されていたらと思うとゾッとします。バックエンドエンジニアとして基本的なことを学べただけでなく、協力して問題を解決するための力も得られ、とても有意義な時間でした。

▼採用情報 recruit.reazon.jp

*1:DBの実在するテーブル(実体)やテーブル依存関係を表す図