ntk log ntk

競プロや非競技プロのやったことを書いています.

VOYAGE GROUPのインターン、Treasure 2021に参加した

8/9(月)〜8/27(金)の3週間、株式会社VOYAGE GROUP(以下VGと略します)のTreasureに参加してきました。

参加学生のtask4233くんの参加記を読むと、どんなことをしてきたか書かれているのでそちらを読んでください。

task4233.hatenablog.com

ありがとうございました。



















これだけじゃしょうもない記事すぎるのでもう少し何か書きます笑

taskくんが書いてなさそうなこと、自分自身のことや自分が感じたことなどを書きます。来年インターンに行く人の参考になれば幸いです。

参加前

自分は今年の2月くらいまでは競プロと研究しかしていなかったのでWeb開発のことは何もわかりませんでした。5月にはwebアプリを一個作りましたが(AtCoder Merge Grassを作った - ntk log ntk)、Treasureの面接は4月の頭だったので何をアピールして受かったのかあまり覚えていません(え?)。webアプリの開発をし始めたことと競プロ頑張ったことくらいしかアピールできなかったはずなので、それで乗り切ったんだと思います。AtCoderICPCありがとう!

参加までに何をしたか

ISUCONに出ることを決めたのもあって6月くらいからTour of Goを触るなどGoの勉強をしていました。ただ研究もあったのでGoでアプリを作るとか100問競プロの問題を解くとかはしてません。しかしこのインターンはめちゃくちゃサポートが手厚かったので7月に出た事前課題をこなすと自然とインターン本番で書ける程度のレベルにはなりました。事前課題はGoだけじゃなく、ReactやAWSの課題もありました。具体的にはベースとなる記事を投稿できるアプリがあって、それの環境構築をしたり機能を少し追加したりするという課題です。わからないところはSlackで聞けて、課題を提出するとレビューももらえたので事前課題だけでもGoの書き方やReactのhookについてなど学びがありました。

あとDB講義の事前課題として本を買ってもらえたので読みました。面白い本でした。

参加直前に届いたプレゼント

お菓子や食べ物(3袋分)、Tシャツやモンスターなどいろいろ届いてびっくりしました。

f:id:ntk_ta01:20210830160851j:plain

インターン、参加!

講義以外でのよかったこと

オンラインのインターンでしたが、他の学生や社員の方と交流ができるように雑談の機会が多く設けられていました。他社インターンハッカソンへの参加経験がある人や自分同様にチーム開発経験のない人、また競プロ勢などいろいろな学生がいましたが、けっこうな人と仲良くなって他社のインターンのことを聞けたり就業時間後にAmong Usをしたりと楽しかったです。社員の方とは座談会があってVGのことを詳しく聞けたり、LT会をしているのを聞きに行ってキーボードのことについて詳しくなれたりで楽しかったです。

↓とか買ってみようかな~

adskbcc CorneCherry 半田付けの要らない42キー自作キーボードキットbtoshop.jp

学んだこと

Git、GitHubを用いたチーム開発

チーム開発について全てを学びました、なんてことはないのですが、マジで1mmもチーム開発したことない人間がGitHubってこうやって使うんだ~を少し学びました。

具体的には「pull requestを小さく作って開発を回す」「prには何が実現されるか、なぜそれを入れるかなどをレビュワーにわかりやすいように書く」「GitHub Actionsを使ってmainブランチにマージする前にコードのビルドが通るかチェックするなどCI環境を作る」「切ったブランチに最新のmainの変更を取り込みたいときは"git rebase -i main"」などです。

今までGitやGitHubは雰囲気で使っていたのですが少しは理解が深まったかと思います。

APIファーストなバックエンド開発

5月に作ったWebアプリのバックエンドは「なんか必要そうなAPIのコードを書く!」と行き当たりばったりで開発していたのですが、インターンではAPIを設計することを体験しました。例えば講義ではユーザが記事を投稿できるようなアプリを扱ったのですが、ある記事にコメントする機能を追加するのをAPIから考えました。APIを考えるとは、アクセスするためのURIを考えたりHTTPメソッドは何にするか、レスポンスやHTTPのStatus Codeは何を返すかなどを決めることだと今のところ理解しています(違うかも)。

さらにただ考えるだけでなくコードを書く前にSwaggerというAPIのドキュメントを生成するツールを用いました。swagger.yamlをstoplight studioにて編集してコマンドをたたくといい感じにコードを生やしてロジックを書く部分に集中させてくれました。

まだまだAPIのことやswaggerのこと、あとバックエンドのアーキテクチャのことなんかもわかってないので勉強していきたいです。読みたい本↓

www.oreilly.co.jp

AWS Lambda

自分だけで開発していても触る機会のないようなAWSのLambdaを使えるようになりました(たぶん)。これはチーム開発のアプリで24時間に1回くらいある処理を走らせるために導入しました。自分のメモも兼ねて書きますが、

サンプル関数コード - AWS Lambda

.zip ファイルアーカイブを使用して Go Lambda 関数をデプロイする - AWS Lambda

あたりに従って、コードをアップロードすると使えました。

f:id:ntk_ta01:20210830165501p:plain
Lambdaで関数を作成すると出てくる画面

使いこなせてはいませんが、また使う機会があればどこを操作すればいいかなどはまあまあわかるようになったと思います。AWSを触ったことはなかったので、チームについていたサポーターの方やインフラ講義の講師の方にわからないことはたくさん質問しました。インターンの機会がなければこういうクラウドは触りにくいので、貴重な経験でした。

おわりに 

全体としての感想は、一言で言うと「本当に楽しかった」です。夏に圧倒的成長をしたいという全ての学生にオススメしたいインターンシップでした。

taskくんのブログから引用しました。同じ気持ちです。特に競プロerで来年以降インターンとか行きたいけどチーム開発ってあんまりしたことないな~みたいな人とかにオススメです。まず2月か3月に説明会とかがあったので聞きに行くといいと思います(来年もあれば)。

いろいろな学びがあっただけなく、VGという会社自体や社員の方の雰囲気について知ることもできてよかったです。オンラインでもオフィスツアーがあって、もし入社したらどういう働き方をするのかイメージが持てました。社員の方については自分の意見をしっかり持った方が多い印象を持ちました。自分の疑問に思ったことは技術的なことでも会社のシステム的なことでも聞きそうな人や、入社したきっかけなどを聞いたら自分はこういう考えだったと話してくれる人が多かったです。

来月は就業型のインターンがあるので頑張ります💪💪💪 またmonkukuiさんにちょっと前に宣言したのですが、AtCoder ProblemsにPRを出すのも10月末までにはやります!頑張るぞ~

f:id:ntk_ta01:20210830172247p:plain
PR出したすぎ!

最後になりますが、Treasureで関わった皆さん本当にありがとうございました!ぜひ今後も繋がりを持てる方はよろしくお願いします。