git challengeとは
git challengeとは、株式会社ミクシィが開催している、バージョン管理ツール「Git」を利用した競技型技術イベントです。
2018/2/3にgit challenge第8回大会が開催され、traPからmasutech16, ninja, to-hutohu, Dekaが参加しました。
今回もそれぞれで参加記を書いていきます。
masutech16
こんにちは。masutech16です。
他の方は割と何回か落ちたりしているみたいですが、connpassからの応募で一発で通りました(募集人数が5人と少なかったですが応募も2人だったのでこっちはねらい目かもです)
午前
平日だと1限に出られないどころか2限にも出られないことがあるのですが、今回のイベントではなんとか寝坊することもなく無事会場につくことができました。
こういうテック系のイベントに参加するのは初めてだったのでこの時点ではだいぶ緊張していました。
会場に全員が集まり、mixiの方のLTを聞いたりチュートリアルを終わらせた後は、お昼の時間になりました。
git challengeは二人一組になって問題を解いていく形式になってします。そのチームの方と、今回サポートをしてくださるTAの方と一緒にお昼を食べながら談笑しました。
ぼくの相方は沖縄から遠路はるばる来られた院生の方です。最初はちょっと緊張しましたが、話してみるとすごい気さくな方で年の差を感じることなく接することができました。
お昼中はTAの方とも一緒に、CIのツールの話や初心者が技術力をつけていく過程で何をすべきかみたいな話ができて大変有意義でした。
本戦
競技内容と戦略
簡単にgit challengeの問題形式についてお伝えします。
git challengeの問題は簡単なものから難しいものまで☆1~☆6で難易度が振られています。この難易度がそのままポイントになり、得点が最も多いチームが優勝です。
後半は本当に難しいものがいろいろ並んでいるのですが、もちろん解けたらかなり有利になるのでそこらへんはチームの戦略が試されます。
ぼくたちのチームの方針はこんな感じでした。
- まずは2人で手分けして☆2を解く
- ☆1は詰まった人が適当なタイミングで解きに行く
- 一通り埋めたら☆3の問題を二人で考えながら埋めていく
(お互いにgitにそこまで強くないということで☆4以降は捨てる方針でいました)
実際
問題の詳細は口外禁止なので結果だけをささーっと書きます。
初っ端から☆2のヤバい問題を踏んでぼくが完全に詰まったので、さっさと☆1に移行。全部担当しました。相方さんがその間に☆2を結構埋めてくれたのですが、残りの問題はお互いに厳しいとなって☆3の問題に移行しました。
☆3の問題についてはぼくが1問、相方の方が1問解いてそこで時間切れでした。
結構健闘できたと思いましたが、実はtraPから参加したチームの中ではびりです。辛い。ACとWAで分かれていた問題が2問あって、その2問を両方とも落としてしまったのが敗因ですね。どちらかさえ取れていれば上位も狙えたというところだったので惜しい感じです。
優勝はなんと3チーム同率で、そのうち2チームはtraPから参加した人のチームです。その人たちの参加記も下の方にあるので、是非最後まで読んでいってください。
解説/LT
最初に模範解答を見ながらあああああってなるための時間がありました。大まかなやり方があっていても細かいところが違って合ってない解答などもあり、やはりコンフリクトの解決は大変だなという気持ちになりました。
その後はmixiの方が.gitフォルダの中に何が入っているんでしょうみたいな話をしてくださいました。中身の話は実は少し勉強していたので知っていたのですが、改めて話を聞くと自分の中で整理ができてよかったです。低レイヤのコマンドの使い方の実演も見れて勉強になりました。
懇親会
社員の方やほかのチームの方とご飯を食べながらお喋りをしました。実は以前に体調を崩してからというもの食が細くなっているので、ちょうど会話の方に注力できてよかったです。大変ためになる話をいろいろと聞くことができました。
総括
初めてのイベント参加でしたが、最後まで楽しい気持ちのまま終えることができました。今後も開催されるようなので、周りの人にどんどん布教していきたいと思います。
ninja
こんにちは、ninjaです。
git challenge2回前ぐらいから応募していたのですが、今回で参加することができました。
午前
mixi社内でチュートリアルなどをしました。
クッションやソファーなどがあって快適に過ごせそうな空間でした。
社員さんなら自由に使えるらしいです。(すごい)
お昼
毎回その日にちなんだものが出るようで、今回は節分のメニューでした。
— n-inja(ninjaribaton) (@ninja9973) 2018年2月3日
本戦
前半戦
2人1組のチームで問題を解いていきます。
下から貪欲に問題を解いていくことにしました。
ほどよく問題を解いていったのですが、途中からスコアボードを見るに明らかに難しい問題があったので飛ばしたり、他チームが多く解いている問題を先に解くなどしていました。
後半戦
他チームが解いている問題を解く戦略がうまくいき、上位チームが解いている問題まであと1問になりました。
残り数分のところで解法を思いついたのですが、残念ながら時間中に提出することができず終了となりました。
解説
時間内に通せなかった問題の解法があっていたのでつらかったです。
LT
gitの内部構造やOSSとしてのgitについてのお話を聞くことができました。
表彰式
1位は同率で3チームでtraPから他に参加していた@to-hutohu、@Dekaが表彰されました 👏
懇親会
ご飯を食べながら色々なお話をしました。
社員さんから運用の話を聞けたりして非常に楽しかったです。
最後に
また開催されるなら、他の人に薦めたいと思える非常に楽しいイベントでした。
to-hutohu
こんにちは、to-hutohuです。
これまで3回連続で参加応募していましたが、抽選で落ちていました。
今回参加が決まってとても嬉しかったです。
ここ3回連続でtraPのメンバーが優勝していたので、謎の緊張感を感じながらGit Challengeの会場であるmixiへ向かいました。
午前中
受付をした後、チームとなった相方の方と自己紹介をします。
相方は高専出身の大学院生の方でした。
午前中はmixiグループの社員の方によるLTがありました。
会社でのGitの利用法についてお話を聞くことができました。
お昼ご飯は節分ということで恵方巻きをいただきました。
— とーふとふ (@to_hutohu) 2018年2月3日
お昼の時間には各テーブルに社員の方が同席してくださり、いろいろな話をすることができます。
私達のテーブルでは、研究の内容に関する話や研究室の選び方や選ぶときに心がけることについて話をしました。
他大の人や社会人の方とこういう話を出来る機会もなかなかないので、こういった話をエンジニアの先輩方から聞けるというのもテック系イベントに参加する利点かもしれません。
競技開始!!
.@deka0106 @ninja9973 @masutech16
— とーふとふ (@to_hutohu) 2018年2月3日
┗('o'≡'o')┛ウワアアアアアアアアアアアアア!!!!!!!!┗('o'≡'o')┛Git Challengeが始まるううう┗('o'≡'o')┛ウワアアアアアアアアアアアアア!!!!!!!!┗('o'≡'o')┛#mixi_git
私達のチームは相方がいつもは一人でGitを使っているとのことだったので相方が☆1から私が☆2から順に進めていくという方針をとりました。
☆2を見ていって手が止まったらすぐ次の問題に行くという感じで☆3まで行ったときに相方が☆1を解き終えたので解法はわかったけど上手く解けなかった☆2の解法を伝えて私は☆3に専念しました。
私が☆3を解き終える頃ちょうど相方も☆2を解き終えて、その時点での単独1位となりました。
その後難しい問題に挑戦していたのですが、どの問題も手詰まりをしてしまいそのままタイムアップとなってしまいました。
解説
問題の解答を見ると、Gitに関してまだまだ知らないことがあるなあという気持ちになりました。
問題の具体的な内容は書けませんが、Gitの使い方はもちろんのこと、Gitはどうして動くのかを知っていることは有利になるかもしれません。
でも普段からばりばり複数人でGitを使いまくっている人は普通に強いです。
結果発表
優勝でした
優勝賞品としてメダルとオクトキャットのフィギュアをもらいました。
うれしい
— とーふとふ (@to_hutohu) 2018年2月3日
懇親会
お酒と美味しいご飯がでました!!!
いろんな方とお話できて楽しかったです。
Deka
こんにちは、Dekaです。
今回traPからの参加者で唯一の15でした。
git challenge、実は2回ぐらい抽選で落ちていて、今回は念願の参加ということで、結構頑張りました。
前日
某実のレポート、チノと🐙の試験…はさておき、
公式ブログで紹介されてた例題をやってみたり、前回覇者ののんさこが推してたこれをやったりしました。
ついでにSourceTreeとgitも最新版にしておきました。
環境についてはちょっと迷いましたが、やっぱり基本的には使い慣れているSourceTreeでやって、特殊なコマンドとかはGit Bashを使う事にしました。
ただ、vimの扱いに若干難ありだったので、エディタ(コミットメッセージとか書く時に開くやつ)も使い慣れているVSCodeに変更しておきました。
$ git config --global core.editor "code --wait"
朝
世界一地図を読むのが下手糞なので、受付開始20分前ぐらいに到着する時間に家を出ました。
案の定渋谷で迷って、結局受付開始5分前ぐらいに着きました。(2番乗り)
— Deka( ˘ω˘ ) (@deka0106) 2018年2月3日
午前
午前はmixi社内でのgit運用のお話とチュートリアルでした。
実際の運用で、rebaseとかはどれぐらい使うものなのかとかは気になっていたので、聞けて良かったです。
リベースしてキレイにするような運用はしないらしい #mixi_git
— Deka( ˘ω˘ ) (@deka0106) 2018年2月3日
昼
節分ということで恵方巻き弁当でした。
— Deka( ˘ω˘ ) (@deka0106) 2018年2月3日
また、後ろに色々な飲み物が用意されていたので、僕は紙コップとプラコップを両方使って(害悪)、アイスココアを作って飲んでいました。
本戦
いよいよ本戦です!
僕も相方もgitの経験はそんなに豊富ではないということで、じゃんけんで勝った方が奇数番目、負けた方が偶数番目の問題からやっていく事にしました。
ということで僕は偶数番目担当になりました。
スタートです!!! #mixi_git
— Deka( ˘ω˘ ) (@deka0106) 2018年2月3日
(内容については、公開出来ないので適当にぼかします。)
まずは1問目(★1)、これでいいのかなぁと若干不安を抱えながらお祈りしていたら、なんと一発AC。スコアボードを見てFirst AC(開始2分ぐらい)だった事が分かって心の中でガッツポーズしました。
次に2問目(★2)、正直1問目で調子に乗っていたのでノリでパパッと提出したらWAでした。(それはそう)
色々と試行錯誤した後、"逃げ"な解法を思いついて、お祈りしていたらACしました。
そしてn問目(★2,3)、正攻法じゃない方法でやっていたり、本当にこれでいいんか?と合っている自信がなかったりで、ひたすらお祈りしていました。結構通す事が出来たので良かったです。
この時点で、とーふとふのチームが★22(★1×3,★2×5,★3×3)で1位、僕のチームが★20(★1×3,★2×4,★3×3)という感じでした。
ここで、スコアボードを見ると、ほとんどのチームがWAしてるヤバい問題があってそれに取り掛かり始めました。
途中で、相方が別の問題でちょっと詰まっていた様子だったので、ちょっとお手伝いしてAC、1位に並びました。
その後★4以降を見たりしましたが、正直全く出来る気がしませんでした。★6はどうしてこうなったと思いつつそっ閉じしました。
ここからは時間との戦いで、さっきのヤバい問題を通せば勝てる!!と焦って色々やった結果、いい所まではいったものの時間内にAC出来ずに撃沈しました。
結果は★22で3チーム同率1位、時間的には2位でした。
解説/LT
.gitの中身について話を聞きました。
普段あんまり覗く事はありませんが、5年間で1度ぐらいの頻度で、中身を知っていて助かった事があったらしいです。
また、後のLTではこんな名言が飛び出しました。
Git本体にコミットするまでがgit-challenge #mixi_git
— Deka( ˘ω˘ ) (@deka0106) 2018年2月3日
僕は一生git-challengeを続ける事になりそうです。
表彰
実質2位だったので呼ばれないと思っていたらまさかの同率で3チームとも優勝ということになりました。
優 勝
— Deka( ˘ω˘ ) (@deka0106) 2018年2月3日
し た
(3チーム同率)#mixi_git
ただ、メダルとかは1組分(2人分)しかなかったので、そこはじゃんけん challengeする事になりました。
負けたのでメダルをもらえませんでしたが、後で郵送されるらしいです。
懇親会
🍺がたくさんあったので、かぷかぷ飲みながら色々とお話していました。
作問者の方ともお話することが出来たので良かったです。
最後に
git challengeでは「実際に遭遇するかもしれない問題」に"実際に遭遇する"ことが出来、それに対して対処するということが経験出来ます。
個人での経験しか無い人やgitの経験がそんなに豊富じゃないという人も、git challengeへの参加を期に勉強してみるのも良いし、git challengeで得られる事もたくさんあると思うし、また純粋に楽しいので、とりあえずエントリーしてみましょう!!
抽選で落ちた人は根気よくエントリーし続けましょう!!