はじめに
先日、42 Tokyoの最終試験に落ちました。
「42に受かること」が一つの大きな目標として語られる環境だったので、不合格になった瞬間は、
「応援してくれたピシン関係者の皆さん、本当にごめんなさい。」
という気持ちで胸が苦しくなりました。
周りから見れば、私は「42の最終試験に落ちた人」です。
でも、自分自身の1か月を振り返ってみると、それだけではあまりにも説明が足りない。
私は42で、プログラミングだけを学んだわけではありませんでした。
今回は、そんな私の42 Tokyoでの体験を、できるだけ正直に書いてみようと思います。
42での一番大きな出来事
42での生活は、ずっと順調だったわけではありません。
むしろ、2週目の前半からかなり苦しくなりました。
私は42に通っている途中で、人との関係で身の安全に不安を感じる出来事がありました。
その影響で、人と関わること自体が怖くなりました。
以前なら普通にできていたことができない。
学校に行くことも、レビューに参加することも、人と話すことも怖い。
学校そのものに対しても、だんだん嫌な気持ちが強くなっていきました。
それでも、一人で抱え込まずに運営スタッフの方や一緒に受験している人たちに相談しました。
運営スタッフの方たちは、テストの時に席を配慮してくれたり、
校舎で倒れた時には駅まで送ってもらったり、しばしば話を聞いてくださいました。
受験生のみんなも学習の席を囲んでくれたり、孤立しないようにたくさん配慮してくれました。
学校にいない時もDiscordでDMをくれたり電話をかけてくれたり、たくさん心配をしてくれました。
いろんな人が助けてくれている一方で、私はくよくよ悩んでいました。
「どうしてこんなことになっているんだろう」「私はどうしたらいいんだろう」
そんなことを考える日々でした。
その時の心境はこちら↓

そんな中で運営スタッフの方たちが、こんな言葉をかけてくださいました。
「42は、どんな状況でも自分で判断して行動するという方針」
「僕もピシン期間中に、人間関係のいざこざがあったけど、3日くらいで立ち直ったよ」
この言葉を聞いて、色々な重荷を抱えながらだけど、泣き言ばかり言っていられない。
自分で選んだ道だからこそ、自分の足でしっかりと立って、これからも前へ進んでいかないと。
私は、たくさんたくさん考えました。
そして途中から、
「42に受かるために勉強する」
というより、
「せっかくここにいるんだから、自分が面白いと思ったことを勉強しよう」
という気持ちが強くなっていきました。
「試験のため」ではなく「知りたいから」勉強するようになった
そういうわけで私は途中から、試験対策とは直接関係のないことをかなり勉強していました。
例えば、
- シェルがどういう仕組みで動いているのか
- ターミナルでは何が起きているのか
- ジョブ制御
- Gitの応用的な使い方
- コンパイルやオブジェクトファイルがどう作られるのか
など。
「試験に出るから覚える」というより、
「これってどうなってるんだろう?」
という疑問を掘っていました。
そういうことを調べていると、時間を忘れてしまい、
気づいたら終電を無くすこともありました。
毎日学校に通った
今回の42を振り返るうえで、自分自身が一番評価していいところかもしれません。
私は途中から学校そのものが嫌になっていました。
人も怖かった。レビューも怖かった。それでも、最後まで残りました。
「今日は行きたくないなぁ」
と思う日もありました。それでも学校に行きました。
今振り返ると、
「技術的に頑張った」
というより、
「そこに居続けることを頑張った」
という期間だったと思います。
共同開発が楽しかった
一方で、技術的な経験として印象に残っているのが共同開発です。
3人で開発したのですが、こちらは平和に、そして楽しくできました。
Gitを使って共同開発をしました。
自分が書いた実装が採用されたこともありました。
他の人が書いたコードを読んで、
コードが何をしているのかを理解し、それを説明することもできました。
ここは、自分の中では意外な発見でした。
私は自分でゼロから全部設計してコードを書くことには苦手意識があります。
でも、人が書いたコードを読んで理解することは、思っていたよりできる。
さらに、実際にコードを動かしながら、
「ここ、おかしくない?」
と気づくこともありました。
レビューで見えてきた自分の得意なこと
42ではレビューを通して、他の人のコードを見る機会もありました。
私はレビューで、
- 他の人のコードのバグを見つける
- その場で修正する
- コードの動きを理解する
- 理解したことを説明する
- 初めて見るレビュー内容でも、その場で「どうあるべきか」を考える
ということを経験しました。
その中で周りから、
「Gitの使い方が上手いね」「掘り下げる力があるね」
「初めてのレビュー内容でも、その場で実装を作れてすごい」
「AIを使わずに、その場でバグを見つけて修正できて、すごい」
などと言ってもらえたこともあり、これは、自分にとってかなり大きな発見でした。
設計にはまだ苦手意識がある
一方で、私は設計には苦手意識があります。
42でも、
「関数を作ってください」「自分でプログラムを設計してください」
と言われると、難しく感じることがありました。
ポインタなど、部分的に理解できるものはあっても、
「じゃあ、この問題を解くために自分で全体を設計してください」
となると急に難しくなる。
だから、自分のプログラムへの理解が実際どの程度なのか、
一度ちゃんと確認してみたいと思っています。
「自分は設計が全然できない」と思い込むのではなく、
何ができて、何ができないのかを分解したいと思います。
最終週まで、私は最終試験を受けるつもりがなかった
実は、私は最終週あたりまで、最終試験を受けるつもりがありませんでした。
だから、最終試験のための勉強をほとんどしていませんでした。
試験に受かるための勉強ではなく、自分が知りたいことを知るための勉強をしていたわけです。
そんな私に、最終週あたりから、
「一緒に通いたい」
と言ってくれる人がちらほら出てきました。
その言葉を聞いて、気持ちが少し変わりました。
「自分はもういいかな」
と思っていたけれど、
「そんなこと言ってくれる人がいるなら頑張るかぁ」
と思うようになりました。
そして、
「私を守ってくれた人たちの士気を下げたくない。」
そう思いました。
だから、最後にもう一度頑張ることにしました。
C00からC07まで、1週間で進めた
その時点で、実際の課題はShell01までしか終わっていませんでした。
そこから、1週間でC00からC07まで進めました。
今考えると、かなり無茶だったと思います。
最初から最終試験を目指して計画的に進めていたわけでもない。
精神的にもかなり消耗していた。
それでも、
最後くらい頑張ってみようと思って、そこから一気に進めました。
結果として、最終試験には合格できませんでした。
でも、
「受けるつもりすらなかったところから、最後の一週間でC00からC07まで進めて、最終試験までたどり着いた」
という事実は、自分の中では残しておきたいと思っています。
まとめ
42では、「合格すること」が一つの大きな目標として存在しています。
だからこそ、最終試験に落ちると、
「自分は42で何もできなかったんじゃないか」
と思ってしまうこともあると思います。
私自身も、最初はそうでした。
もちろん、合格した人たちは本当にすごいと思います。
課題を進め、技術を身につけ、最終試験に合格する。
そこには、それぞれの努力があります。
でも、42で過ごした時間を振り返ってみると、合格・不合格という結果だけでは、
その人がどんな経験をして、何を身につけたのかまでは分からないのだと思います。
42に合格した人にも、それぞれの物語がある。
そして、合格できなかった人にも、それぞれの物語がある。
私の物語も、「最終試験に落ちた」という一言では終わりません。
私は、今回の結果だけで自分を決めつけるのではなく、
「ここから何をするか」
を大切にしていきたいと思っています。
最後まで読んでくださって、ありがとうございました!