はじめに
グルコース開発部です。
グルコースでは今年度より、新卒内定者向けの研修としてこれまで実施してきた読書会に加え、技術的な課題を用意して取り組んでもらう試みを開始しました。
研修の目的としては、内定者の皆さんが入社以降スムーズに仕事をしてもらうことや、研修を通して内定者・グルコースメンバーとの交流を通して雰囲気に慣れてもらうことを意図しています。
本記事では、2023年8~12月に実施した研修内容について紹介したいと思います。
研修の概要
日程は以下の通りです。8~12月にかけて実施しました。
- 8~10月: 読書会
- 8月: ジョエル・オン・ソフトウェア
- 9月: Good Code Bad Code
- 10月: ライト、ついてますか
- 11~12月: Raspberry Pi3台でのk8sクラスタ構築
- 11月: k8sクラスタの構築
- 12月: Misskeyのホスティングとクライアントの作成
前半の読書会では「メンターと内定者の交流を通じて、グルコースの雰囲気に馴染んでもらう」ことと、「職業プログラマーとして最低限の知識を身につけてもらう」こと、後半のラズパイk8sクラスタ構築研修では「グルコースの主な技術スタックについて実際のシステム構築を通して理解してもらう」ことをそれぞれメンター内での目標として取り組んでもらいました。
各内定者にそれぞれグルコースメンバーがメンターとして月代わりで担当し、進捗確認とアドバイスなどを行いました。また、毎月の初めに取り組んでもらう課題テーマとその内容について説明するオリエンテーション会を行い、月末の発表会にて、用意してもらったスライドで発表してもらう形式で進めました。
8月: ジョエル・オン・ソフトウェア
テーマ:「Joel on softwareを読んで、自分のやってきたことに絡めて、10分程度で発表しよう」
初回の読書会で取り上げたのは、プログラマーの古典的名著である「ジョエル・オン・ソフトウェア」です。この本では、Stack OverflowやY Combinator(Hacker Newsで有名)の立ち上げなどで知られる著者が自身のプログラマーとしての経験を綴ったエッセイブログを底本として、技術的な話題や、開発案件での問題解決、プロジェクトを進める上での課題など、職業的プログラマーなら知っておくべき事柄を学べる本となっています。
9月: Good Code Bad Code
テーマ:「Good Code Bad Codeを読んで学習した概念、手法から、現在参加しているプロジェクトのコードの良いところ、悪いところをあわせて4つ、10分程度で発表しよう」
9月の読書会で取り上げたのは、「Good Code Bad Code ~持続可能な開発のためのソフトウェアエンジニア的思考」です。
この本では、Googleでテックリードを務める著者が高品質なコードを作成するための概念と実用的な⼿法を解説しています。
この本を選んだ理由は、8月はビジネス寄りの本がテーマでしたので、開発系の本を今月のテーマにしようと考えたためです。「リーダブルコード」や「ハッカーと画家」などが候補として出ましたが、最近の本を選びたかったこと、内定者アルバイトと絡めやすかったことから、この本となりました。
内定者は、全員グルコースの内定者アルバイトに参加しており、実際の案件にアサインされ既に稼働している状況にあったため、本書の内容を、自分のプロジェクトのコードベースに応用することを考えてもらいました。これにより、ただ読むだけよりも深い学びを得られたのではないかなと思います。
10月: ライト、ついてますか
テーマ:「ライト、ついてますかを読んで面白かった章を一つ選んで、10分程度で発表する」
10月の読書会で取り上げたのは、「ライト、ついてますか 問題発見の人間学」です。
この本は、各章ごとにこの本独自のユーモアを交えた短い寓話で、問題解決のための視点とその解決策を学んでいく内容になっており、グルコースで日々上がってくる開発上の「問題」を効率的に捌くための素養を身につけてもらうことを目的としています。
11~12月: RaspberryPi 3台でkubernetesクラスタ構築・Misskeyのホスティング・クライアントの作成
研修の後半には、「ラズパイk8sクラスタ構築研修」として、以下を順に行ってもらいました。
- Raspberry Pi4 3台でのkubernetes(k8s)クラスタ構築
- 分散型掲示板の1つであるMisskeyのホスティング
- Misskey APIを利用して閲覧や投稿ができるクライアント作成
k8s上で動かすソフトウェアとしては当初Mastodonを予定していたのですが、最終的にはMisskeyを選定しました。
理由としては、以下のものがあげられます。
- 日本語での公式ガイドが比較的多い
- Misskeyの方が、Mastodonと比べて比較的モダンなWeb技術スタックを採用していて、なおかつグルコースの技術スタックとして重複するものが多かったため
- Mastodon: Redis, PostgreSQL, Sidekiq, Ruby on Rails, Reactなど
- Misskey: Redis, PostgreSQL, Node.js, Reactなど
- Misskeyについて調べると、Raspberry Piや同種のCPUアーキテクチャで構築したk8sクラスタ上での運用実績がいくつかあり、研修メンバーが進めやすいと考えたため
研修全体で、以下の内容を学んでもらうことを目標としています。
- インフラ
- ラズパイ実機でのサーバー構築の実際を学んでもらう
- SSH経由でのサーバー内操作
- k8sクラスタのセットアップ
- サービス間のネットワーク構築
- フロントエンド
- Reactでクライアントを作成して、外部APIとの疎通を行う
11月は以下のような流れで作業してもらいました。
- ラズパイセットアップ
- キッティング
- OS焼き
- SSH疎通確認
- IPアドレス固定
- k8sクラスタの構築
- マスター用ラズパイにk3sインストール
- ワーカー用ラズパイにk3sインストール
- マスターとの連携
12月は以下のような流れで作業してもらいました。
- k8s上でのMisskeyのホスティング
- Misskeyクライアント作成
- Misskey APIとの通信
- 取得したノートの表示
- ノートの投稿
- +α、思いついた機能を実装
内定者のみなさんには、ほぼ予定通り研修を進めていただけました!途中出てきた不明点などは、社内Slack上の個人チャンネルや日報、毎週設定していた相談会で発言してもらい、それを適宜メンターが拾ってアドバイスすることでスムーズに作業を進めてもらいました。
最終発表では、作成してもらったクライアントについてそれぞれプレゼンしてもらいましたが、クライアントの完成度にグルコースメンバーは驚きと感動を禁じ得ませんでした…!みなさんお疲れ様でした!
終わりに
今年の研修でメンター陣が得た経験を踏まえて次年度研修ではより内定者の方が自信を持って入社していただけるように改善していきたいと思っております。
グルコースではともに働く25年度卒・中途入社のエンジニアを募集しています!詳細は弊社採用ページをご覧ください。皆様からのご応募お待ちしております!