初めまして。2017年5月にペパボカレッジ二期生として入社した氏っち@ujitch1026です。今回は、第二新卒エンジニア向けの研修プログラム「ペパボカレッジ」の第二期の内容について紹介します。
ペパボカレッジとは?
ペパボカレッジ(ペパカレ)の詳細については弊社のCTOによる紹介記事や、一期生の山ちゃんと、かけちゃんの記事にも記載があるため省きますが、一言で言うと「ペパボで3ヶ月かけて行う新卒エンジニア研修を、1ヶ月でギュッと行う研修プログラム」です。
前回(第一期)のペパカレは、福岡支社で行う「webアプリケーション開発」を中心とした研修プログラムだったのですが、今回は研修後、東京で「minneのAndroidアプリエンジニアとして、バリバリ働けるようになること」をゴールとし、番長としてminne事業部の@hisaichi5518 さん、校長として@gyugyuさんが講師となり、行いました。1ヶ月で行った主な内容について書きます。
内容
1. ポートフォリオ研修 -みんなを知る-
講師 : @hisaichi5518 さん、 @gyugyu さん、 @mochicoさん
入社初日に、 「自分の強み・弱み・今後やりたいこと・これまでの経歴・人生のターニングポイントとなった出来事」をまとめたポートフォリオ を作り、先輩社員とペパカレ生で発表し合いました。これはペパボが大事にしている「仲良くすること」でもあるので、丸2日間かけて徹底的に行いました。「思慮深いのが強みだけど、一人でウンウンと考えすぎてしまうことが多いので、唸ってたら助けてほしい」とか「エンジニアとしての職務経験が無いので、技術的についていけるか不安だと思っている」とか、自分をさらけ出すことで、他の人もどのように助けたら良いか分かりやすくなりました。
これは研修を始める前に、「自分は何を学びたいと思っているのか」、「どんなスキルを持った人に学びを得るのか」、「どんなパートナーと一緒に学ぶのか」などを具体的にするためのプロセスなのですが、このプロセスによって、今の自分がどういう状態であるのか、明確に認識できたように思います。
また、このポートフォリオ作成は、研修の最終日にもう一度行いました。「自分のやりたいことはちゃんとやれたか」、「弱みをちゃんと克服できたか」、「今後やっていきたいことは何か?」などをもう一度考えてみると、1ヶ月前の研修当初と比べて、飛躍的に視野が広がっていることを感じました。部署に配属して1ヶ月が経つのですが、今でもこのポートフォリオを定期的に見直し、自分の成長のためのツールとして利用しています。
2. 開発環境・ツール -準備をする-
講師 : @gyugyu さん
開発に必要なコマンドラインツールや、Linuxの基本コマンド、便利な使い方を学びました。あと、git-flowとgithub-flowとの違いや、Gitがペパボの現場でどのように使われているのかも学びました。ペパボではエンジニア・非エンジニア問わず、業務のほぼ全てをGitHub Enterprise上でやりとりしているので、Gitスキルの習得は必須です。
3. Android 開発 -アプリを作る-
(1) Androidアプリの開発(基礎)
講師 : @mochico さん
Androidについて座学形式でOS、Version、プロジェクト構成、コンポーネント、ライフサイクルなどを学んだ後に、HandsOnとして、RecyclerViewを用いた簡易版minneのようなAndroidアプリを作りました。
また、開発前には要件を満たすために必要な事を洗い出し、issuesで共有するということを行いました。
この研修に限らず、何かを作る前には必ず"課題と解決方法をissuesで共有する"ということを行ったのですが、これが習慣付くことで、"ハマりポイントを予期する"ということが前よりも出来るようになったと思います。ペパボではこのように思考の過程をオープンにする文化があるのですが、みんなが何を考えて仕事をしているのかが分かって、気持ち良いです。
(2) MVPアーキテクチャによる実装
講師 : @hisaichi5518 さん、 @mochico さん
Androidアプリの設計はMVPパターンやMVVMパターン等様々なものがありますが、minneのAndroidアプリでは、MVPパターンを採用しています。 そのため、ペパカレでもMVPパターンを学びました。具体的には、簡易版のminneをMVPパターンで書き直すということを行いました。
(3) AndroidアプリとAPIの組み込み
講師 : @shiro16 さん、 @mochico さん
Ruby on Railsを用いて、APIサーバーを開発し、Herokuを用いて、リモートサーバー化しました。 そのサーバーからjsonのデータと画像を取得し、表示するAndoirdアプリを作りました。
通信処理にはRetrofit、画像の取得にはPicassoを用いました。通信処理の待ち時間にプログレスバーを出せるようになった頃には「お!何だかそれなりにAndroidアプリっぽいぞ!」と嬉しくなったことを覚えています。
上記のことを全く経験が無い中、全てを4日程度で行うというなかなかの過密スケジュールで、最初はどうなるかと思ったのですが、「とにかく手を止めない。止まっているということは、それは分かっていないということだから、すぐ聞く」というシンプルなルールを守ることで、ほぼスケジュール通りに行うことができました。常に丁寧に教えてくれた先輩方には感謝の気持ちしかないです。
4. Android テスト -品質を高める-
講師 : @hisaichi5518 さん、 @gyugyu さん
Robolectric、AssertJを用いたUnitテストとEspresso Test Recorderを用いたUIテストについて学びました。具体的には、前研修で作ったAndroidアプリのModel、View、Presenterのクラスにテストを書いていきました。
自分自身これまで「動く」コードしか書いたことがなく、「単体テストを書き、プロダクトの品質を高める」という考え自体が新しかったので、最初はどう書いて良いか分からない、という感じでした。ただ、一番簡単な、モデルの"getter/setter"のテストから書き、関数にどういう入力値が入り得るかを想定すること(網羅性)や、テストが他のテストと干渉しないこと(独立性)などといった観点を持ってテストを書きました。最終的にはPresenterのメソッドも書けるようになりました。
部署に配属された後も、機能の開発を行う際はテストを書くことも当たり前になっており、寧ろ「テストを書かないと不安」くらいの姿勢を持つようになりました。
5. サービス開発研修 -学んだことの実践-
内容
研修の締めくくりとして、「エンジニアの勉強を助けてくれる便利サービス」というお題のもと、サービスのMVP(Minimum Viable Product)を作り上げるところまで開発を行いました。4日間と短い期間でしたが、ペパカレ生2名のみで、サーバーの開発とAndroidアプリの開発までを行いました。
今回は、「技術書って難しい用語多くて大変なので、みんなでワイワイしながら読み進められるアプリがあったら良いね」という目的のもと、「よもっちゃん」というアプリを作ることになりました。
進め方
チームといいつつ2人しかいなかったので、問題が起きた時は、基本的にその場で話して解決しました。それでも、「モデル設計、悩んでる。」とか「デザイン、実はしっくりきてないです。」とか大きめの問題が発生した時は、その場ではその話を一旦やめて、朝一の頭がスッキリしている時に話し合って決めました。2人で決めたことについて後から蒸し返したりせず、「決めたゴールを達成してから次のことを考えよう。」という進め方を取ったのですが、4日間で手を止めることなく開発を継続させることが出来ました。そのおかげもあってか、企画立案時に立てた目標となるMVPをきちんと作り上げるところまで完遂させることが出来ました。
6. 他
他にもLT(ライトニングトーク)大会や、スクラム開発研修、Zeplinを用いたアプリデザインなど盛りだくさんの内容でした。毎日、次から次へと新しいことを学習できました。
感想
締め括りとして、ペパカレ生の感想を「なぜペパカレに応募したのか」、「受けてみてどうだったか」という2つの観点で書きたいと思います。
@ntsk (ナッツ)
なぜペパカレに応募したか
前職ではシステム系の営業をやっていたのですが、退職後エンジニアになろうとWebやアプリの勉強をしていました。技術面やサービスを作る難しさに苦しんでいる中で、研修付きの募集があるということで興味を持ち、チャレンジしてみました。
受けてみてどうだったか
技術面と絡めてチーム開発をうまく進めるために、どのようにアウトプットを分かりやすくするか、結果をもとにどのようにサイクルを回していくか、チーム全体でどうやって強くなっていくのかを体系的に学べたのがとても印象的でした。考え方と技術をセットで学べたことで、すんなり実務に入ることができたと思います。
@ujitch1026 (氏っち)
なぜペパカレに応募したか
前職ではインフラやミドルウェア、モバイルなど幅広くシステムエンジニアっぽいことをしていました。ただ、このままだと器用貧乏なだけになってしまうという危機感があり、転職活動をしていたところ、ペパボからお声がかかりました。最初は中途社員として面接に臨んだのですが、面接の過程で「ペパボカレッジっていう制度があるんだけど、そっちはどうですか?」と言われ、"今の自分にぴったりじゃん!"と思って、即決で返事を致しました。
受けてみてどうだったか
ナッツの言う通り、技術的なところはもちろんですが、先輩の考え方やペパボの文化もセットで学ぶことが出来たことが良かったと感じています。実務に入って1ヶ月ですが、仕事を通じて日々成長を実感することが出来ていて、その点も嬉しいです。ペパボは「いるだけで成長出来る環境」を掲げていますが、そこに嘘はなかった、と。入社前と入社後でギャップは全く無かった、と僕は感じています。