Cookpad Summer Internship 2019 10 Day Techコースを開催しました

こんにちは、サマーインターンシップ実行委員長の赤松( @ukstudio )です。

クックパッドでは毎年恒例となっているサマーインターンシップのうち「10 Day Tech コース」を 8月19日から8月30日にかけて開催しました。今年もたくさんの優秀な学生の方が参加し、10日間毎日真剣に取り組んでくれました。本当にありがとうございます。

前半

10 Day Techコースでは前半5日間の講義・実習を行い、後半5日間では更にOJT(実務体験)とPBL(サービス開発実習)の2つに分かれるという構成でした。

まずは前半の講義について簡単にご紹介致します。

1日目: オリエン・Web開発基礎

初日はオリエンテーションとしてクックパッドの取り組みの紹介や自己紹介、貸与PCのセットアップなどを行い、午後から講義に入りました。

講義ではインターンシップ全体を通して必要となるGit/GitHubの入門を行い、Webアプリケーション開発の基礎としてRackアプリケーションの実装、TypeScriptの入門を行いました。

f:id:ukstudio:20190819152258j:plain

ハンズオン資料

2日目: サービス開発講義

2日目はサービス開発講義として、午前中にクックパッドのサービス開発に対する考え方や開発プロセスについて学びました。午後は午前で学んだことをベースにインターン生同士でチームを組み、与えられたテーマを元にユーザーインタビューや価値仮説、アイデア出しからプロトタイプを作るというところまで実践し、最後に講師からの講評を行いました。

2日目は前半の中で唯一コードを書かない日ですが、みなさんかなり頭を使ったようで夜にはへとへとになっているようでした。

f:id:ukstudio:20190820181326j:plain

3日目: API

今年の10 Day Techコースの技術面でのテーマは「クックパッドらしさ」というのが実はあるのですが、3日目から5日目にかけてMicroservices、適材適所な技術選定、クラウド技術などを意識した講義になっています。

3日目〜5日目の講義の中でもこの3日目がテーマが一番色濃くでたのではないかと思います。3日目ではNode.js(TypeScript)を用いてBFF層(Backend-For Frontend)となるGraphQLサーバーの実装を行いました。ボリュームも密度も濃い講義でしたが、みなさん無事に乗り切ることができました。

f:id:ukstudio:20190821140252j:plain

4日目: モバイル

4日目では3日目に実装したBFFのGraphQLサーバーにクエリを投げ、受け取ったデータを表示するためのクライアントアプリを実装しました。今年はiOSとAndroidの二手に分かれ(希望制)、SwiftとKotolinで実装をしてもらいました。

iOSとAndroidの希望を聞いた時に、「経験したことのない方に挑戦してみよう」と伝えていたので未経験の方も多いようでしたが、スムーズに実装を終えることができていました。

f:id:ukstudio:20190822104350j:plain

ハンズオン資料

ハンズオン資料

5日目: インフラ

最終日となる5日目ではクックパッドにおいてSREがどうインフラの問題を解決してきたのか、また3日目ではあまり説明のなかったAPIのインフラレイヤーについて講義を行いました。講義の後は3日目に実装したAPIサーバーにパフォーマンスや可用性において問題が含まれていたので、その問題の解決に取り組みました。

ちょうどこの日にAWSに障害があり、少々ざわついたのですが幸い講義にはあまり影響なく無事終えることができました。講義では簡単に障害の内容についても説明されました。

f:id:ukstudio:20190823101042j:plain

以上が前半に行なった講義・実習となります。今年の講義はどれも密度が濃くかなり大変だったと思いますが、全員無事に乗り切ってくれました。本当におつかれさまでした!!

後半

PBLでは6 Day Design Productコースのデザイナーとペアを組み、サービス開発の実習を行いました。PBLについてはふじけんの Cookpad Summer Internship 2019, 6 Day Product Designコースを開催しました|Cookpad|note をご覧ください。

OJTではクックパッドの様々な部署に配属され、メンターの指導の元サービス開発を実践してもらいました。配属される部署はクックパッドマートを運営・開発する買物事業部、Komercoを運営・開発するKomerco事業部などのサービス系から、モバイル基盤や技術部のSREグループ、クックパッドサービス基盤グループなどの基盤系など様々でした。

最終日には5日間の各自の偉業をメンターやOJTに配属されたインターン生全員の前で発表してもらいました。5日間という短い中で進捗を出すのは大変だったと思いますが、全員無事にやり遂げてくれました。ありがとうございました!

f:id:ukstudio:20190830141025j:plain

まとめ

簡単にですが2019年のサマーインターンシップの10 Day Techコースについて簡単に紹介させて頂きました。今年のインターンシップは実行委員長の自分から見てもかなりキツいインターンシップだったと思います。参加して頂いたみなさん、本当におつかれさまでした!!

f:id:ukstudio:20190830203305j:plain

今年の10 Day Techコースはかなりクックパッドの現場に近い内容となっています。クックパッドの現場に少しでも興味がでた方は新卒・中途問わず、ぜひ遊びに来てください!!

info.cookpad.com

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/