42tokyoに入学してから3ヶ月の体験記

 こんにちは。僕は東京大学に通う大学生です。21歳です。
今回は42tokyoに入学してから3ヶ月が経過したのでそちらの体験記を書いていきたいと思います。今回もクソ真面目に小学生の夏休みの日記スタイルで書いていきますが、お許しください。piscineについての記事は前回上げたのでそちらを読んでください。

1.そもそも42tokyoとは

42tokyoは経歴不問、学費完全無料、24時間オープンのプログラミングスクールです。この完全無料というのが学生の立場としては本当にありがたい限りです。なぜ、無料なのでしょうか。それは、もともと42Parisというフランス版の42があってそれを合同会社dmmの亀山会長が出資して誘致してくださったからです。本当にdmmと亀山会長には頭が上がりません。
 そして、校舎は六本木一丁目の住友グランドタワーの23階にあります。無料でしかも、東京タワーの夜景が見れて、iMacが300代以上所狭しと並べられています。何度も言いますが本当にdmmさんには頭が上がりません。正直に言って元々dmmには何の思い入れもなかったのですがここまで尽くしてもらうと、将来的になんらかの形で返したいと思っています。
 

2.実際に入ってみての実態

 まず、校舎の設備を書きたいと思います。詳しくは42tokyoのTwitterを見てもらえればわかりますが、本当に設備は充実しすぎています。iMacが数百台並んでいてプログラミングをするのに設備が充実しているのはもちろんなのですが、それ以外の部分がすばらしいです。ソファがあって、くつろげたり、コーヒーが飲めたりします。あと現在は使えなくなっているのですが、ダーツもあります。僕は入学して初期の頃はかなりダーツを極めてた時期がありました。あと僕はやったことないのですが、テレビとゲーム機があるのでスマブラをやっている人が多いです。
 もちろんプログラミングをやるのも大事なのですが、42tokyoの醍醐味はいろんな分野のいろんな年齢の人が集まっているので、それを活かして積極的に他の生徒と交流することだと思います。そういう意味でこういう団欒スペースがあることは生徒の交流を深めるのに役立っています。
 あと、筋トレができるパワーラックもあります。こちらは、僕も校舎に来た時は毎日使わせてもらっています。最初は、全然上がらなかったのですが、毎日やっていると結構な重量が上がるようになりました。自分がパワーアップしていく感じがプログラミングと似ています。エンジニアは体力が必要なので、筋トレは大事だと思います。


3.本科の課題

 42tokyoにはブラックホールというシステムがあり、決められた期間内に課題を終わらせないと強制退学となってしまいます。とはいえ、ある程度の猶予はありますし、aguという休学期間もありますし、何なら最近再入学できるようになったので気にせず課題を進めればいいと思います。あとはファーストサークルというカリキュラムのひとつの節目みたいなものがあり、これの終了を目指している人が多いです。1年半から2年くらい課題を進めれば終わらせられるそうです。ファーストサークルを終えるとセカンドサークルでは、聞いた話によるとブラックホールがなく好きな分野の課題を好きに進められるそうです。ファーストサークルの間はc言語とc++でかく課題がほとんどなので最初からPythonや JavaScriptをやりたいのになという人は我慢する必要があります。
 実は本当に恥ずかしい話なのですが僕が42tokyoに入学してから3ヶ月以上経ったものの、学校が忙しかったり機械学習を勉強しているのもあって休学期間とったのでまだ最初の課題であるlibftすら終えられていません。これから頑張るのでお許しください。それを踏まえた上で独断と偏見で各課題を説明していきたいと思います。あと、42tokyoにはブラックホールというシステムがあり、決められた期間内に課題を終わらせないと強制退学となってしまいます。とはいえ、ある程度の猶予はありますし、aguという休学期間もありますし、何なら最近再入学できるようになったので気にせず課題を進めればいいと思います。

  • libft
    こちらは、C言語の標準関数を40本ほど実装する課題です。最も基本的なstrlenやstrcpyもゼロから実装します。この課題を終えると、大型のプログラミングを書こうとしたら必須のmakefikeの作り方や、ポインタや構造体の知識、nullの扱いやintの最大、最小値の処理などが学べます。よく、プログラミング初心者にありがちなのが、便利なprint関数やsum関数などを使ってプログラミングできた気になるけど、コンピュータが何をやっているかわからないことですが、この課題をやればその不気味さも払拭されます。僕は今機械学習を勉強していて思うことがあるのですが、機械学習や深層学習というのはpythonで実装する際にscikit-learnやtensorflowといった便利なライブラリやフレームワークがあって確かにその具体的な論理がわかっていなくても仕事をできちゃったりします。ただ、これを実際に理解してゼロから作ることができるかできないかというのが上級エンジニアになれるかなれないかの分かれ目なのだと思っています。ということで、同じようなもどかしさを感じている人は42tokyoに入学してください。
    あとこのlibftで実装した関数を今後の課題でも使うことになるので大事らしいです。

  • ft_printf
    ここからは、僕がやっていない課題なので他の生徒から聴いた範囲になります。こちらは、標準関数のprintfを実装する課題です。最初プログラミングを始めた時にprintfを書いて画面に何かの文字が表示された時感動を覚えた人も多いのではないでしょうか。あれの仕組みを理解してゼロから実装していくことになります。よく考えてみたらわかりますがprintfには%dや%sなどたくさん条件分岐があるので結構大変そうです。

  • get_next_line
    こちらの関数はファイルディスクリプタからデータを読込むものです。呼び出すごとに1行ずつ (改行文字は含む) 返し、1度の読み取りはコンパイル時に指定するバッファサイズ分だけ行います。シンプルな課題のように見えて意外と条件が複雑で難しいそうです。

  • born_to_reboot
    こちらはvirtual boxを使ってLinuxの仮装環境を構築する課題です。今までの課題は関数実装やアルゴリズムの課題が多かったですが、ガラッと変わってLinuxや仮装環境の勉強になるので大変そうです。ただ、バックエンドにせよインフラにせよLinuxと仮装環境は使うことになるので、早く取り組みたいなと思っています。特に僕は機械学習エンジニアになるにあたって仮想環境を使うと記事で見たことがあるので早くやらなければと思っています。

  • push_swap
    こちらは制約がある中で特定の動きのみを使用していかに短いステップで数字をソートするかという課題だそうです。ソートのアルゴリズムとしては、バブルソートやクイックソートなどたくさんありますが、それらを組み合わせて遥かに難しい課題になりそうです。最近、いろいろなソートのアルゴリズムを勉強して、単純にアルゴリズムの勉強って楽しいなと感じています。

これ以降の課題は詳しくわからないのでここまでにしておこうと思います。

4.どんな人が42tokyoに向いているか


 42tokyoのカリキュラムは巷で流行りの一通りのweb開発を習って、ruby on railsで開発ができるようになるといったカリキュラムではありません。かなりアルゴリズムとデータ構造とかコンピュータサイエンスとかを深ぼるので、すぐに就職やフリーランスで受注したいといった人には向いていないと思います。逆にある程度実務で経験を積んだけど、学生時代は情報系じゃなかったからそのあたりの知識を一旦学び直してエンジニアとしてレベルアップしたいという人に向いていると思います。ただ、ブラックホールがあるので仕事をしながらだと最後までファーストサークルを終えるにはかなりコミットしないと難しいと思います。ただ、合計半年の休学期間が取れるので結構カリキュラムは終わらせられると思います。
 あと、全くのプログラミング未経験という人は42tokyoはレベルが高いので不安と思う人がいるかもしれませんが、逆にこういう人が向いています。piscineの内容は詳しく書けませんが、それと最初の方の課題を終わらせられれば一通りのスキルは身につくので初心者でもかなりレベルアップすることができます。しかし、これは実体験なのですが、ずっと無職でいるわけにもいかないからエンジニアとして就職してある程度実務を積んで必要だと思った42tokyoで学ぶようなカリキュラムを学びたいという人もいると思います。そういう人は最近piscineの二回目の受験が可能になったので一旦ブラックホールに飲まれた後にもう一回入学してファーストサークルを終えるのもいい判断だと思います。42tokyoは他の校舎と違ってフルコミットの人が少なく、ある程度カリキュラムを終えたら就職する人が多いのですが、今後再入学という選択肢が与えられて柔軟に対応できるようになったので42tokyoの魅力はさらに上がると思います。
 そう考えると、エンジニアになりたいと思っている人の中で42tokyoに向いていない人はいないと思います。自分が必要だと思った課題まで終わらて退学するのもいい選択肢です。

5.42tokyoに入っていろいろ楽しかった話


 11月にワールドカップが開催されました。日本代表熱かったですね。僕は2階戦のコスタリカ戦は渋谷のスポーツバーで観ましたが、それ以外は42tokyoで生徒と一緒に見ました。特にスペイン戦は朝の4時くらいからの試合でしたが、全く眠くなることなく白熱した戦いにみんなの応援も盛り上がりました。その後、渋谷のスクランブル交差点でみんなとハイタッチしたのがいい思い出です。決勝トーナメントのクロアチア戦もpkまでもつれこむ白熱した戦いでした。みんなで見守ったpkエモいですね。もう4年後は42tokyoいないんだなと考えてしみじみとなりました。


6.なぜ42tokyoでコンピュータサイエンスを学ぶのか


 とてもいい記事があったのでリンクを貼っておきます。プログラミングをしていて少しでもコンピュータサイエンスをかじったことがある人ならほぼ全員が思うのではないでしょうか。これってすぐ仕事に結びつくわけではないからいらなくねと。僕もそう感じて逃げようと思っていた人の1人です。コンピュータサイエンスを学ぶと先の技術が読めるようになるのと、一度身につけたら長期的に使えるため勉強の投資効果が高いようです。そして、純粋に使える使えないに関わらずデータ構造とかアルゴリズムを学ぶと人間の創意工夫の歴史が感じられて、面白く知的好奇心が満たされるのでおススメです。
 コンピュータサイエンスに興味を持った人はまずハーバード大学が出しているcs50という授業を見てみるのがおすすめです。僕も最初はこれから勉強したのですが、こんなに熱く授業をしてくれる先生がいれば大学って面白いのになと思いました。


7.42tokyoにどんな人がいるのか

 42tokyoには幅広い年齢のいろんな種類の人が集まっています。その中でも1番多いのは時間のある大学生や大学院生が多いです。話を聞いてる感じ、プログラミングで起業をしようとしている人が多い気がします。僕もその1人です。あとは、システムエンジニアをやっていたけど実際に下流のコーディングをする過程をやってみたいということで42tokyoにこられた方や、社会人で他の職種からエンジニアになるために42tokyoで学んでいるという人も多いです。
 42tokyoが開講されて2年以上が経過していますが、最近ファーストサークルを卒業する人が何人か出てきました。その中でも1人開講以来唯一ずっと校舎にいる方がいて、話を聞いたことがあるのですがなんでも答えられるので尊敬しています。


8.最後に

 ここまで駄文を読んでいただきありがとうございます。これを読んでくれた方の中で42に入ろうと思ってくれる人がいたらそれは感謝感激です。現状42tokyoは人が本当に不足しているので、沢山のご応募お待ちしております。ここから日本のエンジニア業界を盛り上げていきましょう!

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