「Applibot Advent Calendar 2022」23 日目の記事になります。
こんにちは、法政大学情報科学部 3 年の磯貝和希です。
この記事は、私が CA Tech Job という CyberAgent のインターンシッププログラムで、2022 年 11 月 1 日から 11 月 30 日まで Applibot でサーバサイドのインターンをやっていましたので、そのインターン記です。
どこまでかけるかわからないので、めちゃくちゃふわっとした感じに書いていきますが、ご了承ください。
CA Tech Job とは
CA Tech Job は 1 ヶ月間、実際の社員さんと同じ職場で、社員さんと同じように実務経験をすることができる就業型のインターンシップです。現場での雰囲気や使用されている技術、社員さんの現場での考え方など「現場のリアル」を体感できることを売りにしています。
以前はオンラインでの実施だったそうですが、現在はハイブリッドでできるそうで、今回は希望を出し、渋谷の Abema Towers で全日程行いました。(オフラインに合わせてくださったトレーナーさんありがとうございました…!)
現場で聞いた話ですが、内定承諾してから入社をするまでの間、社員と同じように実務を体験することができる内定者バイトと目的と期間、就業先が複数選べる点が違うだけでほとんど同じようです。
CA Tech Job 前にやったこと
応募から就業までは約 1 ヶ月でした。
ES
ES では、志望理由や目的、これまでの開発経験やチームで何かを成し遂げたエピソードなどをまとめて提出しました。
一応 CA Tech Job での大きな目的を述べておくと以下のような感じでした。
- CA Tech Job に参加することで、CyberAgent の現場の雰囲気に触れ、本選考に申し込むべきかどうかを自分の中で確認したい。
- これまでやってきた個人開発レベルでなく、実務レベルでの開発を学びたい。
- CA Tech Dojo や大学の Golang の授業(僕の大学は日本で唯一 Golang が学べます)、他インターンで培ってきた Golang の技術をより一層伸ばしていきたい。
面接
面接は以前、CyberAgent の未経験の技術領域でも挑戦することができる短期インターンシップ CA Tech Dojo に参加し、その後数回同社のイベントや面談に参加していたこともあり、1 次、2 次面接をスキップして、現場面接と子会社面接で何をやりたいかを聞かれるのでそれに答え、マッチングするみたいな感じのことを行いました。面接官の方は皆さん優しかったです…。
就業部署決定後
その後は CA Tech Job に向け、自分の将来像や目標をまとめたり、自己紹介のスライドを作ったり、みたいなことをやってました。
CA Tech Job 中にやったこと
開発、ランチ、その他のことについてざっくり述べていきます。
開発
ES の段階からの目標である「自分の中にあるGolang の技術力を伸ばしたい」と、就業直前に思った「ゲームっぽい機能の開発してみたい」という要望から、ある 2 つのタスクをやらせていただくことになりました。(1 つは終わったんですが、もう一つが途中までになってしまいました…めちゃ悔しい…!)
開発では、これまでの Web 開発にはなかった、確率などのゲームらしいロジックだったり、Mock を使用したテストだったり、作るもの、見るもの全てが新鮮で勉強になりました…。
あと、コードの構造や基盤の部分も休日に見てたんですけど、これから参考にできそうなところも沢山ありました…。
ランチ
「ランチ中でも常に学び続ける」をモットーに CyberAgent からかなりのランチ代が出ます。
ランチは毎日のようにトレーナーさんが設定してくださって、所属するチームの社員さんはもちろん、違うチームの社員さんともお話をすることができました。
ランチでは、会社のことだけでなく、業務外での開発の相談や就活の相談、趣味のこと(Switch でおすすめのゲームがあったら紹介してもらったり)など、たくさんお話をすることができました。(NieR Re[in]carnation とか自分のやったことあるゲームの開発の裏側とかも聞けたの素直に嬉しかったです笑)
その他
そのほか、
毎週 CyberAgent の担当人事の方やトレーナーさんとそれぞれ週次面談を行い、作業の進捗や目標のすり合わせ、就活のことや CyberAgent のことについてお話ししたり、
最終日には CyberAgent 内で成果発表会を行って、自分の 1 ヶ月の振り返りだったり、他の Job 生や内定者バイトの方がどのようなことを行なっていたのかを知ることができたり、
あと、トレーナーさんが同じ部署の方々を集めてくださり、歓迎会や送別会を開催してくださいました。
どのイベントもめちゃくちゃ充実していて良い経験になりました。
CA Tech Job 中に学んだこと
1 ヶ月間毎日学びがあったので、正直ここには書ききれませんが、成果発表で発表したことなどから少し抜粋します。
開発
かなり基本的なことですが、基本的だからこそ、改めて実感した 4 つについて述べます。
わかりやすさが重視されたコードを書く
共同開発するので当たり前ですが、誰が見てもわかりやすいコードを書く必要がありました。
変数名 1 つをとっても、その変数がどのような役割を持っているのか、明確になるような名前をつけなければならず、Job 中にモブプロを行ったのですが、現役のエンジニアの方々でも DeepL やGoogle 翻訳などで意味を調べながら、他の変数と区別できるように名づけるようにしていました。
効率が重視されたコードを書く
個人開発ではあまり重視しなかったのですが、
今回の Job でやったタスクが効率化重視のタスクだったので、思ったことです。
for 文で回してる中で毎回行ってる処理のうち、 1 回の処理で終わらせることができそうであれば終わらせてみるなど、実際に多人数で機能を動かした時になるべく無駄な動きをしないようなものを作ることが大切だと気づくことができました。
使いやすさが重視されたコードを書く
これは今回のタスクというよりかは他のコードを見てる時に思ったことです。
どこでも使えるような汎用的な関数(例えば Mock を使ったテストを実行する関数など)を書くことで、コードの冗長さをなくしたり、修正しなければならなくなった時に一気に処理を変えることができそうだなと思いました。
まだまだ実践できてない部分なので、使いやすさが重視されたコードを書けるようにもっと勉強しなきゃと思いました。
動くことが保証されたコードを書く
これはテスト書いてる時にめちゃくちゃ思いました。
実装したコードが実装者の想定通りに動いているか確認するコードを書かないと、運用を行ってく上でバグが発生し致命的な問題に繋がりかねないのはもちろん、
どういうことを思ってコードを書いているのかが明確になるので、実装の正しさの保証やレビューのしやすさの向上、またコードの品質を上げることにつながると思いました。
コミュニケーション
あと、わからないときは実装したい機能の理想像を持つ人に素直に質問するってのも大切だと思いました。
CA Tech Job 後
CA Tech Job 後は Job 中に溜まった大学の課題を片付けつつ、
今回の経験を活かしてプログラム(大学の学習支援システムからデータを持って来れるライブラリ)の実装や別の Advent Calendar の準備、
あと、クラウドネイティブハンズオンというイベントに参加したので、AWS でロードバランスを組んでみたり、Kubenetes をちょっと触ってみたり、おすすめされた Cloud Run にアプリをデプロイしてみたり…あと Terraform を少しやったりしていました。
就活も進めたいと思います…。
最後に
最後に、1 ヶ月間とても勉強になりました。この経験を忘れずに、もっと精進していきたいと思います。
僕をお世話してくださったトレーナーさん、担当人事の方、同じチームの方、僕と関わってくださった方、本当にありがとうございました!!!
以上、「Applibot Advent Calendar 2022」23 日目の記事でした。