Ilya Grigorik's new book, High Performance Browser Networking is sub-titled What every web developer should know about networking and web performance.
I think that Grigorik's editors at O'Reilly, in an excess of caution, did him a bit of a disservice. The book ought to be titled:
High Performance Networking
What every developer should know about networking performance
My point is just that Grigorik's book is far broader and more generally useful than its title might indicate.
The book is broadly divided into four sections:
- Networking 101
- Performance of Wireless Networks
- Browser APIs and Protocols
This is a nice order to present the material, moving smoothly from the most fundamental and broadest topics, ending with some specific guidance on particular recent developments in the browser networking world.
If I could fault the book, it's that it is weak on tools. There are many powerful tools for collecting and studying network performance issues, so many in fact that they deserve a book all of their own. Still, it would have been nice to get some general pointers and advice about the most common and necessary of those tools (netstat, tcpdump, traceroute, nmap, wireshark, etc).
As with many O'Reilly books, you can find nearly all of this material elsewhere, but O'Reilly have once again done the world a service by (a) finding an author who is a world class expert in the material (Grigorik works at Google on the networking libraries in the Chrome browser), and (b) gathering together all the relevant material in a single well-presented book.
It helps that Grigorik is a good writer and organizes and presents the material well.
It's hard to imagine a serious software engineer who wouldn't benefit from studying this book. All modern applications are network-aware, and all modern applications must consider performance if they are to be useful and well-accepted.
So: if you have made a career in software development, it's simple. This book belongs on your bookshelf. Better, it belongs on your desk, open, often-consulted.