クックパッドサマーインターンシップ2018に参加して学んだこと

クックパッドインターン

学生エンジニアのしば(@akahire2014)です。

大学院は物理の研究室に行ったけど、エンジニア就職を目指して就活しています。

先日クックパッドの2018年のサマーインターンシップに行ってきたので感想をまとめます。 

スポンサーリンク

クックパッドのインターンシップに行った理由

  • Rubyで有名な会社
  • 技術ブログとか見てて技術力高いなーと思っていた
  • 大学1年生の時有料会員として使っていた
  • うまい飯に興味がある
  • 選考免除もらえたから

理由としてはこんな感じ。

IT系のインターンって3日で10万円出してくれるところとかあるけど、お金よりも自分が本当に興味のあるところに行ったほうがいいよなと思って、そんなに給料は良くないけど(あくまで他と比べて)クックパッドのインターンに参加することを決めました。

お金は社会人になってからいくらでも稼げるので、自分にとって貴重な経験を重視しました。

クックパッドのサマーインターンで何をしたか?

5日の講義 + PBLコースorOJTコース

という感じでした。

最初の5日の講義で詰め込まれて課題を出されて、その成績に応じてPBLというハッカソン形式の無給のコースか実際に業務に配属される有給のOJTコースに配属されます。

昔は前半の5日で成績の悪かった人は後半はなかったみたいです。

しば
クックパッド怖い。。。

とビビりまくりましたが、インターンだし力不足くらいのところに飛び込みました。

1日目 : Ruby,Git

1日目はRubyの文法の解説をされてGitコマンドを実際に使いながら説明を受けました。

僕は普段からRubyを使っているし、Gitも使っているので苦労することなく進めました。。。

そんなに難しいことはしなかったので、普段RubyもGitも使わないインターン生でも難なく進めている感じ。

2日目 : サービス開発

プログラミング系のインターンで珍しいと思うのですが、2日目は一切コードを書きませんでした。

代わりにサービス開発におけるクックパッドの考え方を学んで実際にグループワークして発表という形式。

何かサービスや機能を開発するときにいきなり作ってしまってはいけません。

作った機能がユーザの求めるものでなかったとき、エンジニアの人件費と時間が無駄になってしまいます。

クックパッドではこう言った事態を回避するために、

  1. ユーザーのペルソナを想像する
  2. その人に向けたプロトタイプを最小限の努力で作成する
  3. そういう感じの人を呼んで使ってもらって感想を聞く
  4. 修正する

というサイクルを回す。

という感じでサービス開発が行われています。

少ない労力でサービスを簡単に作って反応を見るっていうのはめっちゃ頭いいな〜と思いました。

社内テストもかなり行われていて、いたるところに張り紙とかが貼られていました。

グループワークでは適当な社員さんの属性が書かれた紙が渡されます。

それを見てペルソナを想定して、その人の悩みを解決するようなサービスを考えて、Prottというアプリを使ってアプリのプロトタイプを作成しました。

時間が来ると実際にその社員の方に来てもらってインタビューを実施しました。

実際にインタビューして見ると最初の想定と全然違っていて、学べることが多かったです。

ブログとかでも読者のペルソナを考えるのが非常に重要ですが、サービス開発でも重要なんだと実感しました。

多分言葉では「ユーザーのことを考えるのが大事」ってみんな知っているけど、内在化できている人って少ないと思いました。

それを実体験できたのはよかったなと思います。

3日目 : チャットAPI

Websocketという双方向通信を可能にする技術を使ったAPIサーバーを作成しました。

Railsの昨日はほとんど使わず、APIの設計をするときにどんなことを考えたらいいのかってことを学びました。

普段はRailsを使っていますが、スマホアプリ用とかにAPIを作ったことはなかったので、そこが勉強になりました。

普段通りに処理を書けばいいと思っていましたが、APIを叩く側のことを考えて柔軟に取得するデータの種類を変えることができるように想像する必要があって、そこが新鮮でした。

普段何気なく使っているAPIを作っているエンジニアもこんなことをを想像しながら作ってたのか。

台風が来た。

実はこの日台風が来ていて、午後からはリモートワークになりました。

めっちゃIT企業っぽいですよね。

実際働いている社員の方も帰宅されていたので、こうやって無理に働こうとしない感じ羨ましい

4日目 : React-native + TypeScript

ReactというWebのフロントを作る要領でスマホアプリを作ることのできるReact-nativeというものがあります。

JavaScriptでReact-nativeは書くことができるのですが、JavaScriptには型がなかったりするので型をつけるためにTypeScriptというAltJSというものに分類される書き方も導入しています。

AltJSというのは要するに「ぼくのかんがえたさいきょうのJavaScript」達

これによって予期しない挙動をしがちなJavaScirptをいくらか安心して使うことができるようになります。

ぼくはどちらも触ったことがなかったので、かなり苦労しましたがTAとして社員さんがたくさん教えてくれたので、なんとかチャットアプリみたいなものを作ることができました。

Twitterみたいなやつ

React-nativeはReactがわかればかけるので、普段Vueを書いている僕らからするとかなりとっつきやすかったですし、Webの知識がスマホアプリに流用できるには画期的だと感じました。

面白かったので、家に帰ってからもDockerで立てたRailsのAPIサーバーからデータを取得して表示するTwiiterのUI丸パクリのアプリを作りました。

5日目 : サーバーチューニング

前半最終日は、主にサーバーの勉強をしました。

具体的にはAWS上にインスタンスを立てて、そこで配布されたRailsアプリを動かしてその速さを競う大会をしまいた。

インターン生はアプリのなかで動作が重くなっている原因の箇所を探し出して高速化します。

サーバーってお金がかかるので、自分で立てて勉強しようという気になりません。

この講義では実際にAWSのEC2インスタンスを2台立てて、ALBというロードバランサーを1台立てることが許されていていました。

金銭的になかなかできないし、詳しい人に教えてもらいながらできたので、かなり勉強になりました。

スポンサーリンク

後半5日間

後半では前半の成績に応じて、PBLコースとOJTコースに振り分けられます。

ぼくは気合いでOJTコースに行けました。

有給だったから嬉しい。

やっぱりどうせ行くなら、実際の業務に混じって仕事させてもらう方が経験としてもでかいと思います。

何をしたの?

ぼくは新規事業の部署に配属されました。

やったこととしては、本当にバイトみたいな感じで注文された機能を作る感じ。

でもその中でクックパッドの開発業務の感じを肌で感じることができます。

  • デプロイがSlackからできる
  • デスクがひろい
  • 社長がめっちゃ近くにおる
  • みんな仲良い
  • 喋るのうまい

といった感じで、本当に楽しく仕事することができました。

クックパッドのインターンシップはRubyと飯に興味あるなら行くべき

クックパッドのインターンシップはめっちゃ楽しかったです。

ぼくは実際に行ってみて就職して〜ってなりました。

オフィスの中にあるキッチンで料理を作ったりするのでインターン生同士でかなり仲良くなります。

ほぼ毎日帰ってから酒飲んでました。

お金は他の企業に比べて飛び抜けていい毛ではありませんが、Rubyと食べることに興味があるなら行くべきだと思います。

スポンサーリンク