🙆‍♀️

2024年のコンピュータサイエンス関連読書振り返り

に公開

はじめに

あけましておめでとうございます。本年もよろしくお願いします。昨年の振り返りとして42Tokyoでの学習(+私の興味関心)のために読んだ書籍を振り返りたいと思います。

なお、掲載順は私の購入順に過ぎません。

想定読者

下記のいずれかにあてはまる方
1.42Tokyoの本科生
2.コンピュータサイエンスに興味があって学習を開始して1年未満程度の方

※『おすすめ度』節の星評価について

想定読者にとってどの程度おすすめであるか、という単軸で独断と偏見に基づき評価させていただきます。

★★★★★ : 必読
★★★★☆ : おすすめ
★★★☆☆ : 興味があれば
★★☆☆☆ : 興味があればいいが過剰or過少
★☆☆☆☆ : 内容が過剰ori過少すぎておすすめしない

『C言語によるはじめてのアルゴリズム入門 改訂第5版』

なぜこの書籍を読んだのか

42Tokyo入学試験中、アルゴリズムについて初学者向けの書籍を友人に質問したところおすすめされました。

主要な学び

アルゴリズムの全体感を掴むのに非常に良かったと思います。特に3章のソートとサーチ、5章のデータ構造の内容はダイレクトに実装に活きました。一方でそれ以外の内容はまだ実感を持って活かせたことはないです。

おすすめ度

★★★☆☆

『C実践プログラミング 第3版』

なぜこの書籍を読んだのか

Piscineで学んだ内容に加えてC言語学習の全体感を掴みたかったためです。

主要な学び

買って少しさらったところ不要だったなと思いほとんど読んでいません。

おすすめ度

★☆☆☆☆ ※特に本科生は不要.

『セキュリティコンテストチャレンジブック CTFで学ぼう!情報を守るための戦い方』

なぜこの書籍を読んだのか

ビギナー向けCTFに参加しようと思い、経験者の方から初学者向けの導入本としておすすめされました。

主要な学び

買って少しさらったところ、正直全く前提知識が足りないなと思い、積んでいます。

おすすめ度

★★☆☆☆

『ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道』

なぜこの書籍を読んだのか

Linuxの仮想環境構築を勉強する際、そもそもLinux自体の勉強が必要であることに思い至ったためです。

主要な学び

コマンドを何を使えば何ができるのか、というレイヤーにとどまらず、Linuxが実際どう成り立っているのか、内部的に何が行われているのか、ファイルシステムとはなにか等など、初学者の自分にとって最高のLinux入門書だったと思います。

おすすめ度

★★★★★

『入門bash 第3版』

なぜこの書籍を読んだのか

課題でbashの内部処理について学ぶ必要があったためです。

主要な学び

bashの基本は総ざらい出来るという前提で私は以下のことが特に活きました。

  1. bashの内部プロセス
  2. bashで出来ること

おすすめ度

★★★★☆ : 校舎に第2版があったような?

『Linuxプログラミングインターフェース』

なぜこの書籍を読んだのか

Linuxを扱う人なら辞書として持っておけとの言説を受け、目次を見て購入を決めました。

通称TLPI。

主要な学び

この本はエンジニアの六法全書だと思います。Linuxのシステムコールの扱いがわからなかったらこの書籍を調べると初動はなんとかなりました。

おすすめ度

★★★★☆ : 値段が高い...

『コンピュータの構成と設計 MIPS Edition第6版上下巻』

なぜこの書籍を読んだのか

コンピュータの低レイヤーに興味を持った際、詳しい同期におすすめ書籍を伺ったところ、世界中のcsの学生がおそらく授業で扱う標準テキストであるということでおすすめされました。

主要な学び

上巻8割くらいまでしか読めていないのですが、低レイヤーで何が行われているのかアセンブリレベルで説明があり、好奇心を非常にくすぐられました。
C言語の知識がないとあんまり楽しめないかもなとも思います。

おすすめ度

★★★☆☆

『独習C++ 新版』

なぜこの書籍を読んだのか

課題のためにノリで買って全体を少しさらいましたが、

https://rinatz.github.io/cpp-book/

https://ja.cppreference.com/w/cpp

この2つのサイトだけで十分だったので購入は失敗でした。

主要な学び

新しい言語をやるときは導入用の書籍を買うと無駄になる。(=今はWeb上の教材を取捨選択できるだけの学習ノウハウが備わった?)

おすすめ度

★☆☆☆☆

『TCP/IPソケットプログラミング (C言語編)』

なぜこの書籍を読んだのか

課題でソケットプログラミングを実装する必要があり、関連システムコールの深堀りがTLPIだけでは不十分だったためです。

主要な学び

send関数, recv関数で行われていることがカーネルのバッファまで深堀って説明されていたので非常にわかりやすかったです。
正直こんな複雑な動作をシステムコールというAPIで簡単に提供している事実に震えました。我々は巨人の肩に乗っているだけに過ぎない。
全体通してソケットプログラミングの学習にとって名著であると呼ばれることに納得できました。

おすすめ度

★★★★★

終わりに

読み切れていない書籍を含め、2024年のコンピュータサイエンス関連書籍の振り返りをしました。たくさんインプット出来たなと実感しつつ、未だに自分の興味関心ベースでしか高効率で勉強出来ないことは改善しなければと思っています。

2025年は業務に必要な実務ベースの書籍を大量にインプットしていきたいと思います。
改めて本年もよろしくお願い申し上げます。
お読みいただきありがとうございました。

Discussion