概要
Go ならわかるシステムプログラミング 第 2 版を読みました。 感想を書きます。
Goならわかるシステムプログラミング 第2版www.lambdanote.com
前提
目的
本書を読んだ背景は以下です。
- 2023年10月〜12月の目標の注力分野の 1 つにネットワーク・Linux を掲げていた
- SRE に関心があるので、Linux 周りの知見を深めたかった
- [試して理解]Linux のしくみを読み終えており、著者が「本書を読んだ後に(開発者向け)」に紹介されていた一冊だった
- 個人的にまとめていた、Linux を学ぶための参考書籍まとめの 1 冊だった
事前知識
OS や低レイヤを学んだのは、以下の書籍ぐらいだったため、あまり知見がない状態でした。
Go は業務で利用したこともあり、書籍では初めての Go 言語を読んでいます。
本書自体は、Go も低レイヤの知識もほとんどないときに、読んだことがありますが、その際には理解が難しく途中でやめてしまいました。 今回は最初から読み直しました。
読了時間
写経しつつ読み進め、だいたい 10 日かからないぐらいで、15 時間から 20 時間ぐらいで読み終えました。 最初の方は写経できる部分が多かったですが、最後の方は読み物的な側面が多く、手を動かさず読むだけで、読了としました。
感想
Go を用いて、低レイヤについてとっつきやすく学べる書籍でした。 [試して理解]Linux のしくみ【増補改訂版】の内容を別の角度から学ぶことができ、理解を一段階深めることができたと考えています。 個人的には特に以下の部分が印象的でした。 割と Go そのものの内容だったのですが、低レイヤ観点から知識を学べて非常にためになりました。
気になったことは、本書を読む際の前提知識です。 個人的には、本書を読む際には Go と OS 周りの基本的な知識が必要そうだと思いました。 読み進めているときに、システムプログラミング周りの内容で Go 言語そのものについて学ぶ部分も多かったので、知識ゼロだと読者が置いていかれる場合があるのではないかと思いました。 これは、自身が昔読んだときに、一度読むのをやめた経験からもきています。 そのため、本書を読む際には最低でも[試して理解]Linux のしくみ【増補改訂版】と初めての Go 言語といった入門書を読むことをお勧めします。
次に関連で勉強すること
次は、ネットワーク周りの勉強をします。 以下の本を想定しています。
まとめ
OS 周りの知識を獲得するために本書を読みました。 Go を通じて、今まで読んだ読んだ書籍とは別観点で理解を深めることが良かったです。 ただし、個人的には Go と OS の知識を持った状態で読んだ方が理解を深めやすそうだと思いました。