鯰の住処

Namazuが真面目な話を書きます

はてなサマーインターン2019に参加してきました

はてなサマーインターン2019に参加してきました。はてなIDid:blondenamazuです。 京都で一ヶ月間非常に濃密な時間を過ごしてきたので書きたいことはたくさんありますが、参加記なので時系列順にまとめたいと思います。 また、2020年度以降はてなサマーインターンへの参加を考えてこのブログを読んでいる方向けにカリキュラムの詳細な紹介もしています。(2019年度と異なる可能性はありますが)

はてなサマーインターン応募〜面接

私は大学院修士一年生なので、今年の夏こそはちゃんとインターン参加するぞ〜と意気込み色々な企業のインターンを探していました。 その過程で東工大で学内修士一年生向けに開催されたインターンシップ説明会ではてなサマーインターンを知りました。

企業ごとにインターンシップのプログラムは様々ですが、全体一ヶ月間で前半二週間講義/後半二週間開発というカリキュラムを組んでいるのは私の知る限りはてなだけでした。 特に講義パートを設けている点が非常に珍しく、内容もWeb開発やインフラ、デザイン、企画など様々なテーマが充実しているのが特色だと思います。 私はWeb系の開発をしてみたかったものの自分では取り組めていなかったので、この機会にと思い応募を決めました。

そうして技術課題選考、その後面接という形でした。 面接では私がサークルで取り組んできたゲーム制作や競技プログラミングなどの話に耳を傾けていただきました。 いくつかのインターンシップの選考面接を受けた中で、最も話しやすく緊張もせずに受けられた面接でした。

午前中に面接が終了し、正午ごろには合格の連絡が来ました。 ICPC国内予選が午後にあったのでバタバタしている中でしたが、嬉しくてめっちゃテンションが上がったのを覚えています。 おかげで国内予選も頑張れました。

前半講義パート

前半の講義パートでは、毎日社員の方々が持ち回りで講義をしてくださいます。 前半のスケジュールは基本的に

時刻 内容
10:30-11:00 出社・アンケート記入
11:00-13:00 講義
13:00-14:00 昼休み
14:00-19:00 課題
19:00 退社

でした。

一週目の講義内容はGo言語によるWebアプリケーション開発、DBについて、セキュリティについてなどWeb開発全般について必要な知識を身に付けるものです。 一週目の課題は事前に与えられた最低限の機能を備えたWebアプリケーションに対して、その日の講義に関連した提示された変更を加えていくというものです。課題は毎日与えられて、翌日11時までにPRで提出するというものです。

二週目の講義はインフラやデザイン、企画などの内容です。 二週目は毎日与えられる課題はなく、金曜日の成果発表に向けて各自で機能開発をしていきます。

元々のアプリケーションはシンプルなダイアリーでしたが、私は小説投稿サイトに改造しました。 UXを意識した開発をし、ほたて*1では14票で3位を獲得しました!

後半チーム開発パート

後半の三、四週目の配属チームは前半過程の最後に決まります。 二週目の木曜日にid:motemenさんより無事全員前半過程審査通過の連絡があり、金曜日の面談でid:taira1999120さんとともにアプリチームへの配属が決定しました。

後半過程のスケジュールもほとんど前半過程と似ていて、

時刻 内容
10:30 出社
10:30-13:00 チーム開発
13:00-14:00 昼休み
14:00-19:00 チーム開発
19:00 退社

初日は同期のid:taira1999120さん、メンターのid:kouki_danさん、デザイナーのid:n-sugaさんとともに後半二週間での目標設定についてずっと話し合っていました。 結果、私がAndroidid:taira1999120さんがiOSで同じ機能を実装することにしました。インターンで両OS開発するのは初めてらしいですが、実際かなり大変でした。

二日目から本格的に開発に取り掛かったのですが、マルチモジュール開発についてあまり詳しくなかったので変なところにコードを書いて怒られていたりしました。それはそう。 また、NavigatorやData Binding、Injectionなど自分でAndroid開発をするときに逃げてきたところと真面目に向き合いました。 あとMVPからMVVMへの移行中で両方の実装が見比べられたりしたのは面白かったです。

四週目前半までわからん〜って言いながらずっとid:kouki_danさんやid:takuji31さんに泣きつく仕事をしていました。 最後の二日間くらいは最終成果発表に向けてまだやることが無限にあることに気づいて絶望しつつ、作業には慣れてきたので割とノリノリで作業していました。この二日間は一番大変でしたが、一番楽しい時間でもありました。

しかし最終成果発表にリリースが間に合わず、Androidはクライアント企業様の動作確認待ち、iOSAppleの審査待ちでした。

…となる予定でしたが、アプリチームの発表開始5分前くらいにクライアント企業様からOKが来てAndroidは100%リリースされました。あの瞬間だけは多分私を中心に世界が回っていたと思います。

ほたてによる投票の結果は5チーム中4位でした. やはり機能がきちんとリリースできてユーザーからのフィードバックまで受けられたチームと比較すると見劣りしてしまいましたが,票数で見ると30票以上も獲得できたのはとても嬉しいです.

成果物

前半過程成果物 

f:id:blondenamazu:20190913163824p:plain
前半過程成果物

小説投稿サイトを作りました。 画面間の移動が自然に行えることや書き手が困らないようなUIを目指しました。 また、ログイン情報を監視して記事の作成の可否を決めたりしました。

小説を書く/読むときに左に他のエピソードの一覧が見えるようにしたのがこだわりポイントです。

後半過程成果物

f:id:blondenamazu:20190913165513p:plain:w600

f:id:blondenamazu:20190913164909p:plain:w300f:id:blondenamazu:20190913164932p:plain:w300

コミックDAYSのアプリの布教機能を強化しました。

布教(シェア)された数に応じてユーザーにリコメンドする機能などを考案し、実装を行いました。 本当はこれ以降のアップデートも考案していてクライアント企業様からもOKが出ていたのですが実装が間に合わず無念でした。 id:kouki_danさんやid:takuji31さん、id:n-sugaさんなどが実装してくださることを楽しみにしています!!

最後に

私は普段東京暮らしなのでインターン参加前は京都で一ヶ月過ごすのに不安もありましたが、インターン最終日の今となってはもはや東京に帰りたくないくらい快適に過ごせました。 これも長きに渡る準備の末暖かくインターン生として受け入れてくださった社員の方々のおかげだと思います。

この記事の読者にははてなサマーインターンへの参加を検討している方もいると思いますが、インターンを大事にしていただける社風や社員の方々からのサポートの手厚さなど魅力的な点は非常に多いです。逆にデメリットは頑張って考えても思いつかないくらいなので、一ヶ月間京都に来られるならば是非応募してみてください!

P.S.

後ほどインターンシップにまつわる話のうち、ここに書ききれなかった部分を書きたいと思います(生活面など

*1:はてなで日常的に用いられている社内投票システム