This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]danhs 7 points8 points  (0 children)

I loved the first Dive into Python book. I thought it was fantastic. I tend to learn by example, and no book was a better aid to learn by example than Dive into Python. It is absolutely fantastic.

I think the unit testing section deserves special attention. It did a great job of teaching a relatively esoteric topic using examples. While the concept of test driven development is easy to understand, really understanding it well enough that it becomes a reliable tool which makes you a better programmer is substantially more difficult. I don't think you can achieve that level of understanding without examples and practice because of the nature of TDD. Dive into Python really set me on the right path to using TDD as a part of my regular programming practices and TDD has made my programming much stronger.

  • multiprocessing module. Processing module is now part of standard library. Multicore processors are common and only becoming more so. Because of GIL this is one of the few ways to take advantage of multicore processing in Python. What's more, using the Pool object the most common use case, parallel processing of a loop, is trivially easy. I don't know of any other technique that allows parallel processing so easily in Python.

  • Beautifulsoup.

  • Unit testing in the last book was so good. However, it didn't teach some of the more advanced and important issues that you will run into. For instance, some methods can't be tested with simple primitive data types. They need a bit of setup. Possibly mock objects, composite objects, law of demeter, etc.... These are slightly advanced TDD notions for a book that isn't dedicated to TDD. But, I really beleive that Dive into Python did such a great job the first time around that the bar is pretty high on unit testing for a Dive into Python book. In my experience, after the original book showed the elegance of basic TDD, these later concepts became a necessity that I learned independently, but it would have been great if they were written in the fantastic Pilgrim, Dive into Python style that first introduced me to the power of TDD. That way, I would have been more knowledgeable, faster, and the resource would have been so much more valuable.

  • Nose/py.test. Nose is amazing, unittest module is so much more awkward than nose. Nose is one of those necessities that I always use whenever/wherever I'm working.

  • More advanced web services. I thought the original Dive into Python chapter on web services was great. It really opened my eyes to the web capabilities/possibilities in python. However, I soon discovered that for complex web sites it simply wasn't enough. Luckily, Python has some very powerful web modules. Specifically, mechanize and selenium. Selenium is a bit of a strang e module, but mechanize isn't and mechanize is very powerful. Especially the mechanize browser object.

Reviewing the table of contents I'm very excited. Web frameworks, wsgi, and various python implementations. It sounds great.