公開日
2024/12/31
カテゴリー
タグ
42Tokyoに所属しているminabeです。
2024年11月19日に、42Tokyoの基礎カリキュラムであるCommonCoreを突破いたしました。 一体、42Tokyoで何を学べるのか。一個人の体験談ですが、ぜひ最後まで読んでいただけると嬉しいです!
42Tokyo(以下、42)について簡単に説明します!
すでに知ってるよ、って方は読み飛ばしてください。
以下は、公式HPから引用しています。
42(フォーティーツー)は、フランス発のエンジニア養成機関です。
従来のプログラミングスクールのように先生が一方的に教えるのではなく、学生同士が教え合い、学び合うピアラーニングを主体としています。
ただし、入学するには4週間の入学試験(Piscine)に合格する必要があります。
Piscineについては、いろんな方がnoteに体験記をあげています。
(余談ですが…)
42という命名は、ダグラス・アダムス著のSF小説『銀河ヒッチハイク・ガイド』の内容に由来するようです。以下はwikipediaの引用です。
「生命、宇宙、そして万物についての究極の疑問の答え」を問われたスーパーコンピュータ、ディープ・ソートが750万年の計算の末に出した答えが、「42」
海外のエンジニアたちの間では、42は特別な数字のようです。いろんなサービスで小ネタがありますので、興味がある方はぜひ調べてみてください。
A. 42 Tokyoにおける最初のステップであり、エンジニアとしての基礎体力を徹底的に鍛え上げるカリキュラムです。
CommonCoreは、エンジニアに必要な基礎知識を学ぶための課題ばかりです。仮想環境の構築から、シェル(bash)の再実装、Dockerを用いたWebアプリケーション構築まで、エンジニアとして必要な基礎知識を、実践を通して徹底的に叩き込まれます。
Common Coreを突破することで、42 Tokyoの学生は、より専門的な課題に取り組むことができます。自分の興味や適性に合わせて、Web開発、ゲーム開発、AI開発など、様々な分野へ進めます。
また、就職するも、そのまま課題を進めるも、留学するも自由です。
愛知県の大学院で機械工学を専攻し、2023年3月に修了しました。修士1年の時に42を知り、春休みに入学試験を受けて合格。その後、4月に入学しました。 大学院修了後は一般的な就職の道を選ばず、42でのプログラミングの学習に専念するため、東京へ引っ越しました。
実は学部1年の頃、C言語の必修科目を落とした経験があり、プログラミングに苦手意識を持っていました。しかし、研究のデータ処理でPythonを使う機会があり、次第にプログラミングの面白さに目覚めていきました。その経験から、42でプログラミングをより本格的に学びたいという思いが強くなり、現在に至っています。
42を通して、最も身についたと実感しているのは
エンジニアとしての素養
です。
3つの章に分けて簡単に説明します!
突然ですが、一次資料は好きですか??
自分ははっきり言って大の苦手でした。
院生時代、教授には口酸っぱく「論文読め」と言われましたが、必要最低限しか読んでいませんでした。恥ずかしながらあまり必要性も理解出来てなかったので…。お陰様でペーパーはペラペラだったわけですが。
苦手な理由はたくさんありますが、論文や公式ドキュメントって大体英語。しかも、大量の文章でどわっと書かれてて、向こうが人に読ませようとしてないだろって憤りすら感じてました笑
そんな自分が、42で考えを改めさせられることになります。
なぜなら、再実装系の課題が多数あるからです。 そこで必要になってくるのが、実装するものがどんな挙動をするのかを明確に書いたもの。つまりマニュアルや公式ドキュメントというわけです。
とはいえ、世の中には技術ブログが溢れており、ここ2年で生成AIを活用することも非常に増えています。これらがあれば、大量の英単語で埋め尽くされたマニュアルなんて読まなくてもいいだろう、と初期のころは本気で考えていました。
現に、これらは小さい実装や簡単な理解において非常に有用だと思いますし、自分も活用しています。
ただ、これらの二次資料は伝言ゲームのように情報が抜け落ちていきます。いい記事を見つけたと思ったらバージョン違いであったり、ひどいときには投稿に書き間違いがあるにもかかわらず放置されていたり、となかなか自分の状況がパッと解決できないことが多いです。コピペは内部の実装まで正確に把握することはできません。実は便利機能があったのに、自分で再発明しているということもあるかもしれません。
そんな自分がどんなマインドでマニュアルを読むのかというと、「最終的に読めばいいや」です。いきなりマニュアルを読むというのは、赤ちゃんにりんごを丸々齧り付かせるようなもの。無謀です。
最初は噛み砕かれた二次資料を活用して概要をつかみましょう。
そうして輪郭を理解した後にマニュアルに戻ると、いきなり読むよりもスムーズに理解できると思います。もちろん翻訳してもいいですが、最終的には原文で読むことを強くオススメします!
42の仕組みはとても理に適っているな、と思う時がよくあります。
例えば、冒頭にも例に出したbashの再実装課題です。この課題は2人でチームを組み、C言語で取り組みます。もちろんbashの全ての機能を実装するというわけではないですが、リダイレクトやパイプ、環境変数の扱いは必須で、他にもいくつか実装します。
この課題で特筆すべき点は、学べることが単なるshellの仕様だけではないという点です。 もちろん、shellの仕様理解は非常に価値があります。例えば、環境構築や便利コマンドの実装などを行うことが容易になり、ターミナル上での操作が苦ではなくなりました。
しかしそれだけでなく、チーム開発のためのgit操作や、モブプロなどのペアプログラミング方法まで学ぶことができます。
これらの知識はエンジニアとして必要なものであり、課題を通して自然と身につけることができます。
また42の特徴の一つに、先生がいないという点があります。 どのように学習が進むのかというと、課題要件が書かれたPDFを元にコードを書き、完成したコードをレビュー項目を元に3人の生徒に見てもらいます。ここの採点で合格点に達するとその課題はクリアとなります。
このレビューは、その課題に到達していない人がレビューすることもあるため、課題の前提やコードについて端的に説明できるまで深く理解する必要があります。
数週間かけて学んだことを数十分で理解させるってめちゃくちゃ難しいです。時間の制約上、超表面的な説明になってしまうこともあるし、42の特性上、相手には様々な背景があるので理解してる範囲を探る必要もあります。
このような機会をたくさん繰り返すので、例えばレビュー前に軽く相手の状況を質問するとか、視覚的な説明として簡単な図を用意するとか、ログを出力するとかの工夫が当たり前のように行われます。
このように、42での学習は単なる技術習得だけでなく、実践的なチーム開発の経験や、効果的なコミュニケーション能力の向上にも繋がっています。課題を通じて自然と身につくこれらのスキルは、実務のエンジニアとして働く上で不可欠な要素となっています。
この記事でも時折顔を見せているとは思いますが、42は一般的な教育機関とはかなり異なります。
大きく異なるのは、自主性に重きを置いている点です。42の在籍には期限があります。これは「ブラックホール」と呼ばれており、『あなたは○月○日にブラックホールに吸い込まれます』と、入学すると同時に通知されます。すなわち退学日が明記されているのです。期限を延長する方法は課題をクリアすることです。
「いや、これは自主性ちゃうやろ」って疑問に思う人もいるでしょうが、違います。現に42に入学した人の半数程度は、最初の課題をクリアせずにブラックホールに呑まれています。
この原因は、想像していた42と現実のギャップであったり、これまでの教育機関との違いに戸惑ったり、など複数あると思います。
自分も戸惑った一人でした。まず、渡される課題PDFは専門用語で溢れています。初めて読んだときは、本当に何が書いているのか分からず、内容の半分も理解できません。心理的な負担が大きいのだと思います。この辛さは、42を進めないという選択をとれば回避することができます。学費が無料なので、退学しても損にならないと感じる構造なのだと思います。
語弊を恐れずにいえば、入学と同時に崖に落とされ、這い上がった人が育つシステムです。
このような経験の中で、『今日は〇時から校舎へ行こう』『今日はここまで進めよう』と自然にマイルストーンを設定する習慣が身につきます。
このようにして、自走力が鍛えられるのです。
42の基礎カリキュラムを通して手にしたのは、Web系や自動車系、ゲーム系など、どんなエンジニアを目指そうともついて行ける基礎力だと思っています。
それは本来、課題を淡々と解いて得られるものではないはずですが、それを取得できるようにうまくカリキュラムされてるなと、振り返るとじわじわと実感できました。
42はかなり異色です。他の教育機関とはかけ離れたシステムなので、当然肌に合わない人もいると思います。しかし、学費も完全無料です。まずやってみませんか?
今後、大学進学の代わりに42を選ぶ人がこれまで以上に多くなると思います。リスキリングとして選ぶ人ももっと増えるべきだと思います。
この記事に興味を持ってくれた人たちには、ぜひ一度挑戦してみてほしいです。
最後に、このような素晴らしい学習環境を提供してくださっている協賛企業の皆様、そして日々の運営を支えてくださっているスタッフの皆様に心より感謝申し上げます。
最後までお読みいただきありがとうございました!