見出し画像

CyberAgentの長期就業型インターンに参加した件

こんにちは。クボ太郎(@kubo_programmer)です。
自分のTwitterを見てくれていた方は知っていると思いますが、自分は9月5日から27日にかけてCyberAgentで長期就業型インターンに参加していました。

CyberAgent とは

名前を聞くことは多いが何をやっている会社なのかあまり知られていないという人が自分の周りに多かった印象なので軽く説明します。
CyberAgent100を超える子会社を抱えている企業です。グループ全体の規模としては明らかに大企業の部類に入るのですが、子会社一つ一つ自体の規模は比較的小さいので大企業みたいな社風ではなく、どちらかというとベンチャー企業のような社風だったりします。
代表的なプロダクトとしては「AbemaTV」「アメブロ」「Tapple」「AWA」「バンドリ」「グラブル」「シャドウバース」などなどです。実際、これらのサービスの方がCyberAgent自体よりも有名だったりします(子会社名義リリースしたりするので)。

長期就業型インターン CA tech JOB とは

画像4

約1ヶ月間に、社員さんと同じように、実際のプロジェクトにアサインされて実務経験をする就業型インターンシップです。
配属部署は応募した人の得意分野に合わせて最も強みが活かせるであろう部署に個別相談の上で決定されます。
就業型ということもあって給料も発生するので本当に働くという感じです。

参加するに当たって

事前に社員さんから CA tech JOB (以下,JOB) ですがCyberAgentで用意されている3つのコースの中で最も選考が厳しいと聞いていたのでそれなりに準備して選考に臨みました。
選考にはコーディングテストはなく面接のみなので、プログラミングの勉強は正直あまりせず ネット(主にQiita) で記事を漁って最新っぽい技術を追ったりして、技術的な話をされた時もついていけるようにしていました。
また、過去のJOB参加者のブログが多く公開されているので、それらを漁って配属されそうな部署に参加していた人のブログを基に勉強すべき技術をあらかじめ予想してたりました。ブログを漁って事前に使用技術を予想するのは個人的に面接の時はそこまで恩恵は感じられませんでしたが、実際にアサインされてからはそこで勉強した内容がかなり役に立ったと感じました。

配属先

自分は大規模なチームよりも小規模な新規事業に携わりたいということを人事さんに伝えていたので希望にそったプロジェクトにアサインされることになりました。
配属先は子会社の一つである CAM(キャム) でした。主にファンビジネスや占い系の事業が行われています。自分は 占い系の新規事業である 「Myu」 というプロダクトにアサインされました。

画像1

CAMでの業務内容

自分の専門は主にWebフロントなので、当然やったアサインされたプロジェクトでの担当もWebフロントでした。主にブラウザ上で使用できる管理画面の作成が主な作業でした。

技術としては  Preact と言うReact と互換性のある軽量なjavascriptライブラリを使用しました。使用した所感としてはほとんどReactと同じような感じだったのでReactを経験したことのある人であればその日のうちに使いこなすことができるでしょう。

また、styled-components と呼ばれる jsファイル内にcssを記載することをサポートしてくれるライブラリや、Preactの作者が作った unistore と呼ばれる状態管理ライブラリなども使用しました。特に styled-compoents は使っていて非常に便利で普段の開発でも React を使っていくのであれば積極的に使用していきたいライブラリだと感じました。

で、タスク内容ですが、新規事業ということもあり序盤は未完成の画面のUIの実装がメインでした。業務中に作成したWebページを撮影していなかったのでお見せすることはできませんが「ボタン」「ログインフォーム」「ドロワーメニュー」などを作成しました。ここに関しては普段の開発とそこまで差はなかったので,新しく使用する styled-components の仕様を理解するのに少し時間がかかった程度でした。

後半はある程度コンポーネントが完成してきたのでそれに機能を持たせたりしました。例えば,storeにアクセスしてページの情報を読み込んできたり,MockAPIを非同期で読み込んだりしたりしました。storeの利用や非同期処理は普段の開発でついつい後回しにしてしまい実装する機会はなかったので,今回のインターンで実際に実装することで今まで自分が苦手だった分野を克服することができました。

また,自分たちの作成しているサービスでは初期状態では ClassComponents を所々で利用していましたが,後半はそれらを hooks に置き換えたりしました
hooks とは ClassComponents を使用せずにコンポーネントにstateを持たせることができるReactの機能です。普通にClassComponents を使って React を書いていく場合は Vue などに比べると分量が非常に多くなり,冗長な感じになってしまうので,ここ最近は React を避けていましたが Hooks を使えば非常に簡潔に複雑な処理を記載することが可能でした。
今回の業務では主に useState, useEffect, useCallback しか使用しませんでしたが他にも様々な機能があるらしいので,今後Reactを使用する機会があれば今回のインターンで使用していなかったHooksについても勉強して,さらに知見を深めたいと思いました。

学んだこと

・再利用を行いやすい設計
開発という面では特に設計の面で学びがありました。
インターン初期の自分は複数コンポーネントに渡って props を渡していくのを嫌って比較的に利用される頻度が多そうなコンポーネントにもstateや機能を待たせたりしていました。当然ですがこうしてしまうとそのパターンでしか使用できないコンポーネントができてしまい,似たようなコンポーネントを大量に作成する必要が出たりしまいます。再利用をしやすくするためにstateをどのコンポーネントに記載するのか,どうやってpropsで渡していくのかということについて学ぶことができました!

待遇

結論から言うと今振り返ると恐ろしいほど良かったです。

・シェアハウス
まずは自分たちの宿泊していた施設です。
内装はこんな感じです。写真を見てもらえばわかる通り「ジム」「図書館」「会議室」「ワーキングスペース」などがあります。寝る部屋は個室でシェアハウスなのでプライベートな時間がないと言うことも一切なかったです。また,ラウンジという共同スペースで同じインターン生や内定者バイトの学生,社員さんと交流する機会も比較的多く ホテルを実際に用意してもらうよりも遥かに良かったなぁと思います。


また,立地も最高で場所は渋谷駅からは徒歩15分AbamaTowerから5分最寄りのコンビニに関しては目の前にあるので徒歩5秒程度です。
ただ,こんなに素晴らしいシェアハウスも10月には終了してしまうらしいので自分たちがこの最高の環境を味わえた最後の世代ということのようです。

・オフィス
オフィスも最高でした。

まずは「椅子」です。写真はないですが,自分の座っていた椅子は10万円以上するような代物らしいです。

次に飲料物についてです。
これに関しては完全無料の自動販売機が設置されていて飲み放題です。僕は暑いお茶で目を覚まして作業をしてました。

・ランチ
特に自分が凄いと思ったのはランチです。
詳しい仕組みは知らないですが,インターン生と社員さんが外食するとその代金が会社の経費から出るらしいです。なので,毎日のように一緒の部署の社員さんと一緒に渋谷の美味しいお店でお食事をしたりしました!
(↓モーメント作成してるんでご覧ください)


おまけ

・風船
言って最初のウェルカム会で風船が配られました。
ここのイラストですが各個人でそれそれ違って好きな分野にまつわるイラストが書かれていました(自分のは技術の枠に「React」「Vue」,趣味の枠に「Twitter」「人狼ゲーム」が書かれていました)。
これあるだけでお互いの趣味や専門分野が分かるんでインターン生同士で超話しやすかったです!

今でもこの風船は思い出の品として自分の部屋に飾られています!

・Qiita
今回のインターン中に記載したバグに関する記事を書いたところ見事Qiitaのトレンドに乗りました!
1日トレンドなのでそんなに難しくはない話ですが,今までそんな記事を書いたことのない自分にとっては非常に嬉しかったです。

↓ちなみにその記事はこれです。

・東京ゲームショー
今回,インターン期間の実は一番楽しみにしてて,「行きたいな〜」と前々から計画していたイベントです。
元々,自分一人で行くつもりでしたが社員さんとランチの話の流れで一緒に行くことになりました。初のTGSで右も左もわからない僕を親切に案内してくれて自分の見たかったものを沢山見る事ができました。

また,グッズのブースにも案内してもらいがっつり散財してしまいました。
(と言いつつ,お金自体あまり持って行けてなかったのでかなりセーブできました)

↓ 買った商品はこのツイートのリプ欄に貼っています。

・もぐもぐ会
自分の配属されたCAMでは毎週金曜日のランチ時間にフロントエンドエンジニアが集まってLT大会を行なっていました(昼食代も会社負担です)。そこでは今までほとんど勉強することのなかった ECMAScript や カラーパレットの命名などの話が聞けました。このような内容は地元の学生の同士の勉強会だと聞けないようなレベルが高めの話だったのでとても勉強になりました (どの人もプレゼンがとても上手なので初学者の僕でも問題なくついていけた)。

また,自分も折角なので AtmicDesign という内容で登壇しました。普通の勉強会だとフロントエンドエンジニアが少なくて話せないような内容の結構ニッチな内容でしたが評判は良かったので安心しました。
その際に使用したしたスライドはネット上に公開してるので是非ご覧ください。

最後に

今回は 9/5 ~ 9/27 という非常に長い期間インターンに参加しました。
自分は狂人的なレベルで学校の部活動に熱意を注いでいた人間なので正直行く前の数日間は「1ヶ月も部活動に顔を出せないのか ...」とか考えて,結構憂鬱な気分になっていました。
ただ,実際行ってみると初日から「最高!」と言って良いほどの歓迎をされて,その不安を吹き飛ばすくらい毎日が楽しかったです。
業務に関しても社員さんの手厚いサポートで自分でも驚くほどスムーズに実装できて非常に楽しんで開発する事ができました。

社員さんからこのメッセージをSlackで言われた時は嬉しすぎて叫びそうになっていました 

画像2

また,シェアハウスもラウンジで待機する事が多かったので同じインターン生や内定者バイトの人とも交流する機会が多かったです。交流した人たちはJOBの選考に受かっているということもあって,異常にレベルが高くて一緒に話すだけでもとても楽しかったです。

今回のインターン期間中は仕事もプライベートも含めて,今まで生きてきて最も充実した1ヶ月間でした。技術的にも人間的にも大きな成長があったこの経験を活かし,残り1年の学生生活をさらに充実したものにしていきたいと思っています。

最後に,今回のインターンシップ参加にあたり緊張している自分に気さくに話しかけてくれた人事の方々、支えてくれたトレーナーさんや公私ともに気にかけてくださった社員の方々に感謝を伝えたいと思います。

本当にありがとうございました!!

画像3

(実は終了証書の後ろに内緒でお世話になった社員さんたちからの寄せ書きがありました。それを見たときはMeetupイベント中で社員さんも沢山いたのに目が潤んで危なかったです)

この記事が気に入ったらサポートをしてみませんか?