Wantedlyのサマーインターン2017に行ってきた

8月14日〜8月18日までWantedlyのサマーインターンに行ってきた。

 

結論をいうと、Wantedlyのサマーインターンはとても勉強になった。1日目から5日目までまとめるとこんな感じ

 

1日目

1日目は、メンターの方と話をして、課題の決定をした。これが結構面白くて、ただ課題を渡されるんんじゃなくて、なぜそれをやらないといけないのかしっかり説明してもらえたし、自分自身でもそれをやる理由についてちゃんと考えられた。

僕の課題は、検索されたワード、pv数、ユーザーのチェック率等から、ユーザーが求めている結果を出力しているワードとそうでないワードをモニタリングできるようにするというものだった。理由としては、検索機能を向上させたいが、まずどこを改善していけばいいのか現状だと道筋が立てづらいからというものだった。

モニタリングするためには、まずデータがないといけないので、BigQueryでログデータを取り出すということをやった。今までSQLをちゃんと書いたことがなかったので、結構はじめはしんどかった。

こんな感じで初日は終わった。実は前日まで熱があってもうろうとしていたので、全然効率が上がらなかった初日だった。

 2日目

2日目もクエリを最初は書いた。初日にメンターの方がSQLの参考書を貸してくれたので、それを読んで1日目の夜勉強をした。その甲斐あってか初日ほどクエリを書くのは手間取らなかった。

クエリを完成させた後、いよいよRailsに組み込むことをやった。Wantedlyはすでに基盤がしっかりしていて、BigQueryとRailsのデータ連携が簡単に行えるようになっていたので、モデル作成とコントローラー作成は簡単に終わった。viewも得意ではないけど、デフォルトデザインがあったのでなんとなく書いたらいい感じになった。

2日目はWantedlyのリソースにあやかりっぱなしの1日だった。

 3日目

3日目はモニタリングツールを完成させた。完成させたらやっぱり使いたい。この日から実際に作ったツールでどれくらい検索機能を改善できるのか検証することにした。モニタリングから気づいたことをいろいろメモして、その後メンターさんに相談、実際の改善案とかを考えた。

メンターさんがとても頭がいい人で、僕が考えてた改善案や、気づきに対する指摘をたくさんしてくれて、考察力が足りないなと思った。考察力のなさを実感した1日だった。

 4日目

4日目は3日目に提案した改善案を実装することにした。やったこと自体はElasticSearchにマッピングを追加しただけなんだけど、このマッピングがとても難しい。そもそもElasticSearchがなんなのかいまいち理解していなかったので、実装自体も辛かった。

マッピングに使用するデータにはWordNetのdbを利用した。WordNetのdbから検索ワードのシノニムとかをとってこれるようにして、それでマッピングを行う感じ。

実際4日目はElasticSearchの実装まで行うことはできなかった。

5日目 

 5日目はとにかくElasticSearchにマッピングを突っ込みまくった。発表のギリギリまで検証を行ったんだけど、なんとなく微妙な結果しかでなくてもう少しちゃんと検証をしたいと思った。何日あってもこのやりきれなかった気持ちになるのなんなんだろうね。

 

こんな感じで5日間は終わった。5日間を終えて、自分の知識、考え方の浅はかさを身にしみて感じた。

あとインターン中はお昼ご飯が毎日美味しかった(高かったけど)。さすが白金台って感じ。

毎日美味しいご飯を食べて、貴重な体験をしたこの1週間は、僕の大切な宝物の一つだ。