ざっとソフトウェア開発の技術書の良書、おもしろ書籍を紹介

アクアリウム始めてミナミヌマエビも飼っている。コケが増えてきたのが悩みです。

ざっとソフトウェア開発の技術書の良書やおもしろかった書籍をまとめる。興味があるものがあれば読んでみるとよいよ!

実装から学ぶ、コーディング、アルゴリズムとデータ構造、レビュー、リファクタリング

実装パターン

実装パターン

Amazon
これはすばらしい書籍で、状態や振る舞い、データコレクションについてよく書かれていた。あと命名とか。
ちょっと古いところはあるので、例えば、クラスとかメソッドあたりはぴんと来ないかもしれない。

コード改善するときに、よく遭遇する状況を章立てで言語化しててくれるすばらしい書籍。コードを改善する機会って、コード書けば書くほどあるし、ある日突然コードを改善しないといけないことは多々あったりするから、その機会に

UNIXのコマンドのソースコードで理解試みるなら。

アルゴリズムとデータ構造。

ゲームでよく見かけるデザインパターン。実際よく見かけるパターンがまとまっている。
原文は英語だが、ウェブサイトで公開されている。Game Programming Patterns

ちょっとそれて、検索エンジンを試しに実装から学ぶならこの一冊。

LISPにはマクロという代表的な機能があり、誤解ある表現かもしれないが、言語を拡張できる。
この書籍では、そのマクロを実装で学んで世界を広がるかもしれない。
原著はウェブで公開されている

原著:On Lisp

ちなみに、原著者は、ドメイン見てわかる通り、Y Combinatorの創設者Paul Graham。「ハッカーと画家」著者と言った方が伝わるのかな。
彼が開発関わってのちにYahoo!に買収されたYahoo!StoreはLISPで動いてたんだよ。最高だろ!?


ちょっと古い書籍ではるのだけど、ピアレビューの大切さを伝えてくれる書籍。
レビューにおいてCMMI(組織成熟度)のレベル3(定義された)はこうだというのを垣間見ることができると思う。

デザインパターントランザクションスクリプトとかよくあるパターンを学べる。

広くソフトウェア開発

これは最近の書籍ですでにご存じかもしれない。わたしはドキュメンテーションの章が好きです。

インフラ、インフラの設計

インフラの設計パターンが紹介されている。大規模システムのインフラ設計する機会って結構あったりするから、その前に目を通しておくとよい。

いまどきAWS使う機会多いので、AWSの設計パターンをキャッチアップするならこれ。AWSのソリューションアーキテクト系の資格勉強でよくない?とはなるかもしれない。

Testing

ソフトウェアの品質というのは大変大切でぜひに。

若干古いけど、Googleのテストについて紹介されている。
合わせてGoogle Tesitng Blogとかも購読したり、過去の記事読むとよいかも。

OSSコミュニティなどのテスト関わってる人たちがどうやっているのかを(インタビューもとなのかわからないけど)紹介している書籍。有名どころだとPythonインタプリタ)やFirefox、Claim Anti-Virusのテストをどうやっているかなどを知ることができる。

プログラミング言語、言語処理系

これは本当にすばらしい書籍。様々な言語の概念や、特徴、歴史を学べる。

7つのそれぞれ違うパラダイムの言語を7言語x3日=21日で学ぶ書籍。Iolanguageとかマイナーな(?)言語も紹介されてる。

一昔前は、なかなか程よくインタプリタ(言語処理系)を学べる書籍ってなかったのだけど、程よく一冊目に学ぶならこれ。
一昔前は、ドラゴンブックとかタイガーブックみたいな概念ゴリゴリの大学・大学院で教本になるような書籍(SICPもその一冊といえばそうかな)ばかりだったけど、これは実際につくって学ぶ。最後はマクロまで実装する。

ガーベージコレクションに特化しているが、Rubyコミッターの方が、ガーベージコレクションのアルゴリズムについて紹介してくれている書籍。
GCはこの書籍で学んだ。

沼にはまって、コンパイラの理論を学ぶなら。通称ドラゴンブック。

沼にはまって、コンパイラの理論を学ぶなら。特に最適化に特化している。通称タイガーブック

検索エンジン自然言語処理関連

検索エンジンを基礎の仕組みから、評価、課題やユーザーインタフェース、プロジェクトの始め方など広くまとまっている。

自然言語処理の基礎。放送大学自然言語処理の教本とどちらがよいかなやんだが、こちら。

検索エンジンをざっくり理解するなら。

IME興味あるなら。かな変換や機械学習・統計数学かかわるアルゴリズムも紹介されている。

Google検索エンジンはこんな感じだろって知ることができる書籍。強くすすめはしないが、もし興味あれば。

もし、検索沼にはまりそうで、大学院で学ぶ基礎を抑えるなら。

もし、検索沼にはまりそうで、実装と評価が気になるなら。

データベース

MySQLを中心としてた書籍だけど、MySQLの開発者してた方が書いている。昔いた会社では、まぁ、必修だよねくらい読まれていた。

7つのデータベースが紹介されている書籍。

広く人工知能

これ事典で、お高いけど、ぱらぱらめくってみるだけでも面白いと思う。
私は大学で哲学ちょっとかじってたことがあったりするので、第一章で哲学から語られてて興奮した。
あとは、身近な知人がファジー理論について院で応用研究してたりしたので、そこだけ読むとか、自然言語処理についても当然収録されているし、過去に関わった電力関連の事例も収録されていたりする。

ソフトウェアライセンス

どうしてもOSSを使う機会はあり、ライセンスは知っていないと困る。ソフトウェアライセンスを学び始めるならこれ。

エンジニア採用

MicrosotでExcelの開発関わってた Joel Spolsky が書いた採用ガイド。
身近で読まれてるのよねー。

システム運用、サービス運用

ITIL4の図解付きの書籍。ITサービスマネジメント興味あればぜひ。というかITシステム使ってると関わってないわけはないことをITIL4というベストプラクティスを体系化している標準があって、そのITIL4を学ぶ一冊目に。

書籍名の通り。

セキュリティ

セキュリティの書籍は紹介したいのが、いくつもあるけど...ネタとしてこの一冊を変化球として紹介する。
Python(のツール)を使って、バイナリ解析どうやればよいのかというのを紹介している書籍。

もし、サイバーセキュリティに関する法務、法律に興味あるなら、この一冊。

思考手法

知的生産するうえで大切なことを淡々と語ってくれている書籍。はまる人にははまると思う。

ラムダノート社の書籍

技術書出版ラムダノート – 技術書出版と販売のラムダノート

控えめにいって、どれも最高。