はじめに
2021年 9/13〜9/24 開催のハウテレビジョンさんのサマーインターンシップのレポートです。
はじめにメッセージとしては、
・2週間がっつり開発ができて非常に楽しい!
・開発に集中できる環境が整っている!
・技術者として成長できる!
です。
目次
1.きっかけ
2.選考
3.1day研修と事前課題
4.インターン本番
5.開発以外の魅力
6.感想
1. きっかけ
ハウテレビジョンさんが運営する 外資就活ドットコム というサービスで募集を見つけました。
応募に至ったポイントは以下の通りです。
・東京(六本木)でのオフライン開催
・交通費&宿泊費 全支給
・報酬10万円(+優勝賞金10万円)
・同年代のハイレベルな方々とのチーム開発
・バックエンドの使用言語がGo (フロントならJavaScript等)
・実際に動いているサービス(外資就活ドットコム)をベースにした開発
などなど、とにかく魅力的なインターンでした。
詳細は 実際の募集 をご覧ください。
2. 選考
選考フローは、エントリー → ES → 面接 です。
ESは自分の開発経験をベースに書きました。通過すると面接の案内メールが届きます。
面接はオンライン面接(60分)で、面談(30分)+コーディング面接(30分)でした。
面談の質問内容はES記載の開発経験の深掘りと、就活の典型質問でした。雑談のような雰囲気で、リラックスしてお話できました。
コーディング面接について。詳細は伏せますが、一般的な競技プログラミングのような問題で、解答言語は自由です。面接官の方に見ていただいている状態で、検索などは無しでエディタに書いていく感じです。難易度はAtCoderのB,C問題(標準的なレベルのとき)くらいで、基本的なアルゴリズムとデータ構造がわかっていれば解けると思います。
選考当時、競プロから離れていて感覚が鈍っていたので、ESの合否が出てから面接までの1週間ほどAtCoderの過去問を解きまくりました。本番はいつも競プロで使っていたC++で解きました。問題を見てから、考察5分+実装5分+リファクタ5分の15分くらいで解き、面接官の方から止めが入りました(制限時間だったのか、できていたからなのかはわかりません)。私の時は説明を求められることは特にありませんでした。ただ、変数名を工夫したり、処理をまとめたりして、見やすいコードを意識するのは大事だと思います。
面接から1週間後、面接官の方から合格のお電話を頂き、とても嬉しかったです!
3. 1day研修と事前課題
合格を頂いた後にすることは、大別して以下の3つです。
(1)言語のチュートリアル
私はバックエンド志望でしたので、Goの入門として A Tour of Go を課せられました。ちなみに、フロントエンドの方は、JavaScript, React公式チュートリアル, Redux公式チュートリアル, Redux-Sagaチュートリアル をされていました。 すでに知識があれば、特にすることはないです。
(2)1day研修
インターン本番の約1ヶ月前、オンラインでの1day研修がありました。内容は 午前:自己紹介・環境構築、午後:講習・課題実装 でした。午後の講習では、外資就活ドットコムのシステムの全体像、RDBMS、Docker、クリーンアーキテクチャなど、Web開発のための講義をしていただけます。正直、この段階では何がなんだかさっぱりわかりませんでした。
事前課題の内容が発表された後、Discodeで画面共有&チャットをしながら、メンターさんとのペアプロで課題に取り掛かります。研修終了時になっても「課題無理そう...。」の状態でしたが、この研修で「手元で色々と作業ができる状態」&「困ったときに質問するメンターさんがわかっている状態」になりました。ここから本番までの約1ヶ月で課題を完成させます。
(3)事前課題
課題は外資就活ドットコムの架空の新機能の実装でした。私はバックエンド組だったので、 APIエンドポイントを7つ実装していきます。既存のAPIのコードを参考にしながら新機能用にカスタマイズしていくのですが、処理が5,6層に分かれてあるので各層の役割や関連が分からず、単純なエンドポイント実装でもかなり苦戦しました。
しかしヘルプを出せば、メンターさんがペアプロをしてくださり、懇切丁寧に教えてくださりました!長い時は6時間ほど付き合っていただけました...。ただただ感謝です...。そのお陰で課題も提出でき、クリーンアーキテクチャにおけるAPIの実装がなんとなく理解できた状態で本番に望むことができました。
4. インターン本番
ざっくりとしたスケジュールは以下の通りです。
Day 1 : オリエンテーション、課題のレビュー、チーム発表、企画
Day 2~7 : 開発
Day 8 : 成果発表、審査発表&レビュー
細かく振り返ってみます。
###Day 1
まずオリエンテーションとしてハウテレビジョンについての説明と課題のレビューがありました。
レビューはフロントとバックに分かれて、インターン生2人&メンター1人の組で行われました。
お昼(非常に美味しい、後述)を挟み、CEOの方のお話を頂戴した後は、チーム発表でした。
私たちのチームはフロント2人とバック2人でした。(みんなフレンドリーでよかった!)
軽いアイスブレイク(ボドゲ)をした後は、いよいよ企画です!
お題は「外資就活ドットコムの改善」で評価項目は「ユーザファーストか」と「技術的挑戦があるか」の2つだけでとてもシンプル。
まず各々のアイデアを出していきます。
議論の結果、ESの添削をチャット形式で行える「外資就活 ES相談室」を企画しました。
動機は以下の通りです。
・添削込みのESのバージョン管理が発端 → 添削に絞って機能を充実させたい!
・ESの添削ニーズは一定数ある!
・インタラクティブに推敲すれば効率がいいのでは?
この段階では技術的に実現できるかは置いておいて、とにかく「ユーザの求めている価値はなにか?」をベースに議論を進めました。
翌日のPdM(プロダクトマネージャー)の方々への企画報告の準備をして初日は終了しました。
Day 2~7
2日目はPdMの方々への企画提案から始まり、サービスの概要と利点を簡単に説明しました。
ビジネス的な観点から、企画の利点や考慮すべき点に関するフィードバックを頂き、非常に勉強になりました。
「実現する価値は十分にある!」と判断し、技術的な設計に移りました。
フロント組は画面レイアウト&遷移について、バック組はデータベース&APIエンドポイントについて議論しました。
新機能なので新しい画面の数が多く、フロントの2人にはかなり頑張ってもらいました...。
ここからはバックエンドの話がメインになります。
2人でサービスの流れをシミュレーションして、必要な要素(エンドポイント、DB等)を洗い出しました。前提を揃えるために、2人であれこれ言いながらSQLを書いて、データベースを整えました(ペアプロってやっぱり楽しい!)。準備が完了したので、分担してエンドポイントを実装していきました。週末(Day 5)までに必要なエンドポイントは実装し終え、フロントとの結合も上手くいったので、穏やかな休日を迎えられました。勝因は、チーム内で念入りに認識をすり合わせていたことだと思います。
(休日はゆったりリファクタしたり、宿泊先の部屋の大きなモニターでYouTubeを観たりしました。)
休み明け(Day 6,7)は「追加機能もしっかり実装したいよね。」ってことで、利益がユーザ間で循環するような機能を設計&実装することにしました(ユーザ間の相互作用でサービスが成長し、サービスがさらなる価値を提供できることがユーザファーストに繋がるのではないか?)。この追加機能に伴い、DBとエンドポイントが2個ずつ増えましたが、前週と同様にデータベースを整え、サクサクとエンドポイントを書きました。
最終日(Day 8)前日は祝日でしたが、「発表にもこだわりたい!」と思い、1日中スライド作成に取り組みました。
Day 8
いよいよ最終日です。朝からデモの準備&スライド修正を行いました。
フロントの2人がとても頑張ってくれて、多かった画面遷移も完璧に仕上がっていました!
チームごとに発表の最終調整を行い、いざ成果報告。
ハウテレビジョンの社員さんが勢ぞろいしてご覧になっている前でプレゼンを進めていきます。
どこのチームもサービス的にも技術的にも素晴らしいもので感動しました!
(自然言語処理で自分のESと関連性の高いESを参考にできるサービス等)
発表の後は、CFOの方のセッションを挟み、結果発表&フィードバック。
優勝は前述の関連性の高いものを表示してくれるESエディタを作ったチームでした!
発表もデモも大変面白く、とても勉強になりました!
フィードバックで私たちのチームは、フロントの仕事量、ユーザ-会社間の利益の循環、サービスの成長過程を評価していただけました。どちらもチームとして推したかった内容だったので、非常に嬉しかったです!技術的にもっと面白い要素を盛り込めたらよかったなぁと思います。
以下、私たちの発表スライドの抜粋です。
(↑念のためES回答の部分はぼかしています。)
5.開発以外の魅力
開発だけでも非常に楽しく、学びがありましたが、それ以外にも沢山魅力的な点がございましたので紹介します。
・社内の方々のセッション
CEO、CFOの方からそれぞれお話を頂戴しましました。CEOの方からは主にハウテレビジョン創設の経緯、ユーザファーストとは何かをお話しいただき、エンジニアとしてのマインドの持ち方を学びました。CFOの方からはご自身や知人の方々を例に挙げ、エンジニアとしてのキャリア形成についての知見を深めさせてもらいました。
素晴らしい成果を出されている方のお話を目の前でお聞きできたのは非常にありがたかったです。現地インターン万歳。
・LT(Lighting Talk)会
エンジニアの方々が仕事・趣味問わず、最近開発したものについて短時間で紹介してくださります。業務的なものから、ゲームやサボりのための開発まで幅広く拝見できましたが、どなたも技術選定と実装はプロの技で、御見それしました。
私は開発における技術選定を課題としていたこともあり、非常に勉強になりました。
・食事
勤務日は毎日昼食と夕方の軽食が支給されますが、どれも非常に美味しかったです。
中でも個人的に感動したものを掲載します。
今半のすき焼き弁当です。初日からテンションが上がりました。
金兵衛のお弁当。ちなみに、今半も金兵衛も声優の中井和哉さん(ロロノア・ゾロ役等)の好物。
昼食軽食以外にも、水・コーヒー・ココア・キレートレモン etc. 飲み放題、駄菓子食べ放題など、食が非常に充実していて、開発に力を発揮できる環境が完備されていました。
6. 感想
優秀なチームメンバーとあれこれ議論しながら開発を行うのは非常に刺激的で楽しかったです。
開発に行き詰ったときには、メンターさんがアドバイスをくださり、都度成長することができました。
クリーンアーキテクチャを筆頭に、最初は技術的にわからない箇所が多く、心配でしたが、インターンの中盤にはしっかりと理解し、「アーキテクチャ的に美しくないので修正しました。出力に変化はないです。」とpull requestを出せるまでになりました。なので、技術的に心配でも積極的に応募すべきインターンだと思います!
最後になりましたが、インターン中お世話になりましたハウテレビジョンの方々、共に開発をしたインターン生の仲間にお礼申し上げます。
ご質問がございましたら、コメントまでお願いします。
本記事をお読みいただき、ありがとうございました。