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

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

自分が取り組んでいるカリキュラム、行われているイベント、コミット時間について振り返ります。

カリキュラム

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

概要

C++98でvector, map, stackなどのコンテナクラスを再実装する課題です。

それぞれのコンテナのイテレータや、C++11から実装されたstd::enable_if, std::is_integralなども実装する必要があります。

C++98なのにC++11のstd::enable_if, std::is_integralを実装するのは、コンテナクラスの関数の引数がfillなのかrangeなのか区別する必要があるからだと思っています。)

現在、vectorの実装が完了しました。ここまでにかかった時間は40時間ほどです。

学習方法

江添亮のC++入門vectorの実装について学び、

プログラミング言語C++ 第4版』を読んでSFINAE、std::enable_ifの実装について知り、

clang++やg++の標準ライブラリのソースを読みながらコンテナクラスの実装をしています。

感想

型に応じて別の型を取り出せるstd::enable_ifが面白いです。

今まで使っていたテンプレートとはまた違う面白さです。

イベント

数学本の輪読会(6月から継続中)

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

8月から複数分かれていたグループが集まって以前より人数が増えました。

内容はChapter5 実践編1をやっています。今まで学んだことの集大成という感じです。

この章からは Pythonのコードが公開 されているので、コードも読みながら進めています。

学んだことは以下のリポジトリにまとめるようにしました。

github.com

コードゴルフ的イベント

今回はプログラムの実行速度を問う問題でした。

その他勉強会

7月の記事 で紹介した勉強会に加え、nand2tetrisを作ってみる勉強会が生まれたようです。

コミット時間

合計 1日平均
8月 127時間39分 4.1時間

7月の記事 では、8月からコミット時間をもう少し増やしていきたいと話していたのですが、さらに少なくなってしまいました。

8月はワクチン接種の副作用で休みを取ったり、保険関係の申請をしていたりしたのが原因かなと思います。

今後やること

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