新卒エンジニア研修 2019 Vol.1
こんにちは!5月から始まった新卒・ペパカレ(いわゆる第二新卒)を対象としたエンジニア研修も約2ヶ月が経過しました。そこで今回は振り返りとして、研修内容とこれまでに学んだことや気づいたことを、新卒・ペパカレメンバーが紹介します。
研修内容について
配属先で必要になるWeb開発の基礎スキル習得を目標に、以下の研修を3ヶ月に渡って実施しています。
- Webアプリケーション開発研修
- セキュリティ研修
- フロントエンド研修
- インフラ研修
- 社内エンジニア・デザイナーによる座学
- 読書会
今回は6月までに行った内容について、それぞれ紹介していきます。
Webアプリケーション開発研修
まずはじめに、Rails Tutorialを教材に、Railsを利用したWebアプリケーション開発の基礎を学びます。研修メンバー全員がRails Tutorialを完走することを目標に、講師に質問したり、互いに教え合いながら進めていきます。
次に株式会社万葉さんの新入社員教育用カリキュラムを教材に、タスク管理システムの開発を行います。 コードを写経しながら進めたRails Tutorialと異なり、設計から行い、全てのコードを一から自分で書いていくので、より実践的なWebアプリケーションの開発ができます。
この研修では、5人のエンジニアが日替わりで講師を担当しており、毎日1時間の質問タイムが設けられています。研修メンバーはこの質問タイムを活用して、行き詰まっているところや、ときにはエディターの使い方、勉強の仕方など、様々な疑問点や不明点を解消しています。
セキュリティ研修
セキュリティ対策室のmrtc0さんが講師になり、以下の研修を行いました。
- セキュリティについての講義
- Railsで作成されたアプリケーションに仕込まれた脆弱性の改修
研修ではセキュリティを学ぶ意義やどのような脆弱性があるのか、どう対策すれば良いか、講義やハンズオン形式で学びました。
研修担当から一言
セキュリティ研修を担当した森田 ( @mrtc0 ) です。
この研修では、Webアプリケーションにおける脆弱性が生じる要因や影響、修正方法を学ぶことを目的としています。
研修は次のような流れで行いました。
- セキュリティへの取り組み方や Same Origin Policy などの Web セキュリティを学ぶ上での基礎知識を座学とハンズオンで実施
- 脆弱な Rails アプリケーション (BadApp) を各自が fork する
- 事前に用意したテキストを読み進めながら脆弱性の概要を把握したり実際に攻撃してもらう
- 記載された対策方針を確認し、脆弱性を修正してもらう
- rspec や puppeteer で書かれたセキュリティチェック用のテストを行う
- テストが通ったら @mrtc0 のレビューを受ける
DevSecOps を進めていくにはメンバーのセキュリティ知識やマインドのボトムラインを揃える必要があります。
そこで、新しくメンバーが加わった場合でも、できるだけ研修担当者に依存せず、自身で取り組み、学ぶことができるような設計とした研修アプリケーション(BadApp)を作りました。
BadApp は複数の脆弱性を作り込んだ Rails アプリケーションです。
XSS や SQL インジェクション、認可不備による権限外操作等に加え、SSRFなどの少しマニアックな脆弱性についても取扱いました。
受講者には脆弱性が作り込まれている機能を伝え、実際に修正をしてもらいます。
「研修担当者に依存せず、自身で取り組み、学ぶことができる設計」として、BadApp では実際に脆弱性に対して攻撃を行う rspec や puppeteer のテストを用意してあり、受講者はその攻撃が刺さらなくなるまで修正を行います。
自動で攻撃が行われるため、そのための知識を持った研修担当に依存せずに脆弱性修正の確認が可能です。
今回は @mrtc0 によるレビューを修正の確認ステップの一つとして加えましたが、研修の取り組みから解説もすべて gitbook として一冊のテキストに含まれてあるため、自己採点も可能です。
並行して実施していた Web アプリケーション開発研修でも、自分でセキュリティ確認を行うなど、セキュリティ研修で学んだことを活かしていたようでした。
座学
毎週1時間、座学を受けています。社内のデザイナー・エンジニアから今後の業務で求められるスキルセット・マインドセットについて学びます。
Git/GitHub 講座(hsbt)
ソフトウェア開発とは(hsbt)
バリューを生み出すマインドとは(june29)
インタラクティブな時間を過ごすため、ペパボの Scrapbox に資料を用意して、そこに研修生たちにもたくさん書き込みしてもらいました。そのページは公開しませんが、おおむね自分の考えを持つこと、相手の考えを尊重すること、それらを磨き続けることに記したような内容を扱いました。担当の june29 より。
アジャイル開発について(kenchan)
テクニカルライティング入門(kurotaky)
コードレビューについて(kymmt)
コミュニティ活動・アウトプットについて(udzura)
リサーチについて(sizucca)
プロダクトマネジメントについて(rin)
読書会
毎週1時間、研修メンバーで技術書を読む読書会を開催しています。読書会の進め方は一任されていて、本の内容により適宜進め方を変えています。これまでに「リーダブルコード」「はじめよう!要件定義」を読みました。読んで終わるのではなく、内容や考えたことなどをドキュメントにまとめたり、Webアプリケーション開発研修に活かして、アウトプットをしています。
みんなの学び・感想
daiki
こんにちは。9期エンジニアの@daikiです。 ペパボに入る前は、電気通信大学に通っていました。大学では、機械学習系の研究室で語彙発達に関する研究とかをしていました。 あんまりペパボの仕事に直接的に関わってくる分野ではなかったのですが、もともとWeb系に興味があってペパボに入社しました。
Webアプリケーション開発では、フレームワークとしてRuby on Railsを用いた開発を行っています。 実は、ペパボに入るまでRailsどころかRubyもHello Worldを書いた程度で全く知識がありませんでした。 ですが、まずはRailsチュートリアル、そして次に万葉さんのカリキュラムという2段構成のカリキュラムで Webアプリケーション開発の基礎(延いてはRubyの基礎)から、Railsの具体的な始め方、 いろいろな開発の方法論や手法(Agile開発、Git、CIなど)について身につけることができつつあります。
ペパボの研修は、常に座学をするだけとか、OJTのみという感じではなくて、 座学・コーディング・読書会・質疑応答などいろいろな手法をバランス良くミックスして、 実務に必要な経験を積めるようになっているなぁと感じています。
yamoto
こんにちは。新卒9期エンジニアの@yamotoです。
前年度までは情報系の大学に行きつつ、他社でデスクトップアプリケーションやデジタル工作機械に関する開発の手伝いをしていました。
Webサービス開発の経験はあまりありませんでしたが、多くのお客様からのアクセスがあるWebサービスがどのように開発・運用されているのか興味があり、入社に至りました。
ペパボのエンジニア研修は講師の話を聞いて作業すると言った研修ではなく、かと言って即座にOn Jobを求められるスタイルの研修でもありません。時間の使い方を自分でコントロールしつつ、研修期間中はペパボのエンジニアとして働くためのスキル・マインドを身に着けるための時間として学習に没頭できます。
私は去年1年間C++を使ったデスクトップアプリケーション開発を行なっていました。研修で使用しているRubyやRuby on Railsは全く違った考え方のプログラミング言語やフレームワークだったため、なかなか頭の中を切り替えられず戸惑うことが多くありました。
そのような時、メンターのエンジニアの方々が親身に相談に乗ってくださり、挫折することなく今まで研修を進めることができました。
今はまだ研修中の身ですが、Webサービス開発を通じてお客様に価値を届けられるようなエンジニアになるべく、成長していきたいと思っています。
sangun
アンニョンハセヨ。9期エンジニアの@sangunです。 私は韓国でプログラミングを学び、就活をしていて、偶然にペパボを知ったのですが、サービスの様々な特徴、面白さに心を奪われて入社することになりました。
ペパボに入社してから今までのことを考えてみると、毎日が学びでいつも新しい感じがします。 分かっていた知識の新しい面も感じながら1日1日を楽しんでいます。
今までの自分のプログラミングがどんな感じだったかと言うと野生動物みたいな感覚でしたが、今は探検者になって行く気がします。(笑)
ペパボのエンジニア研修は単純に言語やツールを学ぶだけではなくて、チームやエンジニアとしての心構えまで学べる時間だと思います。
4月から今まで研修を受けながら一番よかった文化を選ぶとしたら「やっていき」文化を選びたいです。 研修のRailを続けながら、良い提案がある時、質問がある時は積極的に自分の考えをアウトプットできること、チャレンジできることがとてもよかったと思います。
今は、自分のプログラミングの技術が足りなさ過ぎていつも周りに質問しながら続けていますが、 新入社員という名札をつけている間、しっかり学んで教えてもらった分、助けてもらった分よりもっと活躍できるエンジニアになりたいです。
harasho
5月からペパカレで入社した@harashoです!前職ではWebサイト制作のディレクターをしていました。プログラミングは趣味レベルで、個人でRailsを使って簡単なWebアプリケーションを作っていました。
ペパボに入社し研修を受け始めてから、新たな学びがたくさんあって日々充実しています。ただRailsでWebアプリケーションを作るだけではなく、要件定義やDB設計、GitHubを利用した開発、エラーのデバッグを実践的に学ぶことができていて、着実に成長している感覚があります。
また、分からないことは講師のエンジニアや研修メンバーに聞いて教えてもらうことができるので、分からなくて立ち止まり続けることがありません。
今は多くの人に助けていただいているので、自分も早く業務を通じてチームとサービスに貢献していきたいと思っています。そのために、これからも精進していきます!
今後の話
残り約1ヶ月間の研修では、フロントエンドとインフラ周りの勉強をしていきます。 研修が終了しましたら、またブログに記事をあげたいと思っていますので、ぜひご覧ください!
最後まで読んでいただき、ありがとうございました。 この記事を読んで少しでもペパボやペパボの研修に興味を持っていただけましたら、嬉しいです!