42Tokyoでの2021年9月振り返り

この記事は、エンジニア養成機関 42Tokyo の活動を知ってもらうため、 9月に42Tokyoであったことを振り返る記事です。

自分が取り組んだカリキュラム、参加したイベント、コミット時間について振り返ります。

やったこと

C++98でコンテナクラスの再実装をする課題

8月からC++98でvector, map, stackなどのコンテナクラスを再実装する課題に取り組んでいます。

9月はmapの実装が完了しました。ここまでにかかった時間は約98時間(9月で54時間)です。

大変だったこと

mapは内部で平衡二分探索木を使っています。

8月の振り返り ではAVL木で実装すると書いていたのですが、赤黒木で実装することにしました。赤黒木だと課題クリア時にボーナスがもらえるためです。

赤黒木は場合分けが多く、理解するのが大変でした。AVL木の方が楽だと思います。

実装にあたり『アルゴリズムイントロダクション』の2色木の章が参考になりました。擬似コードが書かれていて理解しやすかったです。

ただ、それでも説明するのが大変そうなのでスライドを作りました。

Googleスライドのテンプレートはこちらを使わせていただきました。

note.com

ShellScriptのコードゴルフで1位を取りました

42Tokyoでは時々、短時間で生徒とコードの短さ・速さなどを競い合うイベントが開催されます。

9月はShellScriptのコードゴルフが2回開催され、内1回で1位を取りました。

内容は以下を1時間以内にできるだけ短いコードで実装するものでした。

1回目の問題はawkを使って解きました。

2回目の問題はbashだと難しくて解けなかったです。解いた方はRubyを使ったようでした。

数学本の輪読会を完走

6月から、週1回グループで集まって『人工知能プログラミングのための数学がわかる本』を読んでいました。

9月でついに本を読み終えました。

Chapter1から4までで数学のことを一通り学べたのが良かったと思います。一方で実践編の途中からはかなり難しく感じました。

この本を読んでいて、どちらかというと機械学習よりも統計の方が興味があるかも……と思ったので、10月からは 統計学の時間 | 統計WEB の輪読会に参加することにしました。

42Tokyoでは学生の成績などのデータを、APIを使って学生が入手できます。統計を学ぶことでデータの活用ができたらと思っています。

サイバーエージェント×42 Tokyo就活イベントに参加しました

9/9にZoomで行われたサイバーエージェント×42 Tokyo就活イベントに参加しました。

イベントレポートはnoteにまとめてあります。

note.42tokyo.jp

イベントに参加して、サイバーエジェントに内定が出た42Tokyo在籍の中野さんのように、アウトプットして外にチャレンジしていきたいと思いました。

植山類さんの講演に参加しました

9/25にYouTube Liveにて行われた植山類さんの講演に参加しました。

植山類さんはGoogle在籍時にLLVM lldリンカを作成された他、Cコンパイラ chibicc やハイパフォーマンスなリンカ mold を作られています。

講演のテーマは「リンカの基礎知識」について。

リンカの役割や実践的な知識、実行ファイルのロード方法などについて教えてくださいました。

詳細な内容は、りょうさんが記事にまとめられています。

ryo-manba.hatenablog.com

lld開発の苦労話(VisualStudioのドキュメントに書かれていない挙動を合わせるのが大変だった話)、関数を小分けにしてスタティックライブラリを作成する理由が特に面白かったです。

コミット時間

合計 1日平均
9月 151時間27分 5.0時間

今後やること

引き続きC++でコンテナクラスを再実装する課題に取り組みたいと思います。10月中には終わらせたいです。

10月からは与えられたコードをリファクタリングする課題が始まるので、そちらも取り組みたいと思います。