"落選" が今の僕を作っている:未踏ジュニア・セキュキャン応募への心構え
おそらくこの記事は 2024 年度の未踏ジュニア成果報告会が終わった後に公開されていると思うので、その前提で書きます。まず、クリエイターの皆さん、約半年の開発および発表、お疲れ様でした。
視聴していた皆さんの中には、この成果報告会で刺激を受けて、未踏に応募したい!!と思った方もいらっしゃるのではないでしょうか?わかりますよ、僕もそうでした。
そして、「でも自分のプロジェクトじゃ採択されないんじゃないかな……」と不安になっている方もいらっしゃるのではないでしょうか?わかりますよ、僕もそうでした。まあ僕はそれで応募して落ちましたが。
ただし。僕は、むしろ未踏ジュニアに落選したからこそ、今の自分があると思っています。これはある種のルサンチマン的な考えではありません。僕は落選によって成長することができたのだと確信しています。
というわけで、今回は 「未踏ジュニアに応募して落選した」経験を活かし、セキュリティ・キャンプなどの選考を何度か通過した1という立場から、未踏ジュニアやセキュリティ・キャンプを始めとする何かに応募しようと思っている皆さんの背中を押したいと思います。
ところで話は変わりますが、2024-06-252、弊高専の 1 年生(情報系)に対してプレゼンを行ってきました。「学生向け事業のすゝめ」と題して、セキュリティ・キャンプや未踏などを宣伝し、また応募に関するコツを伝授する、という趣旨の発表です。
この発表で目指したことは「とりあえず応募してみよう、というメッセージを伝えること」でした。このブログ記事でも、言いたいことは「とりあえず応募してみよう」に尽きます。
使った資料を貼っておきます。とくに Cosense (旧 Scrapbox) のほうでは様々な事業を紹介しているので、よければ見てみてください。ちなみにこの記事のベースは、スライド後半の「応募のコツ」です。
"落選" が今の僕を作っている
いきなりタイトル回収ですが……
未踏ジュニアへの応募と落選
……まあとりあえず、僕の未踏ジュニアへの応募歴を聞いて下さい。
僕は未踏ジュニアに 2 回応募し、2 回とも落選しています。2021 年に「NrealLight にハンドトラッキングを実装する(仮)」というタイトルで、2022 年に 「キーボードのみで操作が完結する OS ディストリビューションの開発」というタイトルで応募しました。双方とも Cosense (旧 Scrapbox) にページを設けており、後者についてはブログも書きました。
さて、僕が何らかに何らかを応募するのは、2019 年(中 3)の U-22 プロコンが初めてであり、未踏ジュニアが初だったわけではありません。ただし、既に完成したプロジェクトを応募する U-22 プロコンとは正反対である、「自分でプロジェクトなどの提案書を書いて応募する」という挑戦は、2021 年の未踏ジュニアへの応募が初めてでした。
そんなわけで、勝手も分からずに提案書を書いた 2021 年、つまり 1 回目の応募では、書類審査で落選しました。
未踏ジュニアの良いところは「応募後にフィードバックがもらえる」点です。このとき僕が受けたフィードバックは「実現可能かどうかを判断するのに十分な情報が得られませんでした」というものです。
なるほど。
反省会
というわけで反省会を行いました。まず、未踏ジュニアの公式サイトに設けられている「提案書を準備しよう」というページを見ました。
メンターの方々や、修了生の方々が書いたブログなどがまとまっています。これら3を見て、自分の提案書の改善すべき点について考えました。すると、採択された人からは以下のような印象を受ける傾向にある、ということがわかってきました:
- 「何故このプロジェクトをやりたいのか」がはっきりわかる
- 「それを実現できる能力があるんだろうな」と思わせられる
- 総じて熱意が伝わってくる
ここから「僕は自分の実力・経験・熱意を示しきれていなかった」と気づきました。この気付きは僕にとってかなり大きかったと思っています。
改善、そして進歩
2022 年の応募では、2021 年で得た気付きを最大限に活かしました。
アイデアは早いうちに決めていたので、プロトタイプ4を作りました。メンターの方々も仰っていますが、プロトタイプは自身の能力を示し、アイデアを直感的に伝える方法としてはかなり強力です。動画を撮って YouTube にアップロードし、URL を共有しました。
提案書には余裕をもって取り掛かることができました。自身の経験、熱意、能力などを出来るだけアピールし、プロトタイプの写真や図解を多く取り入れていくと、文章量も自然と増えます。2021 年の提案書は約 1,700 字だったのですが、2022 年は20,000 文字になりました。10 倍以上!!まあこれはすごいというか、2021 年に書いてなさすぎた結果 です。
また、Twitter で知り合った人と提案書を見せあい、お互いにレビューを行うといったこともやっていました。
この結果、2021 年の応募時には叶わなかった書類審査の通過を果たすことが出来ました!!!
……出来ましたが、最終的には落ちました。メンターとの面接による二次審査では、アイデアは良いがアプローチが適切ではないのでは、という質問を受けました。「キーボードで操作可能な OS」を掲げているが、OS レベルで操作方法の改善をする必要はないのでは?という質問です。当時、応募前からそれに気付いてはいたのですが、それでもなお自作 OS にこだわってしまいました。本人の学習という理由も場合によっては正当だ、みたいなことをメンターの誰かが言っていた気がして、それに縋ってしまったんですよね。5
最終的に採択には至らなかったものの、審査中の会話で知らない技術を教えていただいたり、ユーザー目線の感想を頂いたりして、アイデアを改めて深く考え直すきっかけになりました。まだ答えは出ておらず、自作 OS も滞ってはいますが、いずれ再開したいなあと思っています6。
進歩は未踏ジュニアに限りません。「熱量などをしっかりと伝える」という気付きはセキュリティ・キャンプ等の応募にも活かすことができました。しかも、未踏ジュニアとは違って、こちらは無事に選考を通過しています。未踏ジュニアの反省がなければ、セキュキャンの選考にも落ちていたと断言できます。
応募課題は公開しているので、よければ見てみてください。ちなみに 2022 年(全国大会への応募)は第 3 希望まですべて合わせて 7,000 字7、2023 年は 12,000 字です。もちろん文字数が全てではないですよ。あくまで目安です。
小まとめ
はい。長々と語ってしまいましたが、つまりこういうわけです:
- 応募して落選し、頂いたフィードバックをもとに反省会を行った
- 自分の実力や熱量などを示しきれていなかったことに気付いた
- 得た気付きを活かして、プロトタイプを作ったり、提案書に図や画像をたくさん入れたり、そもそもの文字数を増やしたりしてアピールしたら、書類審査は通った
- 得た気付きをセキュリティ・キャンプ等の応募にも活かすことが出来ている
「未踏ジュニアに落選したからこそ、今の自分がある」というのはこういうことです。
優秀さは必須要件ではない
最初のほうに「セキュリティ・キャンプなどの選考を何度か通過したという立場から~」みたいなことを偉そうに書いたのですが、そもそも(当然ですが)僕は応募した全てに受かってるというわけではないです。未踏ジュニアの 2 回はもちろん、U-22 プロコンには 3 回応募して全て落ちてますし、情報科学の達人はシンプルに落ちましたし、SecHack365 にも落ちています。
つまるところ僕って百発百中の最強人間ではないわけです。それどころか、優秀な人間からは程遠いところに居ると思います。それでも熱量を示せば理解してもらえる場合があるわけです。
「別につよつよじゃないし……」と思って応募を諦めるのは、あまりにも勿体ないです。
フィードバックをもらおう
実体験として、フィードバックは活かすことができればものすごい飛躍に なると言えます。そして、U-22 プログラミングコンテスト・未踏ジュニア・SecHack365 では、落選後にフィードバックをもらえる可能性があります。少なくとも未踏ジュニアではフィードバックを返すと明言されています。他は個人の経験であり、フィードバックが確約されているかどうかはわかりません。
もちろん、プロコンで最終審査会まで残れば色々な人の目に触れます。未踏ジュニア等ではメンターからのサポートはもちろん、成果報告会による認知度の向上を見込めます。これらによって、落選する以上にフィードバックが受けやすい状態が揃うのは間違いないでしょう。
それでも、フィードバックは合格者が独占できる特権ではありません。前述の通り、落選者にもいくらかのフィードバックがある可能性があります。
それに対して、当然ではありますが、応募しなかった人に対するフィードバックは一切ありません。100%ないですよね。なら応募したほうが得じゃないですか?
応募それ自体が学習である
ここからはセキュリティ・キャンプの話をします。僕は 2022 年のセキュリティ・キャンプ全国大会で「RISC-V CPU 自作ゼミ」の選考を通過しました。セキュキャンの応募においては応募課題に取り組む必要があり、プログラムを書いたり、調べ物をして情報をまとめたり、自分の意見や体験を書いたり等、ゼミによって多種多様な課題が課されています。
さて、RISC-V CPU 自作ゼミはどのような課題を課しているのでしょうか?詳しくは先ほど貼った応募課題晒しを読んでいただきたいのですが、特筆すべきは「SystemVerilog を用いた FIFO の設計」です。名前のとおりですが、First In First Out なデータ構造ことキューを、SystemVerilog という HDL (Hardware Description Language) を用いて作れという課題です。
応募課題に取り組み始めた時点で、僕は SystemVerilog はおろか HDL を用いた設計をしたことすら一度たりともありませんでした。普段触っている手続き的なプログラミング言語とは大幅に異なる SystemVerilog を、ゼロから独学する必要に迫られてしまったわけです。
もちろん大変でした。インターネットの情報を読み漁り、慣れない文法や動かないコードと格闘する日々を送っていました。スライド資料にも載せましたが、ソースコードを開いた VSCode と GTKWave8が映ったモニタを写真に撮って9、夜ご飯を食べながら iPad に表示されたその写真を見てデバッグをする……みたいなこともやっていました。
しかし、「大変だった」とは書きましたが、課題に取り組んだ記憶にネガティブな感情はありません。少しずつ課題に対する解像度を上げながら課題を解き、知らないことを知っていくのは本当に 楽しかったです。そしてもちろん、ちゃんと動くようになったときは嬉しかったです。
僕がこの経験から得た教訓は、応募課題や提案書に取り組む経験は、それ自体に価値があるというものです。あと、頑張れば全く知識のない状況からでも選考を通過できる、という教訓もありますね。
僕はセキュキャンにおいては基本的に開発コースの課題を見るのですが、取り組むだけでも勉強になるような課題を課しているゼミは非常に多いです。例えば 2024 年の全国大会について、WebAssembly ゼミの応募課題は素晴らしいと思っています。まず Wasm バイナリを任意の言語で作成し、それをディスアセンブラで観察してみて、さらに Wasm バイナリをパースするプログラムを書いてみて、……という課題が課されています。明らかに、やればやるほど WebAssembly のバイナリフォーマットに対する理解が深まる課題です。
皆さんもセキュリティ・キャンプの応募課題を見てみてください。あわよくば来年とかの課題を解いて応募してみてください。
過程を大事にしよう
ところで、先ほど例に挙げた WebAssembly ゼミの課題では「最後まで実装しなくても問題ありません」と述べられています。他にも、例えば同年の RISC-V CPU 自作ゼミで課された課題では「テストをパスできていなくても書いてみてください」と書いてあったり、TEE ビルド&スクラップゼミでは「完答を前提としてはおりません」とすら書いてあったり。
セキュリティ・キャンプの応募課題において、完璧であることは求められていないことが多いんですよね。それよりは、その回答にたどり着くまでの過程を重視するゼミが多いような印象を受けます。
解けそうにない!と思って諦めるのではなく、とりあえず取り掛かってみるのが良いと思います。そうすれば、何らかの学びを得られるかもしれないし、取り組んだその過程を評価してもらえるかもしれません。
おわりに
とにかく僕が言いたいことは以下に集約されます:
- 落選を恐れて応募を諦めるのは勿体ない
- 優秀さも、「完璧さ」「正解」も必須ではない
- とりあえず応募してみませんか?
僕は選考結果にかかわらず、応募それ自体によって成長することが出来ました。そして、落選を恐れずに応募したからこそセキュリティ・キャンプ等の選考を通過し、様々なことを学ぶきっかけを頂けたと思っています。というわけなので、皆さんにも応募にチャレンジして欲しいな、と願っています。
さて。最後に、セキュリティ・キャンプで OS 自作ゼミを担当するなどしている hikalium さんが語る真理ツイートを引用して終わります。この方は毎年のようにこの趣旨のツイートをしており、僕も見るたびに一切の余地なく同意だなあ、と思うなどしています。
ツイートを読み込み中...
応募、頑張ってくださいね。
Footnotes
-
正確に言うと、seccamp'22, GCC 2023, nextcamp'23, CODE BLUE'24 学生スタッフ の 4 回です ↩
-
電通大受験の翌週でヤバ!というか最初は電通大受験の直前に発表する予定でした(僕のミスでそういうスケジュールになってしまったのですが、流石にズラしてもらいました) ↩
-
いまは提案書のコツ・体験談どちらも合わせれば 20 件以上もあってすごいですね。僕が読んだ当時はこんなになかったはずなので、そのとき書かれてたやつは全部読んだ気がします(わかんないけど) ↩
-
https://github.com/watasuke102/os-proto がそれです(応募時点でのプロトタイプは
mitoujr-poc
ブランチに残しています)。未だに自作 OS のプロトタイプ実装用リポジトリとして活用しています ↩ -
今考えると本当に OS に拘る必要なんてなくて、最強のターミナルマルチプレクサなり何なりでこのコンセプトを実現させるのも実に楽しそうだ、と思います。まあ当時は、自作 OS の学習とコンセプトの実現を両立したい!という思いがあったのも確かなので、当時の自分は完全に間違っている、とも言いたくないものです。 ↩
-
これを言い続けて 2 年が経過した ↩
-
前述のプレゼン資料では 7,800 字としていたのですが、いま数え直したら 7,000 字でした(?) ↩
-
波形を表示してくれるソフトウェア。クロック信号などを表示するのに使っていました ↩
-
この文章を書いてて初めて思い至ったのですが、別にスクショで良かったのでは……???? ↩
Comments
Powered by Giscus