13 of 13 people found the following review helpful:
5.0 out of 5 stars
These guys know what they are talking about.., 17 Jan 2011
By Eelco - Published on Amazon.com
This review is from: Foundations of Python Network Programming: The Comprehensive Guide to Building Network Applications with Python 3 2nd Edition (Books for Professionals by Professionals) (Paperback)
As I am relatively new to Python I originally felt that such advanced programming subjects were way above my head, not just due to my overal knowledge on Python itself, but mostly due to the lack of knowledge on all the underlying 'basic' matters on network programming. This, however, is exactly where John and Brandon did an amazing job and why I bought the book: they explain everything (from the TCP and UDP protocol to memcached) to the detail (in plain English!) before actually showing you an example how you can let Python do something magic with it. There are tons of practical examples that are applicable in daily life (varying from basic stuff such as leveraging Google Maps by calling a raw socket to wrapping a client socket with TSL) and all of these are well-written and elegant.
The book provides a solid foundation on all the basics you need to know to get started - and beyond - on network programming in Python. These guys clearly know what they are talking about (and do a good job sharing this knowledge!), which is clearly demonstrated by the vast amount of useful tips and best practices that you might otherwise only learn through trial and error yourself (call me lazy, but I prefer learning it from a set of experts). Foundations of Python Network Programming is not just a Python cookbook: it's a Python cookbook which also teaches you the foundations on networking while showing you some best practices. For beginners it's a must-have, and for the more advanced coders it's a great reference guide of which there's a lot to learn, without a doubt.
7 of 7 people found the following review helpful:
5.0 out of 5 stars
Exhaustive and Authoritative, 1 Feb 2011
By Stephen McMahon - Published on Amazon.com
This review is from: Foundations of Python Network Programming: The Comprehensive Guide to Building Network Applications with Python 3 2nd Edition (Books for Professionals by Professionals) (Paperback)
I wish I'd had this book years ago. It's a very solid introduction to both network protocols and to using Python to work with them. It demystifies some nasty parts of network programming and offers lots of good advice for real-world use for everything from UDP up the stack to SSH and RPC. I could imagine the book being the main assigned text for an upper-division undergraduate course or the go-to reference for a skilled web developer or Python-literate network admin.
And ... it's well enough written to be enjoyable reading, pretty much wherever you open the book.
I have to note that there are a couple of very low ratings here from a couple of folks who expected this to be a Python 3 book. I expected, and received, a book covering Python 2.5-2.7. If that's what you're after, I suggest you mentally subtract those ratings from the average. Their complaints with the publisher may be fair, but they tell you nothing about the quality of the real book.
3 of 3 people found the following review helpful:
5.0 out of 5 stars
Good depth and breadth of topics, 27 Feb 2011
By Doug Hellmann - Published on Amazon.com
This review is from: Foundations of Python Network Programming: The Comprehensive Guide to Building Network Applications with Python 3 2nd Edition (Books for Professionals by Professionals) (Paperback)
Why I picked it up: I know Brandon through PyATL and was confident that his years of experience would ensure that he put out a high quality book. He more than met my expectations.
Why I finished it: The conversational tone made it easy to zip through the sections covering material I was familiar with, saving more time to study the rest more completely.
I'd give it to: Any Python programmer who wants a better understanding of the fundamentals of network programming. Even an experienced Python programmer will learn a few new tricks from the sections covering more modern tools like ZeroMQ and paramiko.
This is the second edition of Foundations of Python Network Programming. The first edition by John Goerzen was released in 2004, and while a lot has changed in the way we use computer networks since then the fundamentals remain constant. Brandon Rhodes has improved the second edition by cleaning up the old examples that are still relevant, updating or replacing the ones that became obsolete, and adding new material. The results benefit from Brandon's high level of expertise and depth of knowledge in networking.
The book covers a broad range of topics, and is organized so that each section builds on the knowledge of the previous chapters. The discussions move from from raw TCP and UDP to encryption with TSL, and then on to application protocols like HTTP, SMTP, POP, IMAP, and ssh. Each section explains not just how to do a task, but why doing it that way works.
The examples in the book are clear and illustrate the concepts described in the text. There are a few places where the exposition would benefit from a diagram or two (especially in the description of TCP message windows), but the explanation given does stand on its own.
Every chapter of Foundations of Python Network Programming is filled with practical advice. After establishing the fundamentals of networking in the first few chapters, the book goes on to cover architectural issues that come up when creating client server applications. The different uses for RPC and message queue architectures are covered, as well binary versus text wire protocols. The latter chapters, which cover higher level protocols, discuss best-of-breed libraries, removing much of the guesswork for Python programmers choosing tools for new projects.
I recommend Foundations of Python Network Programming for programmers who want to move beyond the usual web framework-based development paradigm to learn more about what is going on behind the scenes. It is concise, but written in a conversational style that makes it easy to read. After reading the book, you will have a good grounding in the fundamentals of networking and be introduced to many more complex subjects. Brandon includes a number of references to other sources of more information, as well, for readers who want to go beyond the fundamentals covered here.