Hey there! Join Readernaut.

Readernaut is a free service that lets you write reviews, keep notes, make reading lists, track your reading progress and find your friends.

Join now!

Peter Seibel is a great interviewer and asks some really interesting questions. Of all the subjects in this book, a few stood out:

  • Jamie Zawinski for his down to eart, no-bullshit, and pragmatic take on things.
  • Brad Fitzpatrick for his interesting and relevant stories from the makings of Livejournal.
  • Brendan Eich for his explanations of why he (had to) design JavaScript the way it is.
  • Bernie Cosell for his fantastic stories of how great programmers worked in the 60s, 70s, and 80s.
  • Donal Knuth for his non-elitist answers (although he could get away with acting elitist).

After reading this book I feel I've missed out since Ive never gotten around to learning to program in assembly or really dive into C coding. There are some lower parts of computer architecture that I've never learned much about since the languages I've used have conveniently abstracted those parts away ...

This book lives up to its "Pro" title. Chapter 2 is the best introduction to some of Python's more advanced features I've read. Chapter 3 left me with a good understanding of how Django's declarative model definitions works. Apart from those two early chapters I enjoyed chapter 10 and 11 the most, as they presented information in a direct and concrete manner without some of the abstractness found in other chapters.

The best parts of the book are the "Applied Techniques" sections at the end of nearly every chapter. Here Marty gives the techniques he has presented earlier in the chapter some real world context.

Some parts of the book sadly reads like a verbose API documentation. There are some chapters where loads of methods are presented and every single one is described in excruciating detail. This gets tedious after a while and could just as well ...

Chapter 3: Models

This chapter include a very detailed account of how Django handles the models you define in your applications. Good to know but not information I think I'll use while doing day-to-day Django development. The same goes for the section on Django's model cache. The sections on model fields were more aligned with everyday Django development in that I've touched on several of the details described here before. I found the description of how to either subclass existing fields or create new fields very informative. I've never dealt with file fields or signals before so I was pleased to find such a succinct and good explanation of them.

As for the practical examples from this chapter I've implemented my own solutions for both pickled fields and creating models dymanically at run time. The pickled field was novel for it's lazy loading for ...

Chapter 2: Django is Python

I've used type() to programmatically create objects before but never used metaclasses directly. Callables was a familiar subject although I don't create callable instances with call often. Adding dictionary features to classes, file-like objects, iterables, argument handling, and decorators was familiar content but the chapter gave me a nice refresher of these more advanced Python features heavily utilized by Django. I've never used descriptors or the powerful introspection features of the inspect module in Python before and the chapter presented them well.

Overall a good book with lots of useful content. The grammar is severely lacking and there are quite a few typos. The typography is not good at all -- I suggest the folks over at Pact Publishing read Elements of Typographic Style. The illustrations could also need some work as they were all grainy and used dissimilar typefaces compared to the body text.