見出し画像

Exam Rank 03をクリア

本日42 Tokyoの校舎にて、Exam Rank 03をクリアした。

メチャクチャ準備していたのだが、想定していた問題よりも難易度が低く、1時間程度で終了することができた。

Exam Rank 03 は、以前課題で取り組んだ「get_next_line」か「ft_printf」のどちらか一方の簡易版が出題され、3時間以内にコードの提出をしなければならない。

ぼくが引いたのは「ft_printf」だった。

どちらが出題されてもいいように、どちらの課題とも十分に事前準備していたので、どのように準備したかを振りかえってみたい。

準備編

準備に費やした時間は合計で60時間。

実際に出た問題は想定していたものよりも難易度が低かったので、60時間も時間を費やす必要はなかったと思うがこればかりは予想できなかったで仕方ない。

もともと「get_next_line」と「ft_printf」は、一つ前の試験であるExam Rank 02で出題される予定だったので、ぼくは3月から用意をしており、ここで36時間ほど使い、試験用にコードを1から作り直していた。

すると3月の終わりごろ、全世界的に試験の内容が見直され「get_next_line」と「ft_printf」はExam Rank 02からExam Rank 03に移動することになってしまった。

なので今月は、もともと試験用に作っていたコードをひたすら覚えることに費やした。

前日の勉強法

試験の準備に一番時間を使ったのは試験の前日で、「明日が試験」という緊張感と焦りが生まれて集中することができた。

前日に取り組んだ内容は、「何も見ずに関数を一つずつゼロからコードを書き、関数が一つ完成したら元々作ってあった正しいコードと見比べる」というもの。

その際に、コードを書くのに費やした時間と、間違えた箇所の数を記録しておいた。

ぼくの作ったコードでは、「get_next_line」が7つの関数でできており、「ft_printf」が16個の関数からできていたので、それを1つずつ再現していった。

また、完成したコードが実際に動くかどうかを確認するために、上記の関数に加えてmain.c とtest.shのファイルも同様に再現した。

前日にそれぞれの課題で上記の「関数を1つずつ答えを見ずに再現」することを2周ずつおこない、自分が間違えやすい箇所の把握をした。

そして寝る前に、自分が苦手としている関数を重点的に復習した。

また前日に、試験日当日は何時に家を出なければいけないのかを割り出しておいた。

試験時間の開始が16:00だったので、余裕を持って校舎に到着するために、15:35に校舎の最寄駅である六本木一丁目に着くように逆算した。

試験当日

前日は関数を一つずつ完成させるごとに答え合わせを行っていたが、朝から本番と同じように、一気にコードを書き上げることをした。

これを「get_next_line」と「ft_prinft」どちらとも1回ずつ行った。

この時点で、どちらも1時間以内にコードを完成させることができるようになっていた。
 
家を出発する前、 16:00から試験なので、途中お腹が空かないように、ゆで卵、茹でたさつまいも、干し柿を頬張り、腹ごしらえをした。

着替えをすまし、到着まで少し時間があったので、持ち物のチェックを行った。

前回のExam Rank 02のときに「持ち物リスト」作成していたので、それを見直した。

これを見ていなかったら、危うく学生証を忘れるところだったので危機一髪だった。

学生証がなければ校舎に入れず、もちろん試験も受けることができない。

以下が持ち物リストだ。

持ち物リスト
• 入館証(学生証)
• cocoaアプリ
• 寒い用の上着
• マスク
• 筆記用具
• ティッシュ
• 蓋付きの飲み物
• ノートパソコン

そして学生証も手に出発。

電車の中ではノートパソコンを開き、もう一度「get_next_line」と「ft_prinft」の全体を細かくながめ、それぞれ自分がミスしやすいところを見返した。

15:40頃に校舎に到着し、偶然校舎の入り口で、同時期にPiscineを受けた同期の学生と初対面した。

Discordで何度か話したことはあったが、直接会うのは初めてだった。

初対面でマスクをしていても意外と人の区別がつくものだと驚いた。

試験開始まで少し時間があったのでその学生とお互いの進捗具合などの雑談を交わし、直前に試験勉強をする気がお互いになかったので、ちょうどよい気晴らしになった。

校舎には前回訪れた時よりも学生が多く、ざっと15〜20人ほどがいたと思う。

開始10分前から、スタッフの方へ試験の受付を済ませた。

受付といっても、検温とcocoaアプリを見せるぐらいだ。

スタッフの方から、「周りがうるさくて試験に集中できなければ耳栓をしてもいい」と言われたのだが、今回はじめて聞いたので耳栓は持っておらず、まわりがあまりに騒がしいと集中ができない性分なので、少し不安になった。

最悪の場合、校舎に置いてあるティッシュを耳に詰めようと決意した。

隣には東京タワーと東京を一望できる絶景が広がっていたが、キーボードとマウスを除菌し、試験開始まで目を閉じて深呼吸することに。

そしていざ試験開始!

前回はなかなか試験を始めることができないという、謎の経験をしていたので、今回はスムーズに試験を開始することができた。

また、幸い周りの学生や、スペースを共有しているDMMの社員の方の声はそれほど気にならなかった。

ある学生が「voidってなんなんですか?」と質問している声が聞こえ、ぼくも去年はそんな感じだったな〜と少し懐かしくなった。

試験を開始し、自分が取り組む試験が「ft_printf」だと知った。

個人的には「get_next_line」のほうがコードも短く簡単に思えていたので、「get_next_line」のほうがよかったが、仕方がない。

しかし問題文をよく読むと、「ft_printf」で想定していた「フィールド幅」と「精度」を実装しなくてもよいことがわかった。

本当に実装しなくてもいいのだろうかという不安と、まずは自分の記憶の中にある、「ft_printf」を書き出してしまいたいと思い、「フィールド幅」と「精度」の処理を簡易的に含んだコードを書き出した。

一旦それが完成したのが試験開始から50分ぐらいたったころだった。

そしてコンパイルができ、正常に動作することを確認してから、簡易的に書いた「フィールド幅」と「精度」の処理を削除し、コードを綺麗にした。

そして完成したコードを提出。

結果が出るまで30秒ほど待たされるのだが、この時間はいつもドキドキする。

すると「SUCCESS」の文字が表示され、試験をパスしていたことがわかった。

無事に一発合格することができ、17:05に試験を終了した。

試験が終われば、いつでも自由に帰って良いので早速席を立つことに。

校舎を出る前に使ったキーボードとマウスを消毒し、スタッフの方に挨拶をして清々しい気持ちで席を後にした。

前回は18:00ぐらいに試験を終了し、帰宅ラッシュにはまってしまって電車内で圧死しかけたので、急いで校舎を出た。

幸い電車が混んだのは一瞬だけで、おおむね周りに十分なスペースがある状態で電車にて帰宅することができた。

匿名のコメ・質問はmondまで👍 https://mond.how/ja/hovinci_jp