CA Tech JOBに参加してきました!!
自己紹介
学校・学部:バンタンゲームアカデミー ゲーム学部4年制 ゲームプログラマ専攻3年次
名前:水溜秀太朗(25卒)
Unity、C#の経験年数 : 2年半
趣味
ゲーム(スプラ、ホラゲー)
アニメ
野球(するのも見るのも)
最近勉強中の技術
UniTask(非同期処理)
AssetBundle、Addressable
デザインパターン、設計
JOBに参加した理由
はじめに今回私がJOBに参加した理由を話したいと思います。
私は2年生の8月に初めてサイバーエージェントさんのインターンに参加し、それ以降過去4回サイバーエージェントさんのインターンに参加させていただきました。その中でサイバーエージェントさんの
社内の明るくて賑やかな雰囲気、仕事に集中できるための環境づくり
メンターさんの、学生と一緒に技術力を向上させていこう、ゲーム業界を盛り上げていこうとする姿勢
新卒の社員に対するサポート体制や、就活生へのアプローチを積極的に行おうとする、新卒社員や就活生に対する取り組み
子会社それぞれが持つ得意とする技術を子会社をまたいで共有しているため、多くの知見、技術力にあふれている点
に興味をもち、もっとサイバーエージェントさんの雰囲気を肌に感じたいと思いました。同時に、自分の技術力がどこまで通用するのかという挑戦したい気持ちも生まれたため今回JOBへの参加を決意しました。
JOBでの目標
今回私はJOBに参加するにあたって3つの目標を掲げました。
業務レベルのコードに触れて中身を理解する
実際に使われている設計を学ぶ
コードを読んで何をしているかを理解する
チームビルディングを学ぶ
エンジニア以外の職種の方やディレクション、マネジメントをする立場の人にも話も聞く
どこまで役割が細分化されているかを学ぶ
成果や学びをアウトプットする
毎日日記を書いて振り返る
振り返り記事を書く
1か月間の流れ
初週(7日~9日)
初回準備
PC受け取り
PCセットアップ
必要書類作成、提出、
環境構築(Slack、Unity、Git、Riderなど開発に必要なものの構築)
人事、メンターさんとの面談
2週目(12日~16日)
初週でやり切れなかった初回準備の続き
開発方針、チーム内ルールの確認
初めてのタスク
インゲームのタスク
人事さん、メンターさんとの面談
3週目(19日~23日)
次のタスク
アウトゲームのタスク
人事さん、メンターさんとの面談
成果発表スライド作成
CA社内全体向けJOB成果発表会の資料作成
配属先子会社向けJOB成果発表会の資料作成
4週目(26日~30日)
アウトゲームのタスク
人事、メンターさんとの面談
退職手続き
提出資料作成
PC返却
成果発表スライド作成
CA社内全体向けJOB成果発表会の資料作成
配属先子会社内向けJOB成果発表会の資料作成
JOB成果発表会
CA社内全体向け
配属先子会社内向け
JOBでやったこと
※今回JOBでやったことを紹介するうえで担当したタスクや社内での経験には未公開情報や機密情報が含まれているため中身の詳細はお話できませんが言える範囲内でお伝えしようと思います。
【インゲームのタスク】
一番最初に渡されたのはインゲームのタスクでした。詳しい実装内容は言えないですがこのタスクで自分が担当した範囲のコードが過去にリファクタリングされていたため前例に倣ってコードを書くことが比較的簡単でした。設計がしっかりしているとコードの拡張、追加が楽になることを身をもって学ぶことが出来ました。
また、独自のデバッグ機能とデバッグへの意識の高さに驚きました。様々な状況下でのデバッグを簡単に行うことが出来るように作成されていたため、自分が追加したコードによるデバッグを様々なパターンの下で行うことが出来ました。今回のタスクでは**「デバッグの内容を自分で考えること」**まで含まれていたため、どこまで自分が影響範囲を及ぼしたのかを考えながら行っていました。世に出るゲームのデバッグを行うのはかなり緊張感がありました。
【アウトゲームのタスク】
最後に渡されたタスクはアウトゲーム部分のタスクでした。このタスクはかなり挑戦的なタスクでした。ざっくりとこのタスクの内容を述べると
マスターデータから情報を取得する
サーバーデータから情報を取得する
マスターデータとサーバーデータの情報を結びつける
UIの構築、制御
の4点になります。マスターデータを扱う開発もサーバーデータを扱う開発も初めてだったのでかなり不安でしたが既存のコードを読んだり周りの方に質問をしたりして少しずつコードの解読とコーディングを進めていきました(マスターデータとサーバーデータの情報を結びつけるのに一番苦労しました…)。途中からプルリクに対するコードレビューへの対応もしていたためコードの修正と開発の同時進行をしていきました。このタスクでは
Dto設計
サーバーサイドとの連携
プランナーさんとの連携
UIの作り方
を学ぶことができました。積極的にプランナーさんに仕様についての質問をしたりサーバーサイドと様々なやりとりをしたりして周りとの認識のずれが起こらないように気を付けました。また、現場ならではのUIの組み立て方も学べましたし、Dto設計についても学ぶことができました。
最終的になんとか形にしてデバッグまで行うことはできたのですがすべてのプルリクに対応するところまで行けなかったため悔しかったです。
【週次面談】
毎週木曜日に担当人事さんとの面談、金曜日にはメンターさんとの面談がありました。
人事さんとの面談ではJOBの進捗や状況の確認、自分の今後のキャリアについてを中心に面談しました。人事さんと話すことで自分のやるべきことを整理したり今後の就活イメージを明確化できたりするためかなり有意義な時間になりました。人事さんが持っているノウハウや過去に見てきた学生の話などの貴重な話を聞くことが出来ました。
メンターさんとの面談では同じくJOBの進捗や状況の確認、今後のキャリアについてお話をしましたがそのほかにも自分の興味のある分野についてのお話も聞きました。配属先子会社やCA全体の過去~現在までのお話、現場が実際に敷いている管理体制の話など普段の生活では聞けない、現場だからこそ話せるようなお話をたくさん聞くことが出来てかなり濃い時間を過ごすことが出来ました。
毎週あるこの二つの面談が楽しみでした!
【ランチ】
JOBの一か月間でなんと15回(出社日数18回)もランチをセットアップしてもらい、約40名の社員さんとランチ時にお話しすることが出来ました。相談したい内容をトレーナーさんに伝えるとそれにマッチした社員さんとのランチをセッティングしてくださるため、どのランチもとても意味のあるものになりました。今回僕が希望した方とその理由を述べると
新卒、内定者バイトの方
初めて現場のコードに触れたときに何を思ったか、どう対処したかを知りたかったから
どのように就活をして、なぜCAさんを選んだのかを知りたかったから
働いてみてどう感じているかを聞きたかったから
エンジニアさん以外のクリエイターさん
普段のインターンではクリエイターさんとお話することはできないから
クリエイターさんのゲーム制作に対する気持ちを知りたかったから
現場でのクリエイターさんとエンジニアの連携方法を知りたかったから
チームビルディングを担っている方
自分の将来像の一つだから
現場でのディレクション、マネジメントに関する話を聞きたかったから
現場ではどこまで役割が分かれているかを知りたかったから
今後の学内チーム制作をより良くするための質問をしたかったから
こんな感じになります。このような現場における様々な話を豪華なランチを食べながら聞けるためとても充実した時間を送ることができました。本当にありがとうございました。
【毎日の振り返り】
一日の終わりに毎回トレーナーさんとの振り返りの時間がありました。ここではタスクの進捗度やタスクへの理解度を確認し、それに応じて今後どのように動くかを決定しました。この時間では
自分がどのくらいコードを読めているか
タスクにどうやってアプローチすれば良いか
悩んでいること、気になっていること
を確認して質問することができるため頭の中を整理することができました。初めての振り返りの時間では自分がコードの中身を何も理解できていないことがわかり、かなり焦ることができました。そこでどのようにコードを読めばいいか、実際に読み方をデモンストレーションしてもらいました。この振り返りのおかげでタスクをこなしていくことができました。
目標の振り返り
業務レベルのコードに触れて中身を理解する
➡ 75%
コードの読解に苦戦
参照の追い方
影響範囲の特定
修正箇所、追加箇所の特定
実装力が弱い
どこをいじればいいのか困惑
コードの改変に抵抗感があった
もっと質問すれば良かった
設計の勉強不足
設計を読み解けなかった
コードにたくさん触れた
現場レベルを知れた
たくさんのプルリクをいただけた
使われている設計や思考を知ることができた
チームビルディングを学ぶ
➡ 85%
エンジニアさん以外にも様々な職種の方に話を聞いた
エンジニアとのかかわり方を聞くことができた
役割の細分化について知ることができた
当事者意識の高さに驚いた
各役職の違いを知った
自分の将来像が少し固まった
アドバイスたくさんもらった
マネジメントする時に意識するべきことを知った
ディレクションのコツをまなべた
自分がどの役割を担いたいのか明確になった
今後のチーム制作に活かしたい
成果や学びをアウトプットする
➡ 80%
日報、日記
毎日の記録を付けることができた
ランチの時の学びを書き残した
times
もっといろいろ書けば良かった...
毎日の振り返り
トレーナーさんとの振り返りで動きを確認した
コードの理解力テストを行った
コードの確認、質問で頭を整理できた
記事について
記事を書いて振り返りすることができたが書くのが遅くなってしまった
JOBで学んだこと
コードの読み方
メモをとってクラスや関数、変数の役割を理解する
クラスや関数、変数の一つ一つに意味がある
コーディングの意識
影響範囲、修正箇所を意識したコーディング
設計に沿ったコーディング
チームビルディング
実際の現場におけるチームビルディングを見聞きできた
ゲームをやりこむ大切さ
ゲームの理解➡開発効率UP
ゲームを好きになる➡開発モチベUP
新卒、内定者バイトの方のお話
就活の進め方
初業務時の取り組み方
ゲームの運用方法
サーバーサイドがやるべきか、クライアント側がやるべきか
タスク管理、日程調整
MTG頻度、内容
自分たちで作り上げていくという意識と行動力
もっと貪欲に、活発的に、積極的に動くべき
1か月という短い時間でコードを理解するには質問が大事
質問の仕方も工夫する(悩んでいること、自分の考え、聞きたいことをしっかり伝える)
小さな気づきも周りに共有する
C#の機能や文法について学んだりすることも大事だけど
要件を整理
↓
コード読む
↓
設計を読み解く
↓
影響範囲、対応箇所を特定
この流れをいかに早くできるかが大事であることを知ることができた。
まだまだ自分はコードの読解力が全然ないんだなと思うことができたのでチームメンバーのコードや世に出ているサンプルコードなどをどんどん読んでいきたいなと思った。また、そのためにも設計やデザインパターンには強くなりたいと思った。
そして今回技術面だけでなく、社会人としての日々の過ごし方に関しても学ぶことができた。学生とは違って限られた時間で最大のパフォーマンスを発揮する必要があるため、その時間に全力を出すためにはどのような生活を送るべきか、毎日の過ごし方を今のうちから考えていこうと思った。
最後に
今回JOBで参加して僕は様々な学びを得ることができました。もっと詳しく学んだことや聞いたお話などを述べてもよいのですがそれはやはり就業型インターンに参加した人が体験できる特権であると思うのでここで語ってしまうのはもったいない気がしました。なので皆さんもぜひ就業型のインターンに応募してみてください。もちろん就業型だけでなくいろいろなインターンに応募して自分だけの体験をこれからしていってください(僕もこれからもどんどん応募しようと思います)。
今回本当に多くの方に支えられてJOBという貴重な経験をすることができました。トレーナーさんやメンターさん、担当の人事さんをはじめとするすべての関係者に感謝しています。本当にありがとうございました。おかげ様でとても学びのある楽しい時間を送ることができました。自分の将来像やこれからやるべきことのイメージが固まったので目標に向けて残りの学生生活を頑張っていきたいなと思います!
この記事が気に入ったらサポートをしてみませんか?