tatsumack blog

エンジニアによる雑記です

2018年に読んだ技術書たち

年の瀬ということで、日々の往復2時間の通勤時間を活かして読んできた技術書たちを備忘録としてまとめておく。

プログラミングコンテストチャレンジブック

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

購入したのは2014年くらいだったと思うけど、途中で挫折して積んでいた本。
今年競技プログラミングを始めたこともあり、また気合入れ直して読んでみた。
読むには読んだけど、理解できていないところも結構ある。

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

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

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

CTF出てみたいなーと思って買った本。CTFビギナーが雰囲気を掴む上でとても参考になった。
ということで、今年は夏にあった初心者向けのCTFにも参加してみた。


http://blog.hatena.ne.jp/tatsumack/tatsumack.hatenablog.com/edit#preview

プログラミングC# 第6版

プログラミングC# 第6版

プログラミングC# 第6版

C#を書くことになったので、とりあえず体系立てて学びたいと思って買った本。
リファレンスとしてたまに読み返したりしている。

Unityゲーム プログラミング・バイブル

Unityゲーム プログラミング・バイブル

Unityゲーム プログラミング・バイブル

Unityの実践的な知見がまとまってる書籍ってあまりないので、発売前から気になっていた本。たしかUniteかCEDECの物販で買ったと思う。
各章独立しているので、気になるところをつまみ食いする感じで読んだ。

ふつうのLinuxプログラミング

最後の章のhttpサーバーを作るところが面白かった。
これを参考にしつつ、自分でも簡単なhttpサーバーを書いてみた。
github.com

[試して理解] Linuxのしくみ

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

Twitterで話題になっていたので読んでみた。
説明が丁寧なのと図も分かりやすく、エンジニア初心者の方にも読みやすいと思う。
社会人1年目くらいにこの本が欲しかった。

詳解UNIXプログラミング

詳解UNIXプログラミング 第3版

詳解UNIXプログラミング 第3版

[試して理解] Linuxのしくみを読んだあとに、Unixに関して体系立った深い知識を得たいなと思って読んだ本。
900ページ超あり、読み終わるのに3ヶ月くらいかかった気がする。

プログラミング言語Go

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

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

Goを書くことになったので買った。
練習問題を全部解くかーと思ったけど、結構問題数が多くて途中で飽きてしまった。
github.com

とりあえず全体をサラーッと読んで、Goを書いていて気になることがあれば読み返したりしている。

みんなのGo言語

みんなのGo言語【現場で使える実践テクニック】

みんなのGo言語【現場で使える実践テクニック】

Goを書く上での実践的な知見を知りたくて買った。
Goプロジェクトのディレクトリ構成とか、マルチプラットフォームのツールを作る上で気にすべきこと、テストの書き方あたりが参考になった。

やってみようGoでISUCONパフォーマンスチューニングーISUCON7の予想問題を試してみる本ー

booth.pm

技術書典5に行けなかったのが悔しくて、後日電子版を買い漁ったときの本。
ConoHaでisucon環境がサクッと生成できること、pprof, alpあたりの使い方を知れたのが良かった。
今年は社内ISUCONに参加して非常に楽しかったので、来年はぜひ本家のISUCONにも参加してみたい。

Ryzen SEGV Battle

https://www.dlmarket.jp/products/detail/619213

これも技術書典5の電子書籍を買い漁っていたときの本。
このレイヤのバグを検証するのはめちゃめちゃ大変そうで読み応えがあり、かなり面白かった。

DNSをはじめよう ~基礎からトラブルシューティングまで~

mochikoastech.booth.pm

この本も電子版を買い漁っていたときに見つけた本。
そういえばDNSってちゃんと知らなかったし、説明が分かりやすかったのでとても良かった。

コンパイラ: 作りながら学ぶ

コンパイラ: 作りながら学ぶ

コンパイラ: 作りながら学ぶ

Turing Complete FM を聞いたりしていて、僕もCコンパイラ書いてみたいなと思って、買ってみた本。
思ったよりもとっつきやすくて、初学者でも読みやすかった。
で、これを読んでCコンパイラを書こうと思ったけど、競技プログラミングにハマったこともあり、四則演算を書いたくらいで頓挫している。。

低レイヤを知りたい人のための Cコンパイラ作成入門

低レイヤを知りたい人のための Cコンパイラ作成入門

Turing Complete FMのRui Ueyamaさんが書かれているCコンパイラ作成入門本。
まだ執筆途中だけど、読みやすくて僕でもセルフホストCコンパイラがかけそうなので、完成版が本当に待ち遠しい。

Go言語でつくるインタプリタ

Go言語でつくるインタプリタ

Go言語でつくるインタプリタ

Goの勉強しつつ、インタプリタもかけるなんて最高じゃんと思って買った本。
Goに関しての言及はあまりなかったけど、簡単なものであればインタプリタって意外と作れるもんだなと思えた。
github.com

自分で構文を追加してみたりもした。
qiita.com

同じ作者によるコンパイラ本も買ったので、早く読みたい。

Writing A Compiler In Go (English Edition)

Writing A Compiler In Go (English Edition)

マスタリングTCP/IP 入門編

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版

そういえば、体系立ててネットワーク周りの勉強をしたことがないなと思って買った本。
淡々とプロトコルの仕様を説明するのではなく、どういう経緯で今の仕様になっているのかをきちんと説明している点が良かった。

実践パケット解析

実践 パケット解析 第3版 ―Wiresharkを使ったトラブルシューティング

実践 パケット解析 第3版 ―Wiresharkを使ったトラブルシューティング

Wiresharkを使いながら、パケット解析を実践してみる本。
深い知識を得られるかと思いきや、結構浅い感じだった。ネットワーク入門本としてはアリだと思う。

エンジニアのためのマネジメントキャリアパス

エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド

エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド

今はマネジメントから離れているが、またマネジメントとしてのキャリアを考えることもあると思い買ってみた本。
まだ自分にはピンと来ない部分もあったので、マネジメントに軸足を置く機会があれば、また読み直したい。

エンジニアリング組織論への招待

個人的には2018年に読んだ本の中で一番良かった。
特にこの一年は新規開発をしていたこともあり、不確実性を減らす動き方ができているか自問自答していた。
一見エンジニア向けっぽい本に見えるが、企画職やプロダクトマネージャーにもオススメ。

ドラゴンクエストXを支える技術

長期運営かつ複数プラットフォームを対応する上で、意外と泥臭い問題解決をしている点があるところも包み隠さず書かれていた点が良かった。
コラムも面白くて「TCPチェックサムは合っているけど、データが壊れていることがあった」とかそんなことあるのかーという感じ。

まとめ

来年も気の赴くままに技術書を読み漁っていきたい。