【インターンレポート】Dive into mixi 〜長期就業型インターン〜

みなさんこんにちは！学生エンジニアの[くろちゃん](https://twitter.com/TakumaKurosawa)です。

皆さん、夏休みは充実した時間を過ごすことができましたか？
私はインターンシップに全力投球をした2ヶ月間でした。この2ヶ月間はかなり自分を追い込んだ2ヶ月間だったので、しんどい事も多かったですが、その分満足のいく成長・成果が得られたと確信しています。

せっかくの良い経験だったので皆さんに学びを共有しつつ、改めてこの夏を冷静に振り返ろうと思い、この記事を書いています。

今回の記事は[株式会社ミクシィ](https://mixi.co.jp/)のDive into mixi 〜長期就業型インターン〜の記事になります。

その他2社の記事は下記にまとめてあります。合わせてご覧ください。

- [CA Tech Dojo 〜サーバサイドGo編〜](https://qiita.com/TakumaKurosawa/items/acd14e7691db7a0f9a2b)
- [Fringe81 〜設計を学ぶインターン〜](#)

![201806201508058797.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317034/2b842f10-3fae-92bf-a658-e4c8c3d219e1.png)

## 参加した理由
私が参加するインターンを決める際の軸にした点は、**自分自身の成長**と**本選考を受けたいと思える会社かどうか**の2点でした。

逆求人系のイベントで知ったミクシィは会社としての魅力も、インターンとしての魅力も非常に高く、絶対に参加したい企業でした。

ミクシィの長期就業型インターンは実際の現場に所属をして社員として働く、所謂OJTと言われる形式のインターンです。参加が確定するまでの間で自分がやりたい技術やポジションとミクシィに存在している事業部とのマッチ度を擦り合わせて配属される部署が決定します。

私はフロントエンドエンジニアとして、Vue.jsを使った開発をしたいという要望を出していました。モバイル事業が主力のミクシィでは中々見つからず、人事の方が多くの部署を駆け回って下さいました💦

結果的にNuxt.js + Typescriptというかなりモダンな環境での新規開発に配属させていただけたので本当に有り難かったです。

ここまでで参加した理由は述べてきましたが、改めてまとめると下記のような理由になります。

- 本選考を受けたい企業の候補であった
- 就業型で実際の現場で働きたかった
- Vue.jsを使った開発に携わりたかった

## 掲げた目標
私が掲げた目標は、**「現場での開発を通して、実務レベルで通用するスキルを身に付ける」**です。

せっかくの就業型で、実際の現場に入って開発できる経験だったのでプロのエンジニアの方々がどのようなことに気を付け、どんな事を考えながらプロダクト開発をしているのか学んでこようと意気込みました。

インターンに参加するまでの期間で、「実務レベルで通用するスキル」という曖昧な定義を下記のように定義しました。

- 自分のコードに信頼性を持たせる
    - テストコードを書く
    - 実装の意図を説明できる
    - 誰でも理解できるコード
- 改善のための提案ができる
- 納期を守る
- 自己解決能力

会社に入る前から実務レベルで通用するスキルを意識して日々の開発に取り組めれば、卒業のタイミングで少しは”マシな”エンジニアになれるのではないかと考え上記のような目標を立てました。

## インターン内容
### 期間と場所
ミクシィのオフィスにはコラボスペースという休憩スペースがあり、水はもちろん、コーヒー、各種スープ、ココアなどを自由に作って飲むことができます。

インターン期間中だけでは飲みきれないほどの種類のスープ類があり、毎日の楽しみでした！ちなみに私が1番オススメするスープは、玉ねぎスープです。コラボにてスープが飲める機会があれば是非飲んでみて下さい！！

![jh8U+DCbT4GcAxNhm%v1ew.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317034/f8ed84f2-656c-3187-51b1-7f802b45b0d4.jpeg)

期間：2019年9月2日(月) ~ 9月20日(金)

場所：[NBF渋谷イースト6F](https://www.google.co.jp/maps/place/NBF%E6%B8%8B%E8%B0%B7%E3%82%A4%E3%83%BC%E3%82%B9%E3%83%88%E3%83%93%E3%83%AB/@35.6567007,139.7065845,19z/data=!3m1!4b1!4m5!3m4!1s0x60188b5c12900001:0x3f2c1c6a011ee2ca!8m2!3d35.6567007!4d139.707133)

宿泊場所：[フレックスステイン中延](https://www.google.co.jp/maps/place/%E3%83%95%E3%83%AC%E3%83%83%E3%82%AF%E3%82%B9%E3%83%86%E3%82%A4%E3%82%A4%E3%83%B3%E4%B8%AD%E5%BB%B6/@35.6018445,139.7114587,17z/data=!3m1!4b1!4m8!3m7!1s0x60188a97a1b729bb:0x5e79bff08c7b68b3!5m2!4m1!1i2!8m2!3d35.6018402!4d139.7136474)

### 事前課題
ミクシィ側から課題が出されることはありませんが、私は下記の書籍等を利用してNuxt.jsとTypescript、テストコードの書き方について勉強しました。

- [Typescript　実践入門](https://www.amazon.co.jp/TypeScript%E5%AE%9F%E8%B7%B5%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC-%E5%8F%A4%E8%B3%80%E6%85%8E%E4%B8%80/dp/4822298973/ref=sr_1_17?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=21YAPUCDSF2YM&keywords=typescript&qid=1569486460&s=gateway&sprefix=Typescri%2Caps%2C265&sr=8-17)
- [初めての自動テスト ―Webシステムのための自動テスト基礎](https://www.amazon.co.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AE%E8%87%AA%E5%8B%95%E3%83%86%E3%82%B9%E3%83%88-%E2%80%95Web%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E8%87%AA%E5%8B%95%E3%83%86%E3%82%B9%E3%83%88%E5%9F%BA%E7%A4%8E-Jonathan-Rasmusson/dp/4873118166/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E8%87%AA%E5%8B%95%E3%83%86%E3%82%B9%E3%83%88&qid=1569486506&s=gateway&sr=8-1)
- [Nuxt.jsビギナーズガイド―Vue.js ベースのフレームワークによるシングルページアプリケーション開発](https://www.amazon.co.jp/Nuxt-js%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89%E2%80%95Vue-js-%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AB%E3%82%88%E3%82%8B%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-%E8%8A%B1%E8%B0%B7-%E6%8B%93%E7%A3%A8/dp/4863542569/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=Nuxt.js&qid=1569486547&s=gateway&sr=8-1)
- [Udemy - Nuxt JS入門決定版！Vue.jsのフレームワークNuxt JSの基本からFirebaseと連携したSPAの開発まで](https://www.udemy.com/course/nuxtjs-the-complete-guide/)

### 3週間でやったこと
私は新規開発プロジェクトの管理画面の作成を担当しました。
管理画面だったため、CSSフレームワークにVuetifyを使用して、マークアップの業務はほとんどなく進められたので、本当に理想的な業務内容になったなと感じています。

具体的には下記のような実装をしました。

- 管理者用認証機能の実装
- 管理画面の基本レイアウトを実装
- テストコード基盤の実装

## インターンの振り返り
### 良かったこと
- 今まで経験したことのなかった新規開発フェーズを経験できた
- スクラム開発の経験ができた
- スクラムミーティングの場で現場のエンジニアとプロダクトについて議論を交わせた
- メンターの方の指導のおかげでより高い自走力が身についた
- 中に入らなければ絶対に分からなかった会社の雰囲気を肌で感じられた
- 年の近いエンジニアから中途入社のエンジニアまで幅広いキャリアのエンジニアの方にキャリアについてのアドバイスを頂けた

### 今後の課題
- 納期を守れるように、エンジニアリングのスキルをもっと高める
    - テストコードの実装に想定以上の時間がかかってしまった
- 自分の力量と照らし合わせて適切な工数見積もりができるようになる必要があると感じた
    - スクラムミーティングで今週のチケットを割り振るタイミングで適切に伝えられると信頼度が上がる
- プロダクトに対する提案の質と量を上げる
    - 提案できるように多くの引き出しを持つべき
        - 色々な事業領域についての理解
        - 技術的に色々なパターンの引き出しを持てるように勉強する

## おわりに 〜Dive into mixiの参加を迷われている方へ〜
最後までこの記事を読んでくださいましてありがとうございました。
この記事の結びとして、次回以降のDive into mixiへの参加を検討されている方へ向けた情報を提供しようと思います。

### こんな人にDive into mixiはおすすめです！
- 長期でのインターンが可能な方
- 実際の現場で求められるスキルについて知りたい方
    - 冗談抜きでミクシィのエンジニアとして見られる期間になりますので、現場で求められるレベル感が痛いほど分かります
- 自分のやりたい技術領域、事業領域、言語がはっきりしている方
    - インターンの選考ではその人のスキルだけでなく、その人がやりたいことがミクシィにあるかも非常に重要です。少なくとも自分のやりたい技術領域くらいははっきりさせておくことをオススメします。
- 幅広いキャリアのエンジニアと話したい方
    - 学生として普段活動していると、社会人エンジニアの方とお話しする機会ってかなり少ないと思います。
    - 就活が本格化する前のこの時期だからこそ、幅広いキャリアのエンジニアの方とお話をするべきかなと思います。ミクシィの社員の方は皆さん、その人にとってベストな選択は何かを一緒に考えて下さいます。

### Dive into mixi参加までにやっておきたい（準備しておきたい）事
- 上と被りますが、自分の伸ばしていきたい領域、強みをはっきりさせておきましょう
    - 就業型であるがゆえに、配属という関門があります。
    - 人事の方が一緒になって考えて下さいますが、ある程度自分のやりたいことが主張できるようにしましょう。なんでもいいは、人事の方も困っちゃいます。
- 会社で働くエンジニアとしての自覚を持つ
    - 就業型なので、実際にミクシィで運用・開発されているプロダクトのコードを書くことになります。
    - 私たちインターン生が書いたコードが何年も生き続けるという責任感を持つだけで書くコードに違いが生まれると思います。
- 得たいスキル、達成したい目標について整理しておく
    - これはミクシィのインターンに限った話ではありませんが、インターンを通してなりたい姿がイメージできているかどうかでインターンで得られる成果も全然違ったものになると確信しています。
- [Tech Train](https://techbowl.co.jp/techtrain/)を使ってレベルアップ
    - 30歳以下のエンジニアを目指す人は無料で受けられるサービスです！
    - 30分間何度でも指名したプロのエンジニアとオンライン通話で質問できます！
    - 学生エンジニアの方は使わない理由がないので、今すぐ[こちら](https://techbowl.co.jp/techtrain/)から登録しましょう！