セキュリティキャンプ2019に参加しました。

セキュキャン参加記です。書くのが遅くなりましたがちゃんと書きます。 自分が参加したのはY-IIトラックのCコンパイラを自作してみよう!ゼミです。

応募用紙云々は↓に書いているので事前学習や当日のことについて思い出しながらつらつらと書いていきます。 md19970824.hatenablog.com

事前学習

ruiさんの書いた資料に従ってセキュキャン本番までひたすらCコンパイラを開発していきます。 週に一回ミーティングがあって進捗報告などをするのですが自分の場合は院試に邪魔をされてなかなか進捗を生むことができませんでした。おのれ院試め... 結局、単項のポインタ演算を実装したあたりでセキュキャンに突入します。

0日目(8/12)

午前中に移動すれば間に合うとの判断で前泊の許可が下りなかったのですが、自分の起床能力に自信がなかったためセルフで前泊。ナインアワーズ北新宿に泊まりました。 カプセルホテルなのですが、作業ができるラウンジがあってカプセルも広かったので3500円という値段に対してとても快適でした。ただやっぱり荷物の管理はめんどくさかったです。カプセルホテルの難点ですね。 適当にコンビニで名刺を印刷して切っておきました。

1日目

無事に起床し、11時30分頃に会場につく。 12時に受付をしてもらったあと、そのまま昼食会場へ。 席が近い人とひたすら名刺を交換しました。隣に座っていた人が京大生でびっくりした。

夕食までの時間はひたすら講義があった。それぞれ法律と倫理、セキュリティの基礎、コミュニティはいいぞ。みたいな話でした。 17:00から夕食があって、そのあとデザートが振舞われた。この時にCコンパイラゼミの皆さんと遭遇して名刺を投げつけあった。

夕食後、まずLT大会があり、いろんな人のLTを聞いた。reCAPTCHAは視覚障害を持っていて英語を母国語としない人には認証を通過するのが厳しいという話が一番興味深かった。 その後グループワークというものの班決めをしました。自分が参加することになったのは「プログラミング言語の高度な言語機能を、言語処理系でどのように実装するかについて参照実装やドキュメントを整備する」ことを目標とするグループです。 インターンや卒論がありなかなか進捗は出せないかもしれませんが、なんとか貢献していきたい...

グループワークが終わったらその日は終了。ちょっとだけ開発を進めて寝る。

2日目

実装!実装!実装! この日は講師の方々の助けで自分の実装のやばいところを発見し、ひたすら変更とデバッグを繰り返していました。院試があって進捗が出せていないのもあり結構焦っていた。 資料のステップは少ししか進みませんでしたが、なんとか軌道修正することができました。

3日目

寝坊しました

ファミマの音で起きる日が来るとは思わなかった。20分ほど遅れて開発部屋に着きました。申し訳なさを感じていたら講師やチューターの方々も寝坊してきて面白かった。(この日だっけ?)

この日も夕食までひたすら実装。 アセンブリについてわかっていなかったところを講師の方々に教えてもらいつつ、sizeof演算子までを実装しました。

夕食後には企業紹介やグループワークがありました。正直開発を続けたくてそれどころじゃなかった。

4日目

夕食までひたすら実装。 昼食後になんとかprintfが動くところまでを完成させ、ひとまず形になりました。 4時ごろに成果発表があり、各自2分程度でセキュキャンでの成果を述べました。 正直もっと先まで進み好きなことを実装してる人がほとんどで進みとしては自分が一番遅かったのですが、講師の方々の助けを借りていなければここまでたどり着けませんでした。本当に感謝しています。 夕食後はラストナイトイベントというのがあり、自分は少し迷ってHaskellの黒い本を選びました。(OCamlはある程度分かるがHaskellはあまり知らないのと、関数型言語の諸概念がいい感じにまとまっていてちょうどいいリファレンスになりそうだと感じたため。)

5日目

この日はグループワークと各トラックの成果発表だけでした。 実装を進めたいなあなどと思いながら聞いていましたが、まあ内容は面白かったです。

長いようで短かったセキュリティキャンプも終わり、名残惜しさを感じながら会場の外に出ました。暑い、暑すぎる。 会場内は常に冷房が効いていたので忘れていましたが、どうやら外は夏真っ盛りだったようです。暑さに絶望しながらCコンパイラゼミ+αの皆さんと焼き肉を食べに行きました。 美味しいお肉と5日ぶりのお酒で体力を回復しながら、色々と面白い話を聞くことが出来ました。 ここには書けませんが、応募倍率を聞いてびっくらこいた。

実は焼き肉の存在は去年参加した方々の参加記で予期していて新幹線の切符を翌日に取ったので、適当にアパホテルを予約して東京にもう一泊しました。

完走した参加した感想

自分は大学に入るまで1mmもプログラミングに触れたことがなく、大学に入ってからも理論的な内容ばかり追いかけてきた人間です。 もちろん実験やバイトで手は動かしてきましたし、少し興味が向いたものについては自分で実装してみたりもしました。(コンパイラがその例) また、3回の夏ごろからまともに競プロをやり始めて短いコードの実装は練習し続けていました。

これまで自分が認識する範囲での強い人というのは、競プロが強かったり、数学が強かったり、論文生成能力が強かったりする人々のことであって、 熱心にプログラムを書いて物を作り続ける人たちのことは全く目に入っていませんでした。

しかし、セキュキャンで会った人々はこれまで自分がなんとか足元に縋り付こうと追いかけてきた人たちとは全く異なる方向での強さを持っていました。 当たり前のように手を動かし続け、日々成果物を生成している人たちを目の当たりにして、エンジニアとして強いということについての認識を根底から覆されました。

自分は4回生ですから、学生として自由な時間はあまり残されていません。

院の進路も考えると、もっともっと本や論文を読んだり競プロをやって学ばなければいけないことがたくさんあるため、今から毎日手を動かして物をつくるぞ!という方向にシフトするのは正直厳しい気がしています。 ただ、何でもいいから手を動かして実装することを続けていかなければ彼らに大きく距離を離されてしまうという危機感を覚えました。

時間は作るものです。

1日は短いですが、限られた時間をなんとか活かしていかなければ、いざちゃんと働き始めたときに本当に何もできなくなってしまう気がしています。 今後はとりあえず競プロ、ISUCON、ETロボコンインターンの予習(深層学習コンパイラ)、Cコンパイラの続き、FPGAの勉強 あたりを進めて行きたいですね。不可能では?