9月の3日〜14日までの2週間、株式会社エウレカのサマーインターンシップ2018に参加してきました!
インターンの参加について
エウレカさんは今話題のマッチングアプリ、Pairsを開発している会社です。そのエウレカさんで2週間の間、Androidエンジニアコースのインターン生としてお世話になりました。 何故このインターンに参加したかというと、エウレカさんに興味があったのはもちろんですが、自分のスキルアップをしたかったのとチームでのプロダクト開発経験を積めるというのが大きな理由でした。プログラミングのアルバイトなどをやっていないので、一人で学んできたプログラミングスキルが同年代の人と比べてどのレベルにあるのか知りたい、チームでの開発経験が今まで一度もなかったのでその経験を積みたいと最近生活しながら思っていました。そのとき、このインターンシップの存在を知り、応募しました。
インターン詳細サイトにも書いてありますが、1週間ごとにそれぞれ内容が違い、最初の一週間は講義と課題が与えられ、2週目は実際にチームでプロダクトの開発を行うという内容でした。エンジニアは主にAndroid、iOS、Web、サーバーサイドに分けられ、それぞれのコースごとに課題も異なったものを与えられました。 ただ、2週目の後半に進める人は、最初の1週目に与えられる課題の達成度やその課題に対する取り組みの評価などから選考されました。
インターン前半戦
インターンの前半戦はWebサービス開発講義と課題です。
講義
講義では色んなテーマに関して講義をしていただきました。特に、自分にとって重要・学びとなったポイントは以下の点でした。
- 何をするにしても目的を決して忘れない。
- Product/ Project Managementの違い
- どのようにしてWeb開発をしていくのか(企画・要件〜リリース・運用まで、開発フローなど)
実際にプロダクト開発などに関わったことがないので、とても勉強になりました。
課題
課題は、簡易的なアプリを一つ開発するといった内容でした。1週目の最終日には実際に与えられた課題がどの程度実装出来たのか、どういったところを工夫してコードを書いたのか等、1週間の自分の取り組みを発表し、それに対するフィードバックなどを貰い1週間を終えました。
しかし、インターン開始してから2日目に台風が日本に上陸するという事態になり、急遽インターンの日程に変更が加えられ、2日目はリモートで課題に取り組むといった予定に変更になりました。こういった柔軟な対応が出来る会社ってすごく良いなと思いました。
本日のエウレカサマーインターンの様子です。(台風だからインターン生は完全リモートなので無人)
— kaneshin (@kaneshin0120) 2018年9月4日
僕は天気悪くなる前には帰る予定。 pic.twitter.com/BO7gG54usm
(エウレカのCTOであるkaneshinさんのツイートです)
前半戦を終えて
自分は与えられた機能要件を全て満たせず、悔しい結果を残す1週間になりました。しかし、1週間でどういったところの知識やスキルが自分に足りないのか、これから自分がどういったことを勉強するべきなのかなど自分を見直す良い機会になりました。 特に自分が学べたことは以下の部分です。
- 機能要件をまずは最速で実装する。(Done is better than perfect. ですね)
- Kotlinで強制アンラップは原則行わない。
- Recyclerview、ViewHolder、Adapterに関する知識が曖昧すぎる。
- AndroidStudioの機能やショートカットを知らなすぎる。
- デバッグの仕方 etc.
もっと多くの学びがありましたが、自分の中で重要だなと感じたポイントは上記の点です。
インターン後半戦
後半戦は講義とチームによるプロダクト開発を行いました。後半戦は前半戦の中から合格した人のみの参加で、自分は運良くAndroidコースの中で2週目に残ることができました。
講義
エンジニアとしてどのようにこれからを考えていけば良いのかやキャリア、チーム開発についての講義をしていただきました。 どの講義も自分にとって重要な考えや未来についての指針になるものばかりでした。
チーム開発ワークショップ
チーム開発のワークショップでは、課題となるテーマを与えられ、そのテーマに対して何をどうやって解決していくのかというところからチームで話し合い機能の開発を行うといった内容でした。
チームはフロントエンド(Android、iOS、Web)から2人、サーバーサイドから2人、デザイナーから1〜2人のチームで結成され、それぞれのチームで開発を行いました。
自分たちのチームは、課題に対し仮設を立てて検証を行う、といったことがうまく出来ずに開発機能をどうするのかなかなか決められずにいました。自分の見解ですが、原因として、それぞれがどのような目的でどんな根拠で機能を開発するのか、共通認識や意識が甘かったのかなと思いました。しかし、後半戦2日目にもう一度始めから仮設や検証を行うことでみんなの考えがまとまっていき、最終的には一つの機能をチームで実装することができ発表に臨みました。後半戦の結果としては、残念ながらチーム賞を獲ることは叶いませんでしたが、個人として得られたものは大きかったと思います。
後半戦を終えて
当初の目的であるチーム開発の経験だったり、知見を得られ有意義な時間を過ごすことが出来ました。ちょっと悔いが残ったのは、機能開発においてもうちょっとうまくAndroid側のタスクを回すことが出来たのかなと感じました。2人でクライント側の開発を行ったのですが、大まかにしかタスクの振り分けを行わなかったのでもっと細かくタスク分けを行っても良かったかなと感じました。
最後に
2週間のインターンに参加出来て色んな学生の方や社員さん会えて刺激になったのと、エウレカさんのインターンに参加出来て本当に良かったです。今回のつながりは大事にしていきたいと思いますし、この気持を忘れずにこれからも頑張っていきたい!