私たち株式会社ゆめみでは、2020年から新卒者向けiOS研修カリキュラムを作成し運用してきました。
この研修をOSSで公開いたします!
研修の内容
この研修には1〜14の課題が用意されており、
順番にクリアしながら天気予報アプリを開発していきます。
研修期間は個人のレベルによって異なりますが目安としては1ヶ月ほどと定めています。
研修に必要なもの
-
インターネット環境
課題を参照するためにインターネット環境が必要です -
開発環境 (Mac, Xcode)
実際にiOSアプリを開発していくので、Xcodeなどの環境は一通り必要になります -
1名以上のメンター
課題を進行していくうえで、レビュー・フィードバックやフォローを行うメンターが不可欠です
複数名でローテーションし負荷分散するのも良いと思います -
Gitのホスティングサービス
実務に近い形でプルリクエストベースで進行することを想定しています
GitHubなどのホスティングサービスがあった方が良いでしょう
研修の進め方
詳しくはREADMEに記載があります。
- 課題を1つ実践
- プルリクエストを作成し、メンターにレビューを依頼
- レビューでApprovalされたらマージ
... と実務に近い形で進行して頂きます。
この研修はレビュー、フィードバックを重視しています。
良いソフトウェアを作れるようになるためには、フィードバックを受けることは大切です。
また、レビューアへの配慮 (コミット粒度・親切なPRの作成) は実務では重要な要素です。
メンターの方は事前に課題の内容に全て目を通して頂くことをお勧め致します。
コードレビューでの指摘事項が、後の課題の内容と重複してしまう可能性があるためです。
ただし、研修者が自主的に後の課題の技術要素を取り入れた場合は、そのまま進行してOK。当該の課題はスキップして良いことにしています。
この研修の特徴
APIはランダムにエラーが起こる意地悪仕様
趣味のプログラミングでは真剣にエラーハンドリングについて検討する機会は少ないのではないかと考えています。
研修中に利用する天気予報APIはランダムにエラーが発生するようになっており、エラーハンドリングを実装する課題が組み込まれています。
コンフリクトが起こりやすい進行
課題は1つ1つコードレビューを必須としていますが、レビュー待ちの時間は勿体ないのでブランチを切ってどんどん先に進んで良いことにしています。
必然的にGitのブランチ運用へ慣れていき、コンフリクトにも直面します。
より実務に近い形でGitに触れるよう設計しています。
ツールやライブラリの使い方にフォーカスしない
ツールやライブラリにはトレンドがあります。
そこにフォーカスしてしまうことで研修のメンテナンスコストが大きくなる懸念があります。
研修を通してトレンドな技術を身につけるよりも、普遍的なスキルを身につけることを重視しています。
一方で、研修者が自主的に導入することに制限は設けていません。
研修者が要件を決める余白がある
研修を通して天気予報アプリを開発していきますが、一部の仕様は研修者が詳細を決めるようになっています。
研修課題というとコードの問題を解決することに寄ってしまいがちですが、あえて仕様面の解決も経験できるようにしてあります。
最後に
新卒者研修の実践に困っている現場で役立てて欲しい
研修カリキュラムを設計するのは骨の折れる作業です。
一方で、いきなりの実務へ参画では現場でメンタリングする先輩エンジニアの負荷が上がってしまうこともあるかと思います。
この研修は実務に近い形で、段階をおって進行していきます。
スムーズに現場に入れるような要素を多く含んでいます。
研修中もメンターは必要ではありますが、いきなりの実務参画よりもメンターの負荷は小さく、コントロールし易いものと考えています。
また、現場ではビジネス的な都合により、新卒者受け入れが難しいタイミングなどもあるかと思います。 (リリースタイミング・難易度など)
現場都合と切り離した研修を用意しておくことで、受け入れ可能な時期が大きく広がる効果もあると考えています。
様々なところでこの研修を活用していただけると嬉しい限りです。
ゆめみiOS研修Q&A
Q. 予定より早く研修が終わってしまいました。追加課題はありますか?
A. ゆめみでは、研修者が興味のある題材をアプリに取り入れてもらうようにしています。
- テストを自動化するためにCIに挑戦してみる
- アーキテクチャを導入してみる
...etc
Q. この研修を私の会社でも使いたいのですが、問題ないでしょうか?
A. はい、問題ありません。