はきだめ

主にプログラミングに関することをかきます

ドワンゴのサマーインターンシップに行ってきました

はじめに

4週間続いたドワンゴでのインターンを先日終えました。参加したのは「プロダクト開発インターン」の「niconicoコース」です。せっかくなので感想を書こうと思います。

自己紹介(2017年9月地点)

今年の2月ぐらいにエンジニアバイト(長期インターン)を始めたのでRails歴は7ヶ月ぐらいです。それまではUnityでゲームを作ったりとかしてました。業務の内容は主にViewの修正だったり、エラーを直したり、SQLをちょこっと書いてたりしてました。

なぜドワンゴ

ドワンゴインターンに応募した理由は今のバイト先であまり新規サービスの企画や開発といったものに関わったことが無かったので、そういった経験が出来るインターンに参加したいという思いがあったからでした。そのときにプロダクト開発インターンの募集要項に「機能開発に挑戦するインターン」「ユーザー向けに公開されるチャンスもある」と書いてあったので、「これなら自分がやりたいことが出来そう!!」と思い応募しました。他にも今働いているバイト先が規模が小さい会社なので、規模が大きな会社の雰囲気が知りたかったことと、ニコニコ動画が好きで前からドワンゴってどんな会社なのか興味があったからです。まとめると以下の3点が主な理由です。

  • 普段の業務では出来ないような新しいことがしたい
  • 規模が大きな会社の雰囲気を知りたい
  • 純粋にドワンゴに興味があった
やったこと

参加者同士でチーム(2人で1チーム)を組んで、ドワンゴが運営するマストドンインスタンス「friends.nico」の機能開発に挑戦しました。どのチームがどんな機能を企画し開発したかということはそのうちdwangoのエンジニアブロマガにて掲載されると思うので、詳しくはそちらを見てください。

[10月29日追記]
インターンの内容に関する記事が掲載されました!

ch.nicovideo.jp

「良い」機能を作ることの難しさ

恐らくここがインターンで学んだ一番大きい部分だと思います。最初の案出しのときには沢山の案が浮かんでいたのですが、

  • その機能が本当にユーザーが感じている不満の原因を解決できるものなのか?
  • その機能が実装されてどうなってほしいか?
  • その機能が実装された前と後ではユーザーの行動はどう変わるだろうか

といったところまで考えたときに自分の案はユーザーの不満を捉えられていない。ユーザーの一部の層にしか着目していないという指摘受けました。このインターンに来るまでは「今無くてあったら便利そうなものを作ればいいのでは」ぐらいの考えでいたので新しくサービス、機能を作ることへの考えが大きく変わりました。4週間あるうちの最初の週はずっと企画を練っていたのですが、レビューの場で発表出来るような企画はかなり絞られました。最終的にはなんとか企画を通して、リリースさせて頂けるようになりましたがやはり新機能を企画して実装をするということは難しさを改めて感じました。技術的なことだけじゃなくて、機能を開発する上での考え方やコツなどを色々教わることが出来たのは本当にいい経験だったと思います。

技術的なこと

技術的なことを言うと、自分の実力不足だと感じた場面が多々ありました。2人で1チームだったので僕のチームではサーバーサイドとクライアントサイドで役割分担をして自分は主にサーバーサイド側の処理を担当しました。(React+Reduxが全然分からなかったのでクライアントサイドは出来そうにありませんでした...。)具体的にはテーブル作ったり、APIを生やしたり、設定画面作ったり、テストを書いたりなどをしてました。
機能の内容的にサーバーサイドよりもクライアントサイドの方がやることが多かったのですが、自分の実力不足で結局大変な部分を全て相方に任せてしまったので、申し訳ない気持ちで一杯でした。このインターンに来るまではWebPackの存在を知らなかったので、初めてマストドンのコードを見たときは「app/assetsが無い!?これ本当にRailsで作ったの...」「変数宣言がvarじゃなくて全部constになってる...」と困惑したことを覚えています。バイトではCoffeeScriptを触っていたためそこまでフロントエンドに自信が無かったわけではありませんが、今回のインターンでは自分のフロントエンド技術に関する知見の無さを強く感じました。他にもSidekiqやRedis、Rspecなども触ったことが無かったため、色々と苦労をすることが多かったです。以下に今後自分がやりたいことです。

  • やりたいこと
    • React+Reduxで簡単なアプリを作る
    • Dockerについて勉強する
    • RedisとSidekiqを自分のサービスに組み込む

特にReactとReduxとは友達になれなかったので、今後自分でじっくり勉強していきたいと思います。

環境や待遇について
ランチが美味しい!

社員さんにオフィスの近くのうまいごはん屋さんの情報をドバっと教えてもらったんですが、そのお店がどこも本当に美味しかった!ときどき社員さんに連れていってもらってご馳走してもらったりもしました。また懇親会やリリースお疲れ様会ではピザやお寿司も出ました。全部美味しかったです。

f:id:kurome-stdio:20171001220817j:plain:w300

f:id:kurome-stdio:20171001220754j:plain:w300

f:id:kurome-stdio:20171001220839j:plain:w300

Slackが充実している

ドワンゴはSlackのチャンネルが多いことで有名ですが、本当になんでもありました。自分は#vim#unityチャンネルとかに入っていましたが、他にも炒飯をこよなく愛する人達が集まるチャンネルとかがあって本当に面白かったです。疲れたな〜って思ったときはSlackを見て癒やされてました。

さいごに

今まで新機能の企画や立ち上げに携わることが無かったので、貴重な体験をすることが出来たと思っています。特に自分のチームが考えた機能が実際にリリースされたときに「おーこれは便利」「捗るな」といった反応を貰えたことがすごく嬉しかったです。この経験を活かしてこれからも頑張っていきたいと思います。

合わせて読みたい記事

medium.com

spring-raining.hatenablog.com