見出し画像

42Tokyo卒業!プログラミング知識0からC言語を学んだ2年と3ヶ月は実際に役に立ったのか?

こんにちは、42Tokyo生の、U(ユウ)です。

先日、ついにFirst Circle(別名Common Core)と呼ばれる基礎課程を終了し、晴れて42Tokyoを卒業しました!

卒業、と言っても、まだこれからも42のSecond Circle(応用課程)で学習を続けていくつもりなのですが、この区切りで42Tokyoでの2年+を振り返っておこうと筆(キーボード)を執りました。

まず、本題の42での学習は実際に役に立ったのか、そして次に、一体なぜ卒業まで2年以上かかるのか、最後に、現状の42はおすすめできるのかということについて書いていこうと思います。

↓この記事を書いてから2年半以上経ちました…我ながらよく続いたな、と。

42Tokyoって何?という方や、カリキュラム・課題の内容を詳しく知りたい方はぜひKotaさんの記事もあわせてどうぞ↓

42で学んだことは実際に役に立ったのか?

筆者がこれまでに終わらせた課題

端的に、答えはYES、です。

興味、得意分野によって体験は違うかと思いますが、自分は、42で学習して基礎課程を終えるぐらいになれば、エンジニアとして評価してもらえるんだという感想を抱きました。(プログラミングだけでなく、ドキュメント書いたり、開発環境整えたり、チーム開発することも好きだったりと割とエンジニア適性があったこと、大学中退勢なので新卒枠で評価されていることも影響しているので一概には言えないのですが…)

その理由として、C言語で学ぶということ、そしてその課題の内容自体の2つの要素があるのではと考えています。

  • C言語で学ぶ→ 移り行く言語の流行にとらわれず、必要に応じて言語を学んでいく力が身につく

  • 課題内容が深い→ 42の課題をそのまま成果物として評価してもらえる

ここでは、課題内容に着目して実際に役に立った課題について抜粋してお伝えしようと思います。

役に立った課題5選

Soon, you will realize that you already know things that you thought you didn’t (すぐに、あなたは自分が知らないと思っていたことをすでに知っていることに気付くでしょう)

First Circleの最終課題 ”ft_transcendence” Subjectより

実際に今年の夏にインターンをしてみて、エンジニアとして働いてみた経験から、自分が42で取り組んだ中で役に立ったと実感した課題を順に5つご紹介します。

  1. webserv (lv.5): nginxライクなwebserverを実装する(C++98)

  2. minishell (lv.3):bashの挙動を再現する(C)

  3. Inception (lv.5):Docker composeを使って小規模のインフラを構築する

  4. philosophers (lv.3):食事する哲学者の問題(並列処理)を実装する(C)

  5. ft_containers (lv.5):C++の標準ライブラリの1つSTL(vector, mapなど)の再実装(C++98)

1、2位のwebserv、minishellに関しては、特に面接でこれやったぞ!と話す題材として非常に便利でした。”これまで手がけてきたプロジェクトが面白い”との評価をいただいたのもここら辺の課題のおかげだと思っています。チーム課題のため、チームでの開発経験にもカウントできて非常にありがたかったです。

3位のInceptionは、Dockerを使う経験として非常に重要だったなと思っています。Dockerの経験がある、ということもエンジニア面接で評価いただいたので、客観的な評価にも繋がったと考えています。

4位のphilosophersに関しては、排他制御について学べたので、初めてデータベースの排他制御(ロック)の概念に触れたときに何それ?ってならずにすみました。また、平行並列の理解も知っててよかった…ってなることが多々ありました。

最後にft_containersですが、これは、実際に実装したことで、vectorやmapの構造が理解できて、C++への理解度の向上に貢献してくれた課題でした。

コミュニティーを通じた学び

42でのさまざまな出会いも、自分の42を通しての学びに貢献していたと思います。

42コミュニティー内での仲間に感化されたり刺激を受けたりして、自分1人では絶対取り組まなかったであろうことへの挑戦や、知り得なかったことの学びの機会がありました。

低レイヤに興味を持って1冊本を読んだり、AtCoderにちょっぴり取り組んだり、Discord Botを作ったり、と42の課題以外でも学びがありましたが、これら全て、42に属さずに1人で学んでいたらやらずに終わっていたことだろうなと思っています。

この”やらなくてもよかったけど興味を持って取り組んだこと”が、意外とエンジニアとして評価されるときのスパイスになったような気もしています。そして、周りの評価より何より、自分のプログラミング人生を、より遊び心のあるものへと変化させてくれたと感じています。

卒業まで本当に2年もかかるの?

1期生としての体験

自分は42Tokyoに1期生として入学したわけですが、最近の入学生を見て、改めて、自分たち初期入学の生徒にはベータテスター的な要素があったとひしひしと感じています。

オフライン学習の予定がほぼオンラインに移行になったり、BlackHole(ブラックホール・在学期限)の制度が変更になったり、課題の大幅な変更によってスケジュールが狂ったり、、、
と、本当にいろんな事象の影響を受けて同期が少なくなっていきました。

当時6ヶ月〜1年と言われていたFirst Cirle(基礎課程)の突破が、2年強にまで延びたので、いろんな人が辞めていったのも納得できます。

これからの新入生の体験

これは所感に過ぎませんが、入学時期によって、課題のクリアまでの時間がどんどん短くなっていると感じています。

そして、これから始まる(はずの)42Tokyo完全オフライン化によって、学習がスピードアップすることは、ほぼ間違いないと思います。

正直、自分や同期は本来の42の醍醐味であるピアツーピアの恩恵をほとんど受けられなかったと言っても過言ではない、と個人的に考えています。(ピアツーピアの記事とかも書いたけど笑)
その理由として、

  • 自分たちより先に課題に取り組んだ人がいない=誰にも教えてもらえない

  • ほぼオンラインの環境で、オフラインに比べて”教えあう”・”気軽に質問できる”環境が圧倒的に少なかった

がありました。
これらの問題は、今のように生徒が増えて知見がたまり、42本来の姿であるオフライン学習を取り戻すことで、解消されるのではないかと思っています。(特にこれに関しては42Tokyo生の中でも賛否両論ありますが。)

これからの42Tokyoに期待です。

結局、42はおすすめできるのか?

卒業した身となって、周りの人に42での学習をおすすめしたいか?と自分に問いかけたのですが、

42Tokyoでの学習には向き不向きがある。
向いてる人にはおすすめしたい。

という至極当たり前の結論になりました。

これから42を検討している人へ

42は、万人向けではありません! (42 is NOT for everyone!)

だたしその前提の上で、

Piscineは誰にでもおすすめします! (BUT, Piscine IS for everyone!)

42はピアツーピアの教え合いを原理に成り立っています。そしてその特異性から、決して誰もに向いている学校とは言えません。別の学び方がより適している人も多くいます。
ですので、その適正調査のために入学試験、Pisicine(ピシン)が設けられているのです。

つまり、自分は42での学習に向いているのかな?と悩む必要はありません。

Piscineを受けるだけ。

そしてPiscine受験は実質ノーリスク(自分調べ)です。
1ヶ月のコミット時間を用意すれば、42に入学するにしろしないにせよ、最高の体験、そして(もしくはそれを得られなかった場合にも)新しい知識が(コミット量により差異はありますが少なくとも少しは)得られます。

※Piscineがオンラインからオフラインに戻ることで交通費家賃等がかかるようにはなりますが…その分学びの密度は上がるはず…!

Piscineは自分の人生の中で5本の指に入るほどの最高の経験でした。
ですから、42に興味がある方で、1ヶ月間のPiscineを受けるためにコミットできるという方には、ぜひ、ぜひ!Piscineの受験をおすすめしたいです。

応募はこちらから→ https://apply.42tokyo.jp/users/sign_up 

ちなみに。42に合格しなかった友達たちの中でも、Piscine超楽しかった、充実してた、という感想を聞くことが多くあります(早期に辞めてしまったり、楽しめなかったという人にはあまり直接感想を聞く機会がないので、サンプルには間違いなく偏りがありますが…)

これから。

自分は、これから約2年間、続けて42のSecond Circleで学んでいこうと考えています。

そこで、海外キャンパス(フランスのリヨン校)へのトランスファー(転校)を考えています。

42は日本では学校法人ではありませんが、42は本場のフランスでは学校で、42での学習を終えることで大学卒業に相当するRNCPという学位に申請できます。
学位にこだわりがあるか、と聞かれればそこまででは無いと思いますが、42Tokyo生でも、42での学習を通じてやろうと思えば学位が取れるのか、という点に興味があります。
あと、単純にフランスに行ってみたい笑!


そんなこんなで、まだしばらく42にいます。
皆さんに42でお会いできる日を楽しみに!


この記事が気に入ったらサポートをしてみませんか?