Yahoo! iOS黒帯インターンでの思い出

2017年8月21日〜9月1日の二週間、Yahoo! Japanさんの「iOS黒帯インターン」に参加させてもらったのでその内容と感想をまとめたいと思います。

 

インターンに参加することになった経緯

大学からプログラミングをやり始め、大学1年の冬頃からインターンなどをしてWebサービスの開発などをおこなってきた。アプリ1つで世界に大きな影響を与えるアメリカを代表する大手企業やスタートアップに憧れがあり、独自サービスの開発、特にiOS開発には非常に興味があった。

しかし、そのインターン先ではiOSよりもWeb開発を中心におこなっており、しっかりとしたアプリ開発について学ぶ機会はなかった。

もっとiOSのことを学びたいなら環境を変えるのが一番早い。そう思ったらいてもたってもいられなくなり、サマーインターンでiOS開発ができる企業を探しまくった。

 

有名なWeb系企業の求人は一通り見た気がする。学部2年ということもあり、そもそも年齢的に参加できないインターンシップも多くある中、非常にきになる募集があった。

 

 

 

**************

『iOS黒帯インターン』

**************

 

 

 

強そう!!!!!!( ・∇・)

 

気付いたときには応募が完了していた。ちなみに「黒帯」とは、

ある分野に突出したスキルを持っているその分野の第一人者

のことを指し示すそうです。つまり、「強い人」ということ!!!笑

 

書類選考〜面接

黒帯インターンの選考は、書類審査(人事・エンジニア)→面接(Interview)という選考フローで行われていました。ここら辺はあんまり書いていいのかわからないので簡潔に記述します。

書類審査では経歴やエンジニアとしての経験の他に、何点か質問に答えました(あんまり覚えてない…)←ここでめっちゃ落とされるっぽい!

書類審査に通過すると面接(InterView)に進めます。面接では自己紹介も兼ねて社員さんの前でプレゼンをし、そのあと色々お話をします!僕はこの面接でプレゼンとデザイン力をとても褒めていただけたんですが「エンジニア」としての応募だったので絶対落ちたと思いました(´・ω・`)

その後、何日かしてインターンシップ選考の通過連絡がきました。結構時間が経っていて忘れていた頃にきたので正直びっくりでしたが、ひとまず安心しました。黒帯の倍率はめちゃくちゃ高いらしいので、来年以降申し込む人は頑張ってください。

ちなみに、ほとんどの参加者が学部3年か院生だった印象でしたが、僕みたいに学部2年でも参加はできるみたいなので、みんな申し込みましょう!!(楽しいよ!!)

 

インターンの内容

今回のiOS黒帯インターンでは、「ヤフオク!」アプリの開発を手伝わせていただきました。実際にヤフオク!アプリ開発チームに入り、ユーザーのフィードバックをもとにプロダクトを開発していく流れを体験するというプログラムになっており、エンジニアとしての技術だけでなく、デザインからチーム開発の手法まで非常に多くのことを学ぶことができました。

その中から特に印象的だったものをいくつかご紹介しようと思います。

テスト駆動開発(TDD)

テスト駆動開発(TDD)とは、小さなステップを繰り返してプログラムの設計と開発を行っていくソフトウェア開発手法で、次の3つのステップから構成されています。

  1. テストを書く
  2. 最低限の実装をする
  3. リファクタリング

ヤフオク!アプリの開発は基本的に、テスト駆動開発で行われていました。テスト駆動開発を取り入れることで、現在おこなっている作業を明確化し開発スピードを高めることができます。またテストを書いていることでアプリの保守性も保つことができます。

Yahoo!で学んだテスト駆動開発については、Qiitaにおいて「iOSアプリにおけるテスト駆動開発(TDD)」というタイトルでまとめたので、ぜひご覧ください。

iOS開発におけるテスト駆動開発(TDD)
Yahoo!のiOS黒帯インターンで学んだテスト駆動開発について簡単にまとめました!
ペアプログラミング

ペアプログラミングとは、アジャイル開発でよく行われる手法で1つのプロジェクトを2人で開発するというものです。

役割をdriverとobserverとで分け、driverがコードをかき、observerはdriverの書くコードを眺め、エラーや設計を吟味するといった流れで開発を行います。

今回のインターンでは、テスト駆動開発ということで片方が書いたテストを片方が実装するという流れで開発を行いました。詳しい説明は省きます。

その他にも、UIディスカッションやIPM、バックログマネジメントなど本当に多くのことを学べました。それぞれの詳しい内容や技術的に学んだことに関しては、後日Qiitaなどにまとめる予定です。

(休憩時間にたくさん卓球をやらせていただいたので、卓球も上手くなりました!笑 エンジニアはずっとパソコンに向かって同じ姿勢でいることが多いので、こういった取り組みがあるとエンジニアとしてもリラックスができ、働く環境としてはとてもいいんじゃないかと思いました。)

 

感想・まとめ

Yahoo!さんでのインターンはとても刺激的で充実した2週間でした。技術的なことでいうと、ヤフオク!アプリはかなり前から開発が行われており、言語やアーキテクチャなど様々な面で古いものが残っている一方で、状況に合わせてどんどん新しい技術や手法を取り入れていこうという流れがあり、2週間という期間でも本当に多くのことを学ぶことができました。

iOS開発ということで、参加する前は技術的なことだけにフォーカスするのかと思っていたのですが、ユーザ調査からABテスト、UIディスカッションなどのデザイン面、そしてテスト駆動開発やペアプログラミングなどの開発手法まで、実際の大規模開発でおこなっている開発フローを一通り経験させていただけました。

こういった大規模な開発は、1人で独学していてもなかなか得られない経験なので、今回のインターンでその一部を体験できて本当によかったと思っています。Yahoo!社員のみなさん本当にありがとうございました。

また、この2週間のインターンを通じて、同年代の優秀な仲間や尊敬できる社員の方々と出会えたことが何より嬉しかったです。今回のインターンで学んだことを忘れず、これからも圧倒的成長をして強くなりたいです!!!!!

がんばるぞー( ・∇・)