見出し画像

Piscine受かりたきゃこれだけ見てろ【体験記】

どうも~、yです。

タイトル、強い言葉を使ってしまってごめんなさいね

この記事では、自分のPiscine体験をもとに「これやっておいた方がいいかも」とか「ここに気を付けてね」みたいなポイントを紹介できればと思います~

※⚠️注意⚠️
私が受験したのは25年8月です
42のカリキュラム変更前になるので、もしかしたらPiscineの内容も変更になる可能性がある点にはご注意ください

Piscineってなに?

42tokyoの入学試験です
1か月間、毎日コーディングして、週に1度オフライン試験を受験します
1か月の総合評価で合否が決まるらしいです(詳しい合否基準は公開されていません)



受験を決めたタイミングでの私の状態

25年4月末にIntroduction meetingを受けた時点での私の状態はこんな感じ👇

・大学の専攻は化学(情報系ではない)
・コンピュータサイエンス(CS)やプログラミング言語はほぼ勉強したことない
・基本情報だけ資格を持っていた
・タッチタイピングはたまに褒められるくらい早め
・業務経験が4年あり、Linuxは多少触ったことあり

CSもプログラミングも初心者で、ほんとにゼロから勉強しなきゃいけない状態でした



Piscineの成績

これから次以降の章で受験前の勉強やPiscine中の取り組みについてお話ししますが、先にPiscineの成績がどんなもんだったのか見せますね

Piscineでは課題の進捗とExamの結果でスコアが決まります

成績は下図の通りですが、Exam00~02は満点で、リーグ内最終ランクは1位でした!

受験前に「絶対に1位でPiscineを終える!!」と目標を立てていたので、無事達成できてよかったです…!
(ちなみにリーグは全部で3つあって、全体だと6位くらいでした)

画像
画像

プログラミングの右も左もわからない状態からどうやってランク1位でPiscineを終えたのか、体験談を記します
少しでも参考になれば幸いです😄



受験前にやったこと

Introduction meetingで、C言語とシェルの課題が出ることを教えてもらっていたので、
とりあえずC言語の学習に専念しました
(シェルの方はほぼ対策なしで臨みました笑)

C言語の勉強

C言語の学習としてまずやったのが、こちらの参考書です

1週間で学べるとか言ってますが、実際そんなことはなく、ちゃんと理解するために3周したので1か月くらいかかりました

ただここで同じ問題を繰り返し3回解いたことが後々の理解を助けることになったので、やっておいてよかったと思っています


1番はじめに着手する入門書は正直どれでもいいです
私がおすすめされたのは「苦しんで覚えるC言語」というやつだったのですが、本屋でチラ見したときになんか難しそうだったのでやめました

代わりにいくつかの入門書を手に取り、一番とっつきやすそうだったのが上記の「1週間で~」だったのでここから始めたという感じです

入門書選びに悩んでいる方は一度本屋に足を運んでみて、ビビッと来たものを選ぶのが一番間違いないですね



「1週間で~」を終えた後にはこちらの参考書で学習し始めました

「1週間で~」はとっつきやすい分、中身が薄いんじゃないかと思って別の参考書をやってみようと思ったのですが、この本はなんか小難しく書かれていてつまらなかったです笑

とりあえず1周はしたのですが、あまりに面白くなさ過ぎて挫折しかけました…



そこで次に手に取ったのが、こちらの参考書です

「ゲームを作るという目的があれば楽しく学べそうだな」て安直な考えで選んだのですが、実際これは面白かったです

ただ、面白いは面白いのですが、ポインタの概念が出てこなかった(はず)ので、今思えばC言語の本質的な学習にはならなかったような気がしますね?
(入学後のso_longという課題では大いに役に立ちましたが、皆さんが入学するころには課題が改定されているのでこの本はあんまりやる意味はないかもです)



んで、最後に手に取ったのがこちらです。

大体Cのことを学び終えたかな~っていうタイミングでなぜかいっちばん初歩の参考書を手に取りました

これは何でかっていうと、
自分の理解を深めるためというよりは、Piscine中に始めてC言語を触る人向けに解説するときに、どのように説明すれば分かりやすく伝えられるのかを学ぶために読みました

「Cの絵本」は言葉よりもイラストで説明するタイプなのですが、これに影響されて私も説明するときは必ずノートにイラストを描いて説明していました

たぶん、分かりやすく説明できてたんじゃないかなぁ…(たぶん)



コンピュータサイエンスの勉強

大体C言語について理解できたなぁと思えてきたので、次はコンピュータサイエンス(CS)についての勉強を始めました

CSってなんやねんって人向けに雑に説明すると、”コンピュータが動く仕組み”とか”どうやって情報を処理しているのか”を学ぶ学問です

ぶっちゃけ、C言語の入門書よりも、これから紹介するCS関連の本を読んだ方がメモリやポインタについての理解が深まりました
マジでおすすめです

カリキュラム改定前の42の理念として、CSの低レイヤーを学ぶことで、時代や技術の変化に適応する基礎体力をつけるというのがあります

物理的なメモリを意識してプログラミングすることができるようになったことで、ポインタや構造体・連結リストの概念をかなりすんなり受け入れることができるようになったので、ここで基礎体力をつけることの重要性を改めて認識しましたね

『教養としてのコンピューターサイエンス』はちょっと重めなので飛ばしても大丈夫です!
その代わりほかの2冊は読んでほしいですね~、周りと差をつけることができるはず



その他の勉強

プログラミング(C言語)・CSのほかには、ざっとこんなことを学んでました

  • Norminette(42内のコーディング規則)

  • Vim(コードエディター)

  • コード設計(リーダブルコード
    どれも欠かせないですが、とくにリーダブルコードは読んでおくべきかなと思います

42では”単一責任の原則””DRYの法則”を叩き込まれるのですが、プログラミング素人ではどうやればいいのかがさっぱりです

リーダブルコードを読んでから、コーディングの際に「1関数1役割」とか「変数名に意味を持たせる」とかの基礎を意識することができるようになりました

コード設計については入学してからも学び続ける必要がありますが、Piscineレベルならリーダブルコードで十分だと思うので、ぜひ読んでみてください


Norminetteやエディターの操作に慣れるのは必須ではないです
人より早く課題を進めたいならやるべきですが、時間がないなら後回しにして、Piscine中に慣れてしまうでもいいんじゃないでしょうか(たぶんなんとかなります)



やってよかったこと

受験前に勉強していた内容はざっと紹介できたと思います

が、1番これやっておいてよかったと思ったのは体力づくりでした…笑

ぶっちゃけ、知識よりも体力が求められます
Piscine、ハードです!笑

1か月間、校舎に毎日登校して、1日10時間くらいコーディングするって、イカれてない??
ほんとに体力的にきつかった

私は事前にがっつり勉強していたおかげで平均8時間弱/日くらいのコミット量でしたが、当然初心者の方もいるわけで、その方々は1日14時間とかやってましたね

ほんとに体力つけておいた方がいいです

仕事や学校との両立も基本的に無理です
時間はしっかり確保したうえで、やりきれるだけの体力をつけてきてください

前の章で長々と勉強内容について語りましたが、結局体力のある人が勝ちます

これは入学してからも同じなので、体力づくり、今日からやりましょう…!



これやればよかったなってこと

成績については、あんまり改善点はないです
目標だった1位もとれたし、examもそれなりにいい点とれたんで。
(examについては下の章で説明しますね)

ただ反省点があるとしたら、もっといろんな人とコミュニケーション取っておけばよかったなって思います

これは悪い例なので反面教師にしてほしいのですが、
私は初めの2, 3日で仲良くなった6, 7人と最後までつるんで、他の人たちとはあんまり積極的に絡みに行きませんでした

もちろんレビューはまじめにやるし、課題についての質問を受けたら丁寧に返していましたが、こちらから積極的に輪を広げることは一切していませんでしたね

自分なりに合格を目指して、合理的に動くことを目指したつもりではあるのですが、
Piscineには本当に様々なバックボーンを持った方がいるので、今となってはもっと仲良くしておけば楽しかったのかなと思います

入学後は反省して、同期を見つけたらめっちゃ絡みに行くようにしてます笑

Piscine中に知り合いを増やしておくことは入学後にも役に立ちます
私は今、入学後2ヶ月が経とうとしているところですが、120人ほどいたはずの同期は30人ほどしかアクティブではありません(みんなどこに行ったのやら)

Piscineで一緒に頑張った人たちと入学後も一緒頑張るということはないと考えていた方がいいです
そうなったときにゼロから知り合いを増やしていくのか、あらかじめ何人か知り合いがいるのかでは全く違うのでなるべく同期とは仲良くしておいてください



Examってなに?

前の章でExamについて触れましたが、
Examとは、毎週金曜日に実施される完全オフラインのコーディングテストです

問題数は全10問で、1問10点で100点満点

一応注意事項を記載しておくと、
Examを受験するためには、他の課題と同様にIntraからRegisterが必要です
(詳しくはPiscine開始後に確認してみてください)

私の代では、1回目のExamのときに、このRegisterを忘れていて試験開始できずに強制退出させられる人が30名ほどいたらしいです(毎度それなりにいるらしいです)

気を付けて確認すれば大丈夫なので、前日までに友人同士で、ちゃんとRegisterできているか確認しましょう。

Examは全部で4回実施されるのですが、1~3回目と一番最後の4回目は別物だと思っておいた方がいいです

1~3回目は試験時間:4時間ですが、4回目は8時間と時間の長さから違いますし、
1~3回目はある程度点数が悪くても問題ないですが、4回目の試験で点数がよくなければ合格は致命的です

同期のFinal Examの点数を見てみると、ボーダーは24点かな?それより低い点数で合格した人はいないように見えています(さらに低い点数を見つけたら内容を更新しておきます)

Piscne中は常にExamを意識して勉強を進めましょう

Examの流れはざっとこんな感じです。

  1. ユーザID:exam、password:examでログイン(いつもの自ID,自passではないことに注意)

  2. ターミナルを立ち上げて、「examshell」コマンドを実行

  3. Registerができていれば自分のIntra名や顔写真・examshellの説明が表示される

  4. エクスプローラを開き、subjectディレクトリとrenduディレクトリが作成されていることを確認する

  5. subjectディレクトリに最初の課題のPDFが入っているので、examshellのターミナルとは別のターミナルを開いて課題を解き進める

  6. 課題が解き終わったら、renduディレクトリに格納してpush

  7. examshell上で「grade me」コマンドを実施

  8. 課題クリアなら「Success」と表示され、subjectディレクトリ内に次の課題のPDFが作成されます

  9. 失敗なら「Failure」とgrade logのパスが表示されるので、logの中身を見て、課題を修正します

たしかexam期間中じゃなくてもID:exam、password:examでログインすればexamshellの立ち上げまで流れを確認できたと思います(問題は見れないよ)
自己責任で試してみるのはありかも

Examの課題内容は口外できませんが、普段の課題をもとにC言語の理解をきちんと深めておけば大体解けます大丈夫です

1~3回目のExamは難易度もほとんど変化しません
同じようなテストを3回繰り返して成長の度合いを見ると思えば、大体イメージがつかめると思います

最終試験だけは少し難しめにつくってあって、問題数も多いです
記憶が定かではないですが、1問6点(最後の方は5点か10点)で全16か17問?くらいです(わたしは84点(15問目)で止まってしまったので全体像は把握できてないです)

Final Examは試験時間も8時間と長丁場なのでストレスフルな試験ですが、集中していたら案外すぐ終わります

終わった後の解放感すんごいんで、それを楽しみに頑張ってください!!



これやっといたほうがいい

Piscineは課題の進捗やexamの成績だけで合否が決まるわけではありません
ピアラーニングの質向上のため、適切なコミュニティ形成に寄与できるかが見られています

その指標とされているのがMegatronという投票制度です

毎週木曜に1人あたり5人まで一緒に学びたい相手を投票することができるというもので、ま、とくに得票数で基準が設けられているわけではないですが、多いに越したことはないんでしょうね

ちなみに私はMegatronあんまりガツガツやっていないかったので、ここも反省点です笑

人によっては「投票してください~!」って宣伝して回ってる人もいたので、そのくらい積極的な方がいいのかも

意外とこれきっかけで話すようになったりするので、お祭り感覚で知り合いに触れ回ってみるのがいいんじゃないでしょうか笑

あとPiscine中にスタッフさんがイベントを開いてくれることがあります
私の時だと、悩み相談会・映画鑑賞・AMA(スタッフへの質問会)・GeoGuessr大会・ブラインドタイピング大会・お疲れ様パーティなどがありました

どのイベントも面白いのでガンガン参加してPiscineを楽しんでください



おすすめのごはん屋さん

Piscineは周りの受験生とご飯を食べに行くことが唯一の楽しみです
(それ以外はコーディングしてるんで…笑)

幸いにも校舎の周りにはおいしいごはん屋さんがたくさんあるので、その中でもとくにおすすめのお店を紹介します

自分で開拓する楽しさもあると思うので、いろいろ探してみてください~
(近くのドミノピザでテイクアウトして校舎でピザパ開いたりもしました🤣)

画像



最後に

Piscineは楽しい!
合否に関わらず、絶対に1度は体験しておくべきイベントです!

会ったことない職種の人がいたり、自由人なフリーターがいたり、すでにつよつよなエンジニアがいたり、ほんとうにいろんな人がいるので、いろんな意味で刺激をもらえます

コーディング中は楽しいことばかりじゃないですが、なんだかんだ何とかなるから大丈夫!
(42では「辛(ツラ)楽しい」って言います😆)

受けるか悩んでいる人は全員受けてほしい

1か月間まとまった時間が取れて、積極的にコミュニケーションをとることができるなら誰でも楽しめるはず

楽しんだうえで、記事の内容をもとに合格してくれたらうれしいです!

26年2月3月に受験する方がいたらコメントなり、DMなりで連絡くれたらPiscineの教室をのぞきに行きます笑!

では、がんばってください!!





おまけ:

Piscine中の課題について私から口外することは出来ないのですが、やっていることは入学後いちばん初めに取り組むLibftという課題とほぼ同じです。

Libftに取り組むうえで学ぶべき要素をこちら👇のnoteに記載しているので参考にしてみてください。
(Libftの課題内容は書いていないので、ご留意ください。)


いいなと思ったら応援しよう!

ピックアップされています

Piscine体験記

  • 108本

コメント

1
コメントするには、 ログイン または 会員登録 をお願いします。
haoのプロフィールへのリンク
hao

試験のログインの話、投票の話は試験内容の秘匿から書いちゃだめだとおもいます笑

買うたび 抽選 ※条件・上限あり \note クリエイター感謝祭ポイントバックキャンペーン/最大全額もどってくる! 12.1 月〜1.14 水 まで
Piscine受かりたきゃこれだけ見てろ【体験記】|y
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1