Go Collegeに参加してきました
はじめに
3月中旬までおよそ1か月間、株式会社 CyberAgent が主催している Go College というものに参加していました。僕は普段、Ruby on Rails を用いてサーバーサイド開発をしていることが多く、今回 Golang は初めてでした。
参加した背景
僕は昨年の2024年9月あたりからサーバーサイドの開発や業務を始めました。その中で
- 最近新しい技術についてインプットする時間が作れていない
- 自分の技術スタックを増やしたい
- ほかのサーバーサイド言語だとどのような違いがあるのだろう?
というような動機から、今回の Go College に参加を決意しました。
主にやったこと
今回のプログラムは基礎講座と応用講座の2つに分かれていました。
基礎講座:Day1 ~ Day5 (毎週土曜日)
発展課題:Day6 ~ Day10 (平日連続5日間)
それぞれについて話していきたいと思います。
基礎講座
基礎講座は、Day1 は渋谷の Abema Towers で行われました。チームを組んでプログラムを進めていくということもあり、
- チームメンバーと顔合わせ
- 環境構築
- 基礎講座の内容を進める
といったことが行われました。
Day2 ~ Day5はオンラインで開催され、座学で講義が行われていくといった感じでした。
このタームでの主な講義内容については、
- Go の基礎文法
- フレームワーク(EchoとGin)
- データベース(MySQL)
- ORM(Gorm)
- Redis
- パフォーマンス、単体テストについて
といった内容でした。
発展課題
この Day1 ~ Day5 が終わると、今度は発展課題ということで、実際に自分で手を動かしてAPIを実装していくというフェーズに入ります。
今回のプログラムでは、「クライアント側だけ用意されたゲームに対して、APIを実装してゲームを完成させよう」というもので、用意されたリポジトリのテンプレートをコピーしてから開発が始まりました。
演習には基礎課題と応用課題があり、基礎課題は「最低限この期間内で全員が実装しきる」という目標があり、応用課題は「自分が課題と感じている部分に対して追加実装をする」というものでした。
具体的には、基礎課題は API を実装しきること。発展課題はパフォーマンスチューニングや、開発者体験の向上などです。
自分自身は基礎課題が終わった当初、「コードがごちゃごちゃしていて見づらいからリファクタリングしたい」という気持ちになったので、応用課題はリファクタリングを主に取り組みました。
チームのほかのメンバーに目を向けると、競プロが好きな人は「早さってかっこよくね?とにかく早くするわ」とか言って、並列処理やローカルキャッシュ、Redis を用いてとにかく処理を早くしようとしていたり、フロントエンドが好きな子は「ログ出力とかホットリロード実装して開発者体験よくするわ」といった、各々感じた課題に取り組んでいたりしていたので、多種多様、十人十色の応用課題の取り組み方があり、非常に見ていて面白かったです。
期間中はチームに付いているメンターさんが毎日FBをしてくれる時間があり、自分が実装について悩んでいる部分があったら、その都度相談に乗ってもらったりして、非常にサポートも充実していてよかったと思います。
こぼれ話
発展課題期間中は、CyberAgent の社員と話す機会が多く設けられており、そこで CyberAgent のエンジニアの考え方、働き方についていろいろ知れたのが非常に良い機会だったなと思います。
実際、「CyberAgent のエンジニアはすごい」とは言いつつも、技術力含め、どのような部分がすごいのかはあまりよくわかっていなかったので、現場の生の声を聴くことができたのは、解像度が非常に上がりました。
感想
今回、自分は大きく2つの目標を掲げて今回の Go College に取り組んでおり、1つ目は「Rubyとの違いを感じながら開発をする」、2つ目は「実装以外のことも意識して開発する」ということを意識していました。
なぜこの2つの目標を掲げたのかについては、深くは語りませんが、自分自身振り返ってみると、この2つの事柄は達成できたといえるかなと思っています。実際にメンターの方にもこの部分を評価していただけたので、自他ともに評価できる部分だったといえるでしょう。
また懇親会を通していろいろな人と話せたり、他チームとのメンターとも話せたので、最初から最後まで、非常に濃い時間を過ごすことができました。
最後に
今回の Go College を通して、Go言語のことだったり、CyberAgent についての解像度が上がって、自分にとって非常に有意義な時間でした。
今回、Go College の周りのメンバーのレベル感が非常に高かったということもあり、かなり刺激を受け、今後の開発に対してのモチベーションがかなり上がったので、そういう意味でも参加した意義が大いにあると思いました。
この記事を見て「次回の Go College に参加してみようかな〜」と思ってくださると、この記事を書いた意味があったのかなと思います。
ではまた。
Discussion