Piscine(ピシン)、落ちた話も受かった話もまあまあブログ記事とかになっていて、公開できないことも多いし、僕がこれ以上つけ加えることはほとんどないと思うが………。なんていうの、やっぱり落ちればくやしいわけで、なにかポエムを書こうと思って。
42tokyo
そもそも、42tokyoは何なのだろうか。プログラミングスクールなのだろうか。もちろん学校法人ではない(一般社団法人 42Tokyo)。実質はDMM様のご厚意で、会社の大きい部屋と大量のiMacを貸していただいているという感じだ。
最近私が気に入っている定義は、定期的に問題を解かないと追い出されるサロンというものだ。
ピシン(Piscine)
ピシンも、入学後も、「問題と生徒だけがあって、先生がいない」基本スタイルは変わらないようである(落ちたので、本科は詳しくないけど、ウェブサイトにはそう書いてある)。体験会的な面もあるのだろう。
私ことmiidaは2022年10月度のピシンを受けた。ウェブサイトで受ける2時間かかる壮大なCAPTCHAみたいな試験があり、受かったので、ピシンに参加した。IDからみいださんとかいいださんと呼ばれていた。
私の出身は、入試偏差値で日本で三指には入ると言われるアホ高専だが、一応電子情報工学科卒で、情報系であった。情報工学専門なら42なんて行かなくてもいいんじゃない? って思う人もいるらしいけど、ぜんぜんそんなことないから。現に落ちてるし。高校1年とかの必要性のわかってないやつらにプログラミング教育するのって難しくて、大した授業は受けられなかったのだ。
ピシンの風景
あるところに集められて、問題集渡されて、4週間放置されるみたいな感じ。レビュー予約と自動判定のシステムは一体で、大問ごとに2回レビューを受けると自動判定が走る。レビューの点数はおそらく大して大きくない。レビューを受けたいときは空き枠から選べる。逆に自分がレビューしてもいい時間帯を登録しておくと、システムを通じて勝手に予定が入る。レビューは15分単位で入れられるが、私は15分だと足りなかったから、ブッキングされたら前後の空き枠を消していた。
リアル教室はでっかいパソコン室みたいなのが1個ある。私たちの回はコロナ特例でオンラインで参加できたので、ほとんどいっていない。現在は完全オンラインは不可能らしい。
勝ち方と負け方
落ちた話も受かった話もまあまあブログ記事とかになっているが、
- **がんがんググって、
- がんがんコード書いて、
- 遠慮せず質問して、
- がんがんレビュー受けて、
- がんがん他の人のレビューする
- どれが足りなくてもダメ**
というのが私が身をもって(不合格になることで)学んだことだ。
大問のなかに小問がいくつか入っていて、判定は小問ごとにOK/NGされる。
各大問のうち50%で合格。ただし、一番最初のNGになった小問以降は点数にならないというスパルタ。なので、
- 大問を最後までやるような完璧主義もダメ
- だけど、凡ミスで前半の小問をNGにする注意力のなさもダメ
だと思う(大問最後までやることが、入った後に役に立つ可能性はあるが)。
これでPassしなかったら、NGの問題だけなおして、レビュー×2、自動判定してもらう。
私が負けたのは、まずレビューのポイント制を理解してなかったこと。完璧主義のために、提出から24時間以内に2レビューのルールを守れてなかったことがある。書き終わってfinishボタン押してから「これで大丈夫かな?」とかぐずぐず見直したり、ブッキング入れたのにキャンセルしたり(ポイントが消えるに気づかなかった)。
これはダメ。
はじめの方は、平気で4日(24時間以上)とか寝かしていた。これだけは本当に無駄。
私はせまい実家住みなので、夜型なのに、午前0時以降は通話しないと決めていたのだけど、そうするとまともにレビューができなかった。最後の方はあきらめて家族に謝って、午前2時、3時とかにレビューしてましたが、フルタイムは無理でも休日なし毎日6時間程度は必要じゃないかな。
finish後24時間以上経過って、これまともな人は体験しない結構なレアケースで、どうなるか知らない方もいるだろうが、1レビュー受けた瞬間に自動判定が走って、OK/NGはわかるけど、0点になります。
そんなことばっかりしてたら、お互いの進捗ってよくわからないので、最後の方のチーム戦で組んだ人に「え!なんで、そんなところにいるの!」とめっちゃ怒られました。すみませんね。
とにかく最初は知識がなくても、調べるのが上手く、デバッグやレビューを参考に、驚異的な速度で私を追い抜いていって受かった人もいる。とにかく手が動かないのは許されない。
仕事があったりして、時間がないときは
ちなみに、どうしてもピシン中に時間を確保できない場合は、事前にC言語の勉強、シェルの勉強をするしかない。
シェル使ったことない、シェルってなんですか? ってのは論外で、大変な目にあう。何がなくても、そのくらいの事前準備はした方がいいと思う。主要なコマンドの名前とおおまかな機能の暗記、一般的なオプションや引数の形式、複数のコマンドを組み合わせるやり方とかまで、知ってるとスタートダッシュが効くかも。
どのような課題か教えることはできないが、海外も含めて42本科の最初には「ft_lib」という課題がある(必修なので、できないと即退学)という記事を読んだけど、まあそういう学校なので、ft_libが何か説明を読んで、なんとなくどういう風に作るか理解できくらいのレベルが、入学を許可されるレベルなんだと思う。
公開情報によれば「ft_lib」は、「libc」とかのサブセットを自作するようだ。Cのコンパイラに付属する標準的なツール(関数とか)が入っている「libc」というものがあるんだけど。あと、macOSはUNIXであるから、UNIX基準で勉強すること。
つまり、これから言えるのは、Cに関しては大ざっぱに言って1990年年代前半くらいまでのC言語の教科書に載っているような知識が役立つということ。当然CLI(コマンドライン)のみで、GUIはピシンには出ないとわかる。
ピシンの合格した友人たちが、このft_libでヒーヒー言っているので、もちろん一々ライブラリーの中身を使える必要はない。ただ、ライブラリーってなに? 関数ってなに? では不利になるだろう。
合格者は即ft_libが書けること期待してるわけですからね。
続きを読む