Overview
I was quite excited when I came across this book, as I've always felt that there needed to be more books that dealt with best-practices, useful libraries, code style, and other information that one discovers through years of coding experience. Even for languages that I've had quite a bit of experience with, I'll still come across a great library or helpful technique that I wish I'd learned years earlier.
The Hitchhiker's Guide to Python serves as an excellent guide for those who know Python, but perhaps haven't been using it for the majority of their career. I have a similar affinity for the book Javascript Patterns by Stoyan Stefanov. Both books cover best practices and what makes them best practices. In addition to basics such as the best way to import modules or a review of PEP 8 code style conventions, there are also sections that provide excellent recommendations for common use-cases such as testing and GUIs.
I got this book fairly recently. At this point, I know the ins and outs of Python fairly well and feel comfortable writing complex programs. That said, I don't have a lot of experience making my Python code available to other developers, and I feel there is a lot left for me to learn about how to get my code in tip top shape, making it maintainable, readable, and easy to contribute to. There are some gaps in my Python knowledge, and I've found that this book serves as a fantastic starting point when I want to learn more about a specific aspect of Python development and take my skills in that area to the next level.
Pros
- Lots of information not found in other books about best practices and useful libraries
- Great information about getting code ready to open-source or otherwise distribute
- Excellent reference book to revisit when you need a refresher on a specific topic
- Draws inspiration from the fantastic, hilarious, witty sci-fi novel The Hitchhiker's Guide to the Galaxy by Douglas Adams.
Cons
- May be review for more experienced Python coders
- Fairly opinionated (some would see this as a bad thing)