17歳からのプログラミング入門。

情報系の門の先で起きたことをたまにメモ。

#mixi_git challenge に参加した話

ざっくり言うと

mixi さん主催の git イベントに、 同じ学校の人(以下ペアの人)に誘われて行ってみたら、 1位タイになってしまったお話

です。

誘いを受けてから参戦が決定するまで

その話は長くなる上につまらなく、また、宗教のお姉さんが登場したりするのでここでは割愛します。

自分なりの目標

小さい頃から、「口は禍いのもと」を地で行くタイプだった僕は、 度々口が過ぎたり、言い足りなかったり、自分の伝えたいことをそのまま伝えることが下手でした。 加えて、ここ最近、自分の振る舞いに自身が持てなくなり、少し自分嫌いに陥ったときに、 自分がベラベラと話すことが気持ち悪いように思えてきました。

今回の目標は「余計なことは言わず、自分の持っているリソースを最大限課題に割り振る」ことでした。 いわば「もくもく作戦」ってところでしょうか。

前日以前

部活をサボって Haskell を書いていました。 型が合わせられなくてコンパイル通らない状態で何時間か試行錯誤した末にコンパイルを通して、 狂喜乱舞してポケットから落とした Zenfone 5 の画面が割れました。 東京で Zenfone 2 Lazer を買うことを決意します。

また、ペアの人に「何か準備することはあるか」と聞いたら過去問があるとのことだったので、 予定を合わせて集まって解きました。

いつもの僕なら喋ることにリソースを割いてまた自己嫌悪に陥って体力を削るところだったのですが、 もくもく作戦に沿って黙々と問題に取り組んだら集中力が高まって、 問題と正面から向き合うことが出来ました。 Git の操作をぱたぱたやって、 高度なリポジトリ操作のイメージがつかめたのは本番に役立ってるのでやっててよかったって思います。

お互いにお互いの行動を阻害しない雰囲気は、集中するに最高でした。 この雰囲気なら本番もうまくやれそうだなって思いました。

前日

突然、風邪気味と腹痛に見舞われます。 体調が悪くなると悪い考えが浮かんでくるので、イベント後に Ubuntu をお掃除することを考えて、 とりあえず書きかけの Haskell を書き上げたり Virtual Box の更新の準備をしたりしていたら 落ち着いてきました。

落ち着いたので夜行バスに乗り込みます。

夜行バスの中で消灯まで 20 分位あったので、 git のコマンドの一覧を眺めて、 知らないコマンドを 2 つくらい調べました。 結果的に、この時に調べたコマンドで問題が 1 つ秒殺できることになったのでラッキーでした。

当日

バスを降りた僕は、霧の深い池袋にいました。 紆余曲折を経て渋谷でお茶をした後、 mixi さんのオフィス?に向かいました。

f:id:Iruyan_Zak:20161123012914j:plain

特にチーム分けの方策を聞いていなかったのですが、ペアの人がペアの人だったので安心しました。 ペアの人が Git に詳しいことはよく知っていたので、不安要素もないし、 緊張しないように、とリラックスに努めていたら眠くなってきました。

お昼前に問題のタイトルが見えたあたりで目が覚めてきました。 暇な時に何もしないと口だけが動いて後悔するので、黙々と問題タイトルの和訳をはじめました。 幾つか問題の内容をエスパーして、 Slack に書き込んだりしていました。

問題タイトルの和訳ができると、カレーを机に置いてからも問題の考察が出来ます。 社員さんが各テーブルについて会話を回してくださるのですが、 コミュニケーション能力の高いペアの人に会話は任せて、 僕はカレーを口に運びながら頭の中で見えない問題を解いていました。 素晴らしい役割分担です。

会話を任せても、たまに「君は?」と意見を求められます。 そのたびに微妙に喋りすぎてちょっと心を痛めます。 挙句、「コミュニケーションがしっかりしてる方が有利だよね」って問いかけに、 「コミュ力の値が 0 未満なのでダメですね」って言ってしまいました。

もくもく作戦のことを短絡的に、 コミュニケーションできないと解釈して発言したのですが、 安直に喋る方がコミュニケーションを妨げるので、 もくもく作戦下の僕のコミュ力は 2 くらいあったはずです。

あっでも、やっぱ言い間違えてるから -1 くらいか。

あとは、ペアの人に「今日は頑張らないよ」とだけ伝えておきました。 オーバーヒートすると性格が大変なことになるので、大事なことです。

コンテスト中

コンテストが始まると同時に 2 人揃ってトイレに行きたいと言い出しました。 一区切りついたらトイレに行こうと思っていたら 1 時間近くノンストップで問題を解いていて、 それに気づいて楽しくなってきました。 会話は「解くよ」「解いたよ」という事務的なものが主で、 終始落ち着いて力を出せる環境だったのでもくもく作戦は成功です。

ただ、奇数・偶数で問題を振り分けたりしてましたが、変則的に問題を選択した時に 途中何度か同じ問題を 2 人が別プロセスで解いていて一方の作業が無駄になることがありました。 それでもペースを崩さずに 2 人ともずーっと集中してたし、遠慮もしないので、 ペアの人が知ってる人で良かったなーって思いました。

16 時前の時点で、解けてない問題が 3 つ残っていて、 解けても 1 問だけだなって思ってたんですが、 16 時に間に合いませんでした。 16 時に間に合わないなーって思ったら、「残り 15 分!」っていうメッセージが来て、 「あっ、これ解けた」って思いました。 その通り、すぐにリポジトリリセットをかけて、落ち着いてぱたぱたコマンドを打ったら 1 発で通りました。 かっこよかったと思います。

かっこよかったんですが、その残った数分を喋るのに使ってしまうとまた反省会をすることになるので、 果敢に次の問題に取り組みました。 あえなく間に合わなかったわけですが、その後の休憩時間中も問題をずっと解いていました。 この辺りでは集中が切れているので少し喋り過ぎな節はあります。

コンテスト終了後

最後の 1 問通したので同率 1 位に滑り込めたらしいです。 時間が評価に入ると思っていたので 3 位かなあ、と思っていただけに嬉しかったです。 優勝賞品は 1 セットしか用意されておらず、優勝チームの中で最遠方からの参加ということで、 代表して優勝賞品を受け取りました。 ありがとうございます。

f:id:Iruyan_Zak:20161123014211j:plain

ペアの人が受賞スピーチで何か言っていましたが、僕は怒ってません。 怒ってないので、特に対応することも言わず、真面目に少しだけ喋りました。

懇親会

頑張らないって言いながらヒートアップしてたせいで、心身のバランスが崩れて腹痛が発現しました。 乾杯の盃で漢方薬を飲み、社員さんに温かいスープをもらって部屋の角から会を眺めてたら、 社員さんが来て、それから大きな輪になりました。 会場にはお酒が入っていたので、もういっかなーって思ってめっちゃいろいろ喋りました。 すごく楽しかったです。

懇親会が終わった後も部屋に残って色んな人とお話をしました。 意気投合した参加者の方と、渋谷の街に繰り出して電気屋に行って Zenfone 2 Lazer を買ったり、 ゲーセンで遊んだりしました。 音ゲーに触れてから楽しみが増えて嬉しいです。

反省点

これまで、「自分は手広くやってきた」と思っていたのですが、全然分野が足りないらしいです。 とりあえず LispPerl を書きます。その前に Haskell もっと勉強します。

mixi さんには先輩もいるので、ここでお仕事できると幸せかもなあって思うだけに、 手広さが足りないのは大きな課題です。

もくもく作戦中は自分嫌いがあまり発症しなかったので、どんどん発動して不言実行の人を目指します。 「不言実行」って言っちゃったのでもうだめです。

Git に関しては「Git できません」って言い続けたいなって思いました。 だって、 Git できるって言うと最終問題みたいなリポジトリが降ってくるんだもん。

最後に

運営の皆さん、参加者の皆さん。

この度は楽しいイベントをありがとうございました。 後輩にこのイベントのことを報告して、 Git にさらなる興味を持ってもらえるよう務めるつもりです。 うちの後輩に会うことがあれば、どうぞ痛めつけてやってください。

ペアの人へ。

この度は、誘ってくださり、ありがとうございました。 そういえば、後輩が Web を勉強したいって言ってたはずなので、面倒を見てやってくれると嬉しいです。 きっと彼らならあなたのやりたいことをサポートしてくれることと思います。 あなたを含め、彼らがこれから活躍していく姿を草葉の陰から応援しています。