はじめに
修士1年 (インターンシップ参加当時) の杉水俊輝です。
2022年の10月から12月までの3ヶ月間 N予備校 PCWeb フロントエンドチームの就業型のインターンシップに参加させていただきました。
動機
応募の動機としては、サマーインターンシップなど数日から数週間のインターンシップに参加する中で、それらのインターンシップでは、インターンシップ用に用意された課題が多く*1、実際に動くサービスに関わりたい、そして、それを通して今の自分のレベルがどの程度なのか (何ができて、何ができないのか) を明確にしたいなどと思っていました。それに加え、普段の Web 開発でフロントエンドの開発をする際に TypeScript, React をよく使用しているため、それらの技術のレベルアップしたいという思いも少しありました。
インターンシップ参加までの流れ
申し込みは 2022年の7月ごろサポーターズを経由して行いました。申し込みをした後 ES を提出し、ES が通過した後、面接が1回というような流れでした。 面接は厳かというより、面談の延長線のような雰囲気でとても話しやすかったです。印象的だったこととしては、その場で簡単なライブコーディング *2 を求められたことです。
株式会社サポーターズ talent.supporterz.jp
期間
今回のインターンでの契約として決められていたことは、以下のリンクに記載の通りでした *3。
自分の場合、
という感じでした。
何曜日に働くかや、何時から何時まで働くかなどは、自分のスケジュールに合わせてラフに決めることができたため、大学の授業やゼミなどと並行してインターンシップに参加することができました。
就業環境
基本的にリモートワークで、チームのみなさんもリモートワークでした。チームの方の中には関東外に住んでいる方もいらっしゃいました。 3ヶ月間で自分が出勤したのは1回のみでしたが、銀座の歌舞伎座タワーにあるオフィスは、フリーアドレスの場所などもあり、とてもおしゃれでした。
ミーティングなどは、チームでの日例が毎日あり、それに加え、メンターの方との進捗報告会で進捗の報告を行いました。 メンターの方との進捗報告会は、そもそもやるかどうか含め、特に決まっていたわけではなく、自分のやりやすいような形に合わせていただきました。
チームの方も子供のお迎えや病院に行くために一時離席されたりと、自分が柔軟に働くことができただけでなく、社員の方も柔軟に働いていらっしゃるのが印象的でした。
開発環境
貸出の PC は Windows と Mac から選択することができました。 自分は普段 Windows を使用しているため、Mac を使ってみたいがために Mac を選択しました。
貸出の PC スペックは以下の通りです。
- MacBook Pro (13-inch, M1, 2020)
- メモリ:16 GB
- SSD:512GB
その時に空いている PC が提供されるため、若干スペックに差はあるかもしれませんが、個人的には M1 の MacBook Pro を使えたのはとても嬉しかったです。(欲しくなった…)
主な使用技術・ツールは以下の通りです。
- Slack
- Git, GitHub
- TypeScript
- React
- Storybook
etc…
業務内容
メインのタスクへの準備
はじめの1ヶ月は、手をつけやすいタスクを割り振っていただき、Git や GitHub, Storybook をどのように使っているのか、必要な知識の習得などメインのタスクに取り組むにあたっての準備期間でした。
とにかくたくさんのタスクを消化するというより、しっかり自分に学びがあるように、インターンシップ参加のモチベーションをしっかり達成できるように進めていただいている感じがしました。
メインのタスク「未送信解答救済機能の追加」
2ヶ月目以降からメインのタスクに取り掛かりました。
限られた期間の中で、タスクとしても面白みや、自分が経験したいと思っていることを考慮してくださり、複数のタスクを候補として挙げていただいていましたが、その中で「未送信解答救済機能の追加」を行いました。
元々、問題をよく読んでじっくり考えて、抜き出す文字数に合わせたり、数式をガチャガチャして解答を作っても、別の問題に移動したり、エラーが起こったりすると、解答内容が消えてしまっていました。この現状を改善しようというのがこの機能を追加するモチベーションでした。
追加機能のモチベーションや届けたい体験は決まっていましたが、細かい内部仕様などは全く決まっておらず、そこを決めるとこからのスタートでした。この仕様を決める部分がこのインターンシップの中で一番頭を悩ませた部分でした。 そもそも解答の保存を行うのにどのような方法があるのかの調査から始まり、メンターの方と相談しながら、仕様を決めていきました。メンターの方にはある程度仕様のイメージはあったとは思いますが、それを全部を伝えるのではなく、ヒントを教えてくださったり、最終的な決断は自分に任せていただいたりしたことで、とても学びが多かったです。
個人開発での内部仕様は、これを使ったことないから使ってみたいといったようなすごく主観を持って決めてしまうことが多いため、仕事として、長く運用していくことが念頭にある仕様決めはとてもよい経験でした。 仕様が決まった後は、機能の実装を行いました。
ロジック的に難しい実装はそこまで多くありませんでしたが、チームのみなさんが PR へのコメントをしっかり書いてくださることがとても印象的でした。
画像のようにとある PR では最終的に 76 のコメントとなりました。 一方的にこうした方が良いよというコメントではなく、自分がなぜそういう実装をしたのかを聞いてくださった上での提案をした下さることが多く、複数回にわたるキャッチボールとなり建設的な議論ができたことで、とても多くの学びを得ることができました。
最終的には、当初予定していた全機能を無事リリースすることができました!
最後に
インターンシップ全体を通して、自分の学びが最大化されるように設計してくださっていることがとても伝わってきて、とても楽しみながら開発を行うことができました。サポートしていただいたチームの方々には感謝しかありません。本当にありがとうございました!
個人的な意見ではありますが、もしインターンへの参加を迷っているのであれば (ドワンゴのインターンシップに限らず) ぜひ応募をしてみて欲しいなと思います。 仮に受からなくても、デメリットといえば ES や面接の時間が無駄になる程度で、面接の経験は今後にも活かせるため、ほぼデメリットがないに等しいだけでなく、受かればお給料をもらいながらスキルアップできるという、とても良い環境が手に入れることができます。
腕試しだと思って、気楽に応募してしてみてください!