Yabu.log

ITなどの雑記

Goならわかるシステムプログラミングを読み終えました

13章までは一人で読みました。14章以降は横浜Go読書会に参加して読みました。

Goならわかるシステムプログラミング

Goならわかるシステムプログラミング

どんな本だったか?

Go言語の要素

  • io.Writeやio.Readなどのinterface
  • chanelで同期をとる仕組み
  • go routineで並列に処理する仕組み

などを使ってコンピュータやOS,ネットワークの仕組みに迫るという本です。大体以下の要素を学びます

  • OSのシステムコール
  • ネットワーク全般
  • ファイルシステム
  • プロセス、スレッド
  • シグナル
  • 並列処理
  • メモリ管理
  • 時間・時刻の扱い
  • コンテナ、仮想化技術
  • OSのセキュリティ(付録)

どんな人向けか?

この本はGolang × システムプログラミングな本であることは確かだけど、どちらかの理解が浅い人が片方を頼りに理解を補うような本ではないと思う。 文章とか可愛い図が多かったりする点から初心者テイストを感じするが、読後は中級者向けな印象を受けた。入門書ではないかなと。 Golangとシステム双方をある程度理解した人がその接点を探るような読み方が、ベストなのではと思う。

感想

私にとってGolangに関して初めて読んだ本となりました。ネットワークの話題などはいくつかブログに検証する記事をあげました。

yuyubu.hatenablog.com

yuyubu.hatenablog.com

yuyubu.hatenablog.com

またこの本に影響されてTour of Goをやってみた。

yuyubu.hatenablog.com

yuyubu.hatenablog.com

OSについては今年の前半に割と頑張って勉強したから分かる箇所が多かったものの、並列処理などはわからない点が多かった。

yuyubu.hatenablog.com

私自身マルチスレッドなプログラミングはあまりやったことがないので、 他の言語と比較することはできないはgoはかなりカジュアルに並列処理(go routine)ができる点が特徴だと思うので、並列・並行制御に関するベストプラクティスを紹介するような本が相性がいいんじゃないかなと思います(横浜Go読書会の次回の課題本)

今後(個人的な話)

Goもシステムプログラミングも基礎が全然足りていないという感想。まだまだ初心者にすぎないことを思い知らされた一冊でした。ほんの内容と関係ないけど今後どんなことを学んで行きたいか書いてみようと思います。

今後のシステムプログラミング分野の学習

大体は低レイヤーの歩き方に書いてあるトピックに剃って勉強を進めていく感じ。

rkx1209.hatenablog.com

今はパタヘネやコンピュータネットワークを読んでいるけど、インフラエンジニアになる予定は今のところないので、ネットワークは教養目的で勉強を進めています。

コンピュータの構成と設計 第5版 上・下電子合本版

コンピュータの構成と設計 第5版 上・下電子合本版

コンピュータネットワーク 第5版

コンピュータネットワーク 第5版

  • 作者: アンドリュー・S・タネンバウム,デイビッド・J・ウエザロール,水野忠則,相田仁,東野輝夫,太田賢,西垣正勝,渡辺尚
  • 出版社/メーカー: 日経BP
  • 発売日: 2013/09/12
  • メディア: 単行本
  • この商品を含むブログ (4件) を見る

今後のGolangの学習

Goを使うような仕事についてみたいけど、未経験なのでポテンシャル採用になると思うけど、それができる第2新卒ほど若くないし、厳しいだろうなという印象。まずはProgramming言語Goをやって基礎を固めたいと思う。

プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

横浜Go読書会の次の課題本は「Go言語による並行処理」。

Go言語による並行処理

Go言語による並行処理

これもプログラミング言語Goの第8章と9章ができていないと難しいのではないかという話。