見出し画像

42Tokyoをプログラミング未経験者が1年で卒業した


2024年10月末に42Tokyoに入学し、2025年11月に「コモンコア」と呼ばれる基礎課程を約1年間で修了しました。

42には正式な「卒業」という仕組みはありませんが、この「コモンコア」の修了が一つの区切りとして、生徒の間では「卒業」とされています。

42Tokyoでのコモンコア突破率は10%以下
卒業までにかかる平均期間は2年程とされています。

42の入学試験から卒業まで、約1年間の記録を振り返っていきます。

42Tokyoに入りたいと考えている人や、42Tokyoでどんな事を学んでいるのか知りたい人などの役に立てば嬉しいです。

・42について

42はフランス発のプログラミングスクールで、世界中にキャンパスがあり、42Tokyoはその日本校として、2020年に開校した。

42Tokyo新宿校舎

教師が存在せず、与えられた課題を生徒同士で教え合いながら解いていく「ピアラーニング形式」が最大の特徴となっている。

年齢や経歴不問で、学費は完全無料。
入学試験の「Piscine」に合格すれば、誰でも入学が可能である。

運営はスポンサー企業様や個人の寄付によって支えられているようです。
本当にありがとうございます。僕も少額ながら毎月寄付をしています。

・なぜ42Tokyoに入学したのか?

簡単な自己紹介から始めると、僕はWeb広告業界で働いている27歳で、プログラミング経験は無い状態からスタートした。サブカル文系人間タイプであり、理系つよつよバックグラウンドではない。

そんなプログラミング未経験者の自分が、プログラミングを学びたいと強く感じたのは、生成AIの急速な発展によるものだった。

2022年、ChatGPTとStable Diffusionが登場した時に、まるで魔法だというとてつもない衝撃と感動を受けた。生成AIの登場によって、世界は急激に変化していくだろうと強く確信した。

元々、何かモノづくりをする側の人間でありたいと考え、広告業界で働き始めたので、AIを使えば何か面白いモノを作れるようになるだろうと思った。

そして強烈な感動と同時に、自分自身の存在意義に対する危機感をChatGPTが生成する文章やStable Diffusionに生成された画像から感じていた。

現在の広告という仕事だけでなく、
「どんな仕事をしても、AIとロボットに代替されてしまうのでは?」
「自分は何をして生きていけばいいのか?」
と、実存の危機に陥り、家からまともに出る事もできないような生活を数ヶ月送っていた。

そこから約1年間、様々な本を読み漁り、仏教により深く傾倒してインドまで修行に行ったりして出した結論として、

2023年12月 インドにて

「とりあえず現世が面白すぎるので、エンジニアになって世界が変わっていく様子を最前列で眺めていたい」

「セーフティーネットは出家」

というものだった。この辺は落合先生のマタギドライヴ的思想が強く影響していると思う。

Turn on, tune in, drop out, 世を捨てよ、クマを狩ろう!

そうして当時は何も分からない中、AIや機械学習の勉強を始めたのだが、とにかく難しすぎた。そもそも機械学習よりも先に、基本的なプログラムの読み方すらもわからない状態だった。まずは基礎から学ばなければならないと感じ、体系的にコンピュータサイエンスが学べる場所を探していた。

働きながら学習が出来る事が最優先だったため、日本の4年制大学に入学するという選択肢はなく、「University of LondonのCS通信制」「アメリカのオンライン大学 University of the people」が主要な選択肢としてあった。

ただ、AIを使ったり、動画教材でも「知識」は学べてしまうような時代だからこそ、「オフライン」で学生同士で交流しながら学んでいく事にとても大きな価値があると考えていた。

そんな中、42Tokyoを入学試験Piscineの約1ヶ月前に知り、ダメ元で応募したのが始まりだった。

自分の希望である、
「仕事をしながら学べる」
「コンピュータサイエンスを体系的に学べる」
「オフラインで交流しながら学習が出来る」
という条件を完全に満たしている、唯一とも言える学校が42Tokyoだった。

ダメ元で応募したにも関わらず、自分は絶対にここに通うんだろうな、という謎の確信を持ちながら、入学試験の初日に臨んだのを覚えている。

・入学試験Piscine

1ヶ月間かけて行う入学試験のPiscine、フランス語で「プール」という意味。なぜ入学試験が「プール」という名前なのかは、受験してみれば嫌でも分かると思う。

42Tokyoの校舎に受験者が集められ、プログラミングに没頭する1ヶ月間。
受験者同士で協力してひたすらに課題を解き、週に一度の試験を受ける。

この時点ではプログラミング未経験なので、
Git???VSCode???Shell???C言語???
というような状態からのスタートだった。

そんな状態の自分でも合格が頂けているので、1ヶ月間で「どれだけやり切れたか」という部分が重要なファクターだと思う。

Piscineでは1日あたり平均12時間はコミットした。

仕事と並行しながらだったので、本当に脳が溶けそうな日々を送っていた。朝起きて仕事を捌いてから校舎へ行き、ひたすらコードを書いて、夕方になったら近くのスタバへ行って仕事の作業。戻ってきて終電近くまでコードを書いて、家に帰って寝るという繰り返しだった。

めちゃくちゃ大変だったが、充実感や達成感に満ち溢れた日々だった。

Piscineの詳細は秘密にしないといけないはずなので、気になった人は受験してみるのが一番です。普通の人生では味わえないような経験が出来るのは間違いありません。気になった人は、こちらからぜひ応募してみてください。

・コモンコア(基礎過程)

無事に入学試験に合格を頂き、2024年10月末から本科へ入学した。ここからスタートするのが、42のコモンコアと呼ばれる基礎課程である。

通常の学校のような授業は存在せず、ひたすらに与えられた課題を解いていく形式となっている。課題を解くのに必要になる知識は自分で調べたり、仲間と話し合う事によって身につけていく。

課題を解き終わったら、その課題をクリアしている生徒1人と、他の生徒2人からのレビューを受ける。レビューでは、自分の書いたコードについて説明し、評価項目を満たしたものになっているか確認してもらう必要がある。対面でのレビューシステムがあるので、AIに全て書かせて、内容を理解していないような状態では弾かれるようになっている。

この教師が存在しない学校のシステムが、僕にとって強く刺さったポイントでもある。

僕は、大学には通っておらず、高校もまともに通えなかったような人間なので、従来型の教育に対しての適応が全く出来なかった。だが、42の自由に課題を進めていくという教育形式にはどハマりした。何かを学ぶ時には全て独学でやってきたので、42の形式が強くマッチしていたと思う。

42のゲーセン型教育(勝手に呼んでいる)には本当に価値があると思っている。誰かに強制される事なく、まるでゲームセンターに通うように、自分の意思で「課題をクリアしたい!もっと色々な事を知りたい!」という欲求に従って動いていた。従来の授業→宿題→テストの繰り返しという形式だったら絶対に通えていなかっただろうと思う。

課題の内容としては、
C言語で大量の関数ライブラリを作成する「libft」から始まり、有名なshellの一つであるbashの再実装をする「minishell」、C++で簡易的なWeb serverの実装を行う「webserv」、Typescriptを使用したフルスタックのゲームアプリケーション開発を行う「ft_transcendence」など、ローレイヤーから現代的な技術までの基礎を幅広く学ぶ事が出来る。

めちゃくちゃお世話になったブログ。具体的な課題例を見たい人はこちら。

コモンコアは、このサークルの内側からスタートし、サークル内の全ての課題とEXAM(試験)をクリアすると次のサークルに進める。一番外側の円までクリアすると、コモンコアは修了となる。

円の外側にある課題は、セカンドサークル課題となっている。コモンコアを突破すると、データサイエンス、セキュリティ、モバイルアプリ、カーネルの再実装など幅広く、自分の興味に応じて自由に学んでいけるようになる。

そもそも、AI時代におけるプログラミングの学習方法のアプローチとして正しいのは、この「課題解決型」の学習方法であると考えている。

プログラミング初学者にとって、一番の障壁になっていた「文法を正しく理解していないと、動くものを作ることすらできない」という状況がAIの進化によって突破出来るようになった。これにより、実際に自分が作りたいものを作りながら、必要な知識をスムーズに学んでいけるようになった。

ただ受動的に知識を学んでいるだけではプログラミングは絶対に上達しない。実際に手を動かしながら学んでいく必要がある。絵画・楽器やスポーツ、ゲームと近いと言える。

だが、初学者の状態では何を作ったらいいのかなんて自分にも分からなかったし、分からない人が大多数だと思う。42のコモンコアでは、学習における正しいレールを敷いてくれている。

最初は基礎的な部分からスタートし、次の課題をクリアするためにはそれまでに突破してきた課題の知識が必要になる。

そして、全ての課題をクリアする頃には、コンピュータサイエンスの基礎的な知識やプログラミングのスキルが身についている。42の課題は、一つ一つが非常に上手く設計されているので、課題をクリアしていけば必要な知識がしっかりと身につくようになっている。

・どんなスキルが身についたのか?

  • プログラミング基礎: C言語を通じた低レイヤーの理解、メモリ管理、ポインタ、構造体など

  • システム環境: Linuxコマンド・Shell Scriptによる環境構築・自動化

  • オブジェクト指向: C++やTypeScriptを通じた設計・抽象化・再利用性の理解

  • 仮想化技術: 仮想マシン(VM)・Dockerによる環境構築・デプロイ

  • ネットワーク: TCP/IP・ソケット通信・マルチプロセス/スレッドによる並行処理

  • OSの仕組み: プロセス管理、シグナル、ファイルシステムの内部動作理解

  • アルゴリズムとデータ構造: 探索・ソート・スタック・キューなどの基礎的実装

  • データベース: RDBの基本操作、SQLによるデータ処理

国内・海外のいくつかの大学のCS専攻の学部カリキュラムを確認したが、42のコモンコアでかなりの部分が包括されている感覚があった。コモンコアを突破するレベルまで進めば、CS学部卒相当の実力がつけられると思う。

ただ、コンピュータサイエンスの歴史だとか、情報理論やハードウェアに関する知識などは扱わないので個人で勉強すると良い。

・コミットした時間

入学してからの1年間はほぼ毎日校舎に通い、平均10時間は滞在していた。土日という概念は存在しなかった。仕事をしていた時間も多いが、1日に最低でも6時間はコードを書くのに費やしていたはず。

入学試験Piscineの1ヶ月で約300時間のコミット、そこからは1ヶ月あたり200時間は投下しているので、卒業までにかかった時間は、約2500時間程だと思う。月間のコミット時間が200時間を下回った事はない。

入学試験の1ヶ月間は頑張るが、本科に入ったら失速してフェードアウトしていく人が大量発生するので、自分なりのペースを確立して走り続けるというのが大切だと思う。

仕事に関しては、フルリモートだったので校舎で対応したり、朝の校舎に向かう前の時間や、家に帰ってきた後に対応していた。

自分としては特別頑張っていたという感覚は無く、楽しいからやっていたという方が強い。ゲームセンターに通うような感覚で42に通い、コーディングや調べ物をしていた。

・交友関係について

42にはアソシエーションと呼ばれる、部活・同好会のようなシステムが存在している。僕は競技ポーカー部に所属していた。

この競技ポーカー部でポーカーを始め、どハマりして海外のカジノに1人でキャッシュゲームを打ちに行ったり、国内最大のポーカー大会であるJOPTに出場して入賞するなどした。

42内でもよく交流するのは同期の入学者と、ポーカー部のメンバーが多いため、一緒に課題に取り組む仲間を作るというのは大切だと思う。こんな自分と仲良くしてくれる同期やポーカー部のメンバーにはとても感謝しています。

42の課題は後半になるにつれて、どんどん難易度が上がっていくため、自分1人だけで攻略するのは無理だったと思う。本科に入学してから数ヶ月は、ほぼ誰とも話さずに1人で課題を進めていたが、中盤以降からはペア課題や3人以上のチーム課題が出てくる。

このチーム課題の難易度が高く、ボリュームも大きいため、チームメイトとしっかりとコミュニケーションを取りながら進めなければ、クリアするのは難しい。

仲間と課題をどう攻略するかを話し合いながら、一緒に実装を進めた時間は夢のような時間だった。小学生の頃、友達の家でモンハンをプレイをしていた、あの時間を思い出すようだった。同じ課題に高い熱量で取り組む仲間がいたからこそ、モチベーションを維持しながら走り続ける事が出来たのかと思っている。仲間と共に何かを作るという経験は、何にも変え難い最高な思い出の一つである。

オフラインの喜び、というのは間違いなくあると考えていて、プログラミングを学びたい!という同じ目的を持っている優秀な人たちと、一緒の空間で切磋琢磨しながら過ごす。これは1人でオンラインで学んでいたら味わえない、素晴らしい経験だったと思う。

今後は仕事を通して、この喜びを味わえるような事をやっていきたい。

・今後について

最終課題が終了したのが9月末で、そこから1ヶ月はKaggleをやっていました。1ヶ月でコンペに4つ出て、銀メダルを1枚と銅メダルを2枚獲得しました。残りの1つはリアルタイムデータで計測中です。

今後は、機械学習・AIに関する仕事をやっていきたいと考えており、直近の数年間はAI Agentを実社会で実装していく事に興味があります。とにかくAIに対して、より深く考える時間を作っていきたいと考えています。

金融や広告・マーケティングあたりはドメイン知識があります。もし関連するお仕事があるようでしたら、こちらのTwitterアカウントへDMを頂ければ幸いです。→ @Edqvr

https://twitter.com/Edqvr

渋谷周辺に住んでいますので、近辺でしたら出社・リモートなどハイブリッドに可能です。基本的には業務委託形式で考えているのですが、その辺りはご相談頂けたらと思います。

また仕事だけでなく、色々な人と会ってみたい、話してみたいと思っているのでお気軽にDMやご飯等のお誘いお待ちしております。42に関する質問も答えられるものでしたら回答しますので、DMやコメントでどうぞ。

・結び

1年間、大変お世話になりました。42で得たものは知識だけではなく、素敵な仲間に恵まれ、とても貴重な体験をする事が出来ました。

42の卒業生として、現実世界で面白いモノを作っていこうと思いますので、よろしくお願いします。

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