未熟学生エンジニアのブログ

プログラミング・Web開発をする大学院生のブログ

ピクシブの冬インターンシップ(2018)に参加しました

はじめに

ピクシブの冬インターンシップ(2018)に参加してきました。 今回は久しぶりにまとまった記事を目指します。

ピクシブとは?

有名なイラスト・漫画などを自由に投稿・閲覧できる「pixiv」や、同人誌などの創作物をネット販売できる「BOOTH」などを運営しているIT企業です。これ以上の説明はいらないと思います。

「創作活動がもっと楽しくなる場所を創る」を理念として掲げており、「pixiv」以外にも実は多くのサービスを展開しています。

「創作活動がもっと楽しくなる場所を創る」はすごく僕の作りたいサービス像とも近く、ずっと気になっていました。

インターンの概要

  • 2018年 12/15,16の2days
  • 参加者は6人で、一人一人が「君だけのpixivを開発る(つくる)」ハッカソン
  • 参加者一人につき原則一人メンターさんがつく
  • Web(フロントエンド), iOS, Androidのどれかでアプリを作る(どのメンターさんがつくかによって実質決まる)
    • 僕はiOSのメンター@kameikeさんにあたったのでiOSになりました

このインターンをどうやって知った?

11月中旬のサポーターズの1on1面談イベントでピクシブの方と面談して、そこでインターンのことを知りました。

サポーターズの面談イベントは1日で8社くらいの企業と約30分ずつ話せて、いろんな出会いがあったのでオススメです。(https://zine.qiita.com/event-report/find-my-best-internship/

なぜ受けた?

元々僕は「pixiv」や「BOOTH」、「pixivFANBOX」などの、創作活動を共有したりサポートしたりするサービスにとても興味があったので、(BOOTHでは実際に技術書を買ったこともあります)インターンは一年ほど前から行きたいと思っていました。

しかし、実はこれまで直近の春、夏と二回受けていて両方とも落ちていたので、ピクシブはやはり自分のレベルでは縁遠い会社なんだろうと諦めていました。

そんな僕ですがインターンに応募しようと思ったのは、面談イベントで「ぜひ受けてください」と言っていただいたので嬉しくなって、いけるんじゃないかと思ったから・・だけではなく、自分のサービス「ホクマ」についてCTOの@edvacfさんに褒めてもらったりアドバイスをもらったりしたのも大きかったです。

なぜインターンに合格できた?(想像含む)

正直100人以上の応募があって、その中の6人に選んでいただけるとは思いませんでした。面接時に過去に開発したiOSのひどいコードを見られてしまった上に、最近はiOSのコードを書いていないと言っていたのにiOSコースに受かりました。

選んでいただけた理由を聞いてみたところ、「以前の応募からの(技術的?)成長を感じたから」というところが大きかったみたいです。

また、以下は想像ですが、おそらく技術的なところ以外での評価配分も大きいのではないかと思ったりしました。(割とgithub上で継続的に開発している、サービスを運営しているなど)

インターンでは何をした?

ここからはインターン内容に入ります

自己紹介

インターン生とメンターさん、人事の方や運営メンバーの方の自己紹介がありました。

みなさんマイクを使っていたのですが、緊張して自分だけマイクを使ってなかったと思います。(どっちか覚えてないレベルで緊張してました。笑)

作るものを決める

「pixivの自分/他ユーザ投稿をカレンダー形式で表示するアプリ」を作ることになりました。

ポイントは、

  • カレンダーでイラストを投稿した日がわかる
  • 自分/他の人がイラストをどれくらいの頻度で上げているかわかりやすい
    • 自分の努力が可視化でき、続けるやりがいになる
    • 他の人がどれくらい頑張っているかわかり、目標になる

今回のサービスは、今まで自分でも作りたいと思っていた 「努力をサポートする」系のアプリ でした。やっぱりこういうアプリはいいですね。ピクシブの理念(?)でもある「創作活動がもっと楽しくなる場所を創る」ことができたんじゃないかと思います。(それに合わせてごますりで作ったわけではないのですが)

メンターの@kameikeさんは技術力だけでなく、サービス開発についても詳しかったので、色々と教えていただきました。おそらくピクシブのエンジニアの方はみんなサービス開発に詳しいと思います。サービスについても研究熱心な方ばかりでした。

具体的には以下のような点が注意すべき点として挙がりました。基本のことだと思うので、忘れないようにしたいです。

  • 明確にターゲットを決める
  • どういったユースケースがあるか具体的に考える
  • 仮説に説得力をつける
    • 他アプリでの事例の調査
    • 自分・周りの人の実体験を使う
    • プロトタイプでのユーザヒアリング
  • 登録画面は重要。何ができるか想像できるように
    • 期待を持たせ過ぎても離脱しやすい
  • 優先順位を決めて、最低限の実装を(ハッカソン中に)確実に完成させる

ペアプロ形式で開発

f:id:swiftfe:20181225172820j:plain

メンターの@kameikeさんとのペアプロで交代しながらコードを書いていこうということになりました。 僕が最近iOS書いてないんですと言ったこともあり、メンターさんが結構最初から見本という名のほぼ完成形を作ってくれるというハッカソンのイメージとは違う流れになりました。(これがもし学生同士のペアプロなら、僕何も書くことなかったかも。笑) プロのコードに触れて、勉強になってすごく良かったです。

delegateパターンやDI、RxSwift、その他swiftらしいコードの書き方(protocolやenumなどの型とIDEを使った書き方)に戸惑い圧倒されて最初は何もできず、正直自分の無能さで縮こまっていました・・

ここで学んだ技術については別記事でまとめます

だんだん圧倒されるだけでなく、すごい勉強のチャンスだと思えてきたのと、コードがすごく綺麗で変更やすい設計になっていて、久しぶりにプログラムを読んで触って感動しました。 雲の上のレベルだと思っていたプログラムがなんとなく理解できてきたのがすごく嬉しかった・・本当に来れて良かったと思いました。 こういうきっかけは本当大事にしたいです。

プレゼン

完成したアプリについて、デモ動画も交えた10分間のプレゼンをしました。

懇親会で他のインターン生に「すごいプレゼンの時落ち着いてたよね」と言われましたが、自分では結構詰まったりしていたと思っていたので意外でした。「でもすごい震えてました」と僕がいうと、社員の方の中にも「汗をかく」とか「手が震える」という方がいて、緊張が体に出るのは皆さんもなかなか治らないんだなと思ってちょっと安心したりしました。

それと、プレゼンのいい感じのテンプレ構成を勉強(作成)したいなと思いました。みなさんプレゼン資料うまかった。

ご飯

f:id:swiftfe:20181225172824j:plain

1日目の夜は沖縄料理のお店に行きました。ゴーヤーチャンプルーおいしかったです。

2日目の夜はお寿司とピザを食べました。 一人お寿司が食べられない子がいたんですが、その時にメンターの@makunさんが「どうせ足りないから頼もう」と言っていたのが地味に印象に残ってます。こんなこと言える先輩になりたい。(ピザを追加で注文していただきました)

CTOの@edvacfさんを@edvacfさんと呼ぶのはちょっと緊張しました。CTOの人はどんな仕事をしているのかというなかなか聞けない話も聞けました。 謎の三重県津市トークがあったり、同じインターン生@chigeくんが作ったプログラミング言語かるたをやったり楽しい懇親会でした。

その他

オタクが許されるというかむしろ歓迎される文化を感じました(社内にタペストリーが飾ってあったり)。メンターさんの中にはイラストが好きな方だけでなく、イラストを描いている方もいました。

僕はオタクですが人前でオタクをあまり出せないので、オタクトークに反応できなくてそれがちょっと申し訳なかったです。笑

インターンで何を得た?

いろんなことを教わり、経験でき、全体的に得るものが大きいインターンでした。2日間という短い期間でかなりクオリティの高いインターンでした!

まとめると以下のような感じです

  • ピクシブについて知ることができた(社員さんや全体的な雰囲気)
  • iOS(Swift)プログラミングの技術・思考
  • サービス開発で気をつけるべきこと

感謝

運営の人事・メンターの方々本当にご苦労様でした。 色々ご迷惑をおかけすることもありましたが、2日間本当にありがとうございました!

まとめ

  • 2daysですがすごく満足度が高い
    • メンターさんとのペアプロで圧倒的技術力向上
    • ピクシプの雰囲気も十分知れた(気がする)
  • 楽しかった
    • 雰囲気がすごく良く、オタクにも優しい
  • こんなところで働きたい