日記

のみろぐ

主に競プロ日記です

Cyber Agent アドテクコンペ2018参加記

まえがき

  • Cyber Agentのアドテクコンペでサーバーサイドとして参加しました
  • みねさんが「参加記書いてOK」みたいなこと言っており、得たものもあったので記事を書くことにしました
  • 技術的なことは僕がよくわからないのであんまり話さないです
  • 自分用に書いたので可読性が死んでますが許してください

参加に至るまで

  • 某サイトにCyber Agentの長期インターン情報が載ってたので応募してみました。面接したら、「経験が浅いから長期インターンは厳しいです。ただ、短期インターンもやってるので参加してみませんか?」と誘われたので参加の意思を表明しました。その後ES出したり面接したりしてアドテクに参加することになりました。
  • コンペではサーバーサイドの実装を担当することになるので、それまでにサイトを1つ作ってみました(これ)。
  • サーバーサイドに触れるのは初めてで、1ヶ月ちょいしかやってないので不安しかなかったです。

0日目(9/20)

  • コンペが始まる前にチームで顔合わせしようということになり、サイゼに集まってみんなで話しました。
  • メンバーは以下のような感じ。
どんな人か
N君 データ分析とサーバーサイドの両方ができるプロ。英語ペラッペラ。
K君 データ分析のプロofプロ。「ぶち上げ」という言葉が大好き
くまさん サーバーサイドのプロ。PHPの使い手
Goがちょっと書ける。サーバーサイドの知識は壊滅的
  • サーバーサイドの経験が浅いとは言え、サイトを1つ作れたからまあなんとかなるでしょとか思ってました。ですが、サーバーサイド担当の相方であるくまさんと構成の話をしたときに悲劇が起りました。なんと彼が何を言っているのか僕には全然分からなかったのです。というのも、僕に知識がなさすぎて専門用語がまったくわからないという現象が発生しました。「わからないならググればいいじゃない!!」といった感じなのですが、専門用語の数が尋常じゃなかったのでググっても間に合わないレベルでした。あと、自分で構成を考えたことが無かったため、どう考えれば良いのかもよく分からなかったです。なのでほとんど技術的な会話ができず、くまさんとN君で構成の話をしてました。ホント申し訳ない...
  • パスタ安くて美味しかったです。

1日目(9/21)

  • 他のチームから強く見られるためにチーム全員で会場入りして強者の風格を見せつけるつもりでした。ですが会場入りしたときに会場が開いておらずアルマゲドンごっこができませんでした。「あのチームやばくね?」とか言われたかった人生でした
  • 最初はいろんな説明がありました。クラウドで使うGCPについて、お金は特に気にせずに使っていいと指示が出ました。太っ腹すぎてビビりました。
  • 午前中は、3日間の予定を組みました。
  • 午後からは実装に移りました。ただ、僕は全然わからないのでほとんどの作業をくまさんに丸投げ状態でした。僕はくまさんの指示待ち状態でした。2人で技術的な話をするのが理想なのですが、僕に話を振られても「すいません。よくわかりません」というSiriみたいな返答しかできず申し訳なさでいっぱいでした。ですが、指示されたGoの実装はまあまあできた気がしています(ホンマか?)
  • 夜はオムカレーを食べました。おいしかったです。
  • その後カフェで作業しました。当初はPythonからGoを呼び出す予定だったので、その辺の処理を書いてました。まあこの処理結局使わなかったんですが...
  • ホテルではcsvを読み込んでデータ加工し、gobファイルに吐き出すといった処理を書いてました。

2日目(9/22)

  • 前日の夜に速度テストして、かなり遅かったらしいのでここで大きく方針を変えます。当初はGoからPythonを呼び出して機械学習させ、その結果を返す感じの処理をする予定でした。ですが、GoからPythonを呼び出す辺りで時間がかかったらしく、APIの一部はDjangoを使って処理することになったみたいです。この文章、何言ってるかよくわかんないと思うんですが僕もよくわかってないです(最悪)。
  • 午前中、くまさんはAerospikeというDBをGoから呼び出す処理を書いてました。僕はSSPからPOSTを受け取って、その内容を加工してJSONを公開するみたいなAPIを書いてました。僕もよく分かってないですが、指示通りのことはたぶんできたと思ってます。
  • 午後はくまさんとペアプロをしました。普段PHPを使ってるくまさんがスムーズにGoを書けるようサポートしました。僕がやったのはそれくらいで、ロジックの部分はほぼくまさんに丸投げでした。
  • Djangoの方もつらそうでした。
  • データ分析は結構順調そうでした。
  • この日は全体的な動作確認ができないまま終わりました。
  • 夜はどうしてもAtCoderに参加したかったので残業はしませんでした。

3日目(9/23)

  • 最終日です
  • DjangoとGoの連携とかをやっていました。僕は特になにもできないので無事動くよう祈りを捧げつつ、自分が分かる範囲でスライドを作ってました。ただ、僕が作ったスライドの完成度があまりにも悪かったため、忙しいくまさんの手を煩わせてしまいました。
  • SSP側を動かし始めて1時間くらい経ったときに、DSPが上手く動くことが確認できたのでわーいって感じでした。まあ僕は特に貢献できてないんですが
  • 午後は発表がありました。僕はくまさんが「彼がGoの実装を手伝ってくれました」と言ったときにペコペコする役をしました。構成や使用した技術に関する説明はくまさんに丸投げです。僕は最終日になっても構成とかを理解できてませんでした。なので頑張ってた3人と並んで発表台に立つのがちょっとつらかったです。他のチームの発表では、聞いたことも無い技術をさも当たり前のように話していて、実力の差を感じました。
  • この後は全員で夕飯を食べました。よくパーティーで見るような立ち食い形式のやつです。こういう形式だとボッチになりやすいので少し苦手でしたが頑張りました。チームメンバー以外とも話せて結構楽しかったです。
  • 最後に結果発表がありました。僕たちは分析賞を取りました。分析賞はデータ分析が秀逸でしたという賞で、僕は1ミリも触れてない部分です。データ分析班がプロでした。賞としてパスケースを貰いました。
  • 各チームの分析結果を見ました。僕たちの班だけ唯一入札処理ができて無くて何も表示されませんでした。メンターの方が「サーバーサイドの処理が上手くできていれば良いところまでいったかもしれないですねー」と言っていたので、それを活かし切れなかったので申し訳なさが半端なかったです。
  • 全ての日程が終了し、最後は社員さんや他の参加者と話しました。いろんな話が聞けてすごい楽しかったです。

さいごに

  • 技術的なことがほとんどできなかったにも関わらず、誰も僕を責めずに「次につなげよう」と言ってくれて嬉しかったです。メンバーに恵まれ、楽しく作業できたと思います。ただ、技術的なことがほぼできなかったのは本当に申し訳なかったです...
  • サーバーサイドの基本的な知識や技術は抑えておくべきだと思いました。というのも、専門用語などがほぼわからずに相方と意思疎通ができなかったからです。分からないことは全部ググればいいと思ってましたが、わからなすぎるとググっても間に合わないことが分かりました。
  • 複数人でGitを使ったのですが、一人で使ってるとadd, commit, pushくらいしか使わないのでpullとかmargeがよくわかんなかったです。これは複数人で開発して覚えるしかなさそう。
  • Cyber Agentの社員さんと話した感じ、すごい楽しそうな会社だなーと思いました。自由なことができて良さげです。
  • アドテクではほとんど何もできませんでしたが、得るものは大きかったです。アドテクを企画して下さった方々、参加者の方々、本当にありがとうございました。
  • いつかリベンジマッチ的なのをひとりでしようかなーって思ってます。