Dive Into Python

  Author:    Mark Pilgrim
  ISBN:    1590593561
  Sales Rank:    84137
  Published:    2004-07-19
  Publisher:    Apress
  # Pages:    413
  Binding:    Paperback
  Avg. Rating:    5.0 based on 29 reviews
  Used Offers:    11 from $27.19
  Amazon Price:    $30.43
  (Data above last updated:  2008-08-21 06:35:24 EST)
  
  
Sort customer reviews by:
  
Show All Reviews on Page      Hide All Reviews on Page
   
  
Dive Into Python
  

Dive Into Python is a hands-on guide to the Python language. Each chapter starts with a real complete code sample, proceeds to pick it apart and explain the pieces, and then puts it all back together again in a summary at the end.

Python is a new and innovative scripting language. It is set to replace Perl as the programming language of choice for shell scripters, and for serious application developers wanting a feature rich yet simple language to deploy their products in.

This book is not for newbies, for wimps, or for dummies. It assumes a lot about you:

- You know at least one real object-oriented language, such as Java, C#, or Delphi.

- You know at least one other scripting language, such as Perl, Visual Basic, or Javascript.

If youre just getting started programming, that doesnt mean you cant learn Python. Python is an easy language to learn, but you should probably learn it somewhere else. That said, Dive Into Python will be a guide for people who can jump into languages fast and get going.

                  Reader Reviews 1 - 20 of 20                 
  
  
Review
Date
Review
Rating(5 High)
Review
Helpful
to:
Customer Review Reviewer
Info
Permanent
Link
Reader Reviews Below Sorted by Newest First
03-18-08 1 1\1
(Hide Review...)  didn't care for it - not for programming newbies
Reviewer Permalink
I have experience with Fortran, some C/C++, but mostly IDL, a commercial scripting language for scientific visualization. I'm interested in Python because its an open source scripting language.

At the very least, skim the free online version before buying it. I got a copy from a friend and found it tough going. The first chapter 'dives' right into dictionaries and I didn't find it clear at all. Didn't make it past the first 2 or 3 chapters before looking for something else. The visual layout could also be better.
(Review Data Last Updated: 2008-08-20 06:29:39 EST)
01-25-08 2 0\2
(Hide Review...)  Sent it back after a day
Reviewer Permalink
This book should have been called "Wade Into the Shallow End of Python." Virtually every section is punctuated by a statement to the effect of "I don't really understand how this crazy stuff works, either, so here's some other books you can read instead of this one if you want to learn anything" and it's probably the best advice the author has to offer. Numerous features of the language are glanced over or even omitted entirely just so we can enjoy three chapters worth of pointless RSS feed parsing examples and repeated exposure to a textual rendering of the author's extensive collection of obscure techno music. Rudimentary features of regular expressions are also over-explained ad infinitum despite the fact that this book is meant to target developers with experience in other programming languages. If they really needed to pad the content that much then why not cover things like metaclasses or the new generator features or pretty much anything useful?

It gets an extra star simply because it contains no painful-to-read Monty Python references which stopped being funny around 1985; something the official documentation cannot claim.
(Review Data Last Updated: 2008-03-21 13:31:51 EST)
01-06-08 4 (NA)
(Hide Review...)  Quite reasonable reading
Reviewer Permalink
Pros:
1) The book does what the title promises - dives head in.
2) It introduces relatively wide range of topics in a readable manner.
3) Uses reasonably sized code examples
4) The writing is pretty clear and understandable
5) Has practical tidbits occasionally comparing similar functionality against C, C++, Java and Perl. Nice.
6) Provides links to further reading on a topic. Also very nice.

Cons:
1) Most topic discussions are a bit shallow and incomplete. For example it would be nice to present the reader with a comprehensive list of 'stuff' that may be done with a list, string, tuple, etc.
2) While there is a chapter on optimization, Mark doesn't mention the python profiler. I could live with that but there is no mentioning of python debugger (pdb) and there is nothing in the book about logging, either. These should not be considered 'advanced topics' and left out as they are helpful tool in learning any language (my opinion).
3) The book examples follow the 'Look at this cool yet obfuscated stuff I can do with Python - and oh, BTW, this is what it really means' methodology. While the follow-up discussions are reasonable, I would much more appreciate an explanation or at least mentioning of a concept before I get hit by a semi-cryptic line of code. On the other hand, the code is well annotated.
4) Mark uses repetitive examples to illustrate a point. 'This is how to do something', followed by 'This is how to do it better', followed by 'This is how to do it really well'. While illustrative of potential pitfalls, bugs or code deficiencies, this kind of writing makes it impractical to use the book as a reference. Open the book at the wrong page and follow the less than perfect example. Not a good thing. And boring - if I wanted to see it done the wrong way I'd use perl ;-).
5) Mark's statement that C++ virtual methods: 'confuse the hell out of me' (pg. 84) is rather amusing. I'd suggest to skip the amusement as it doesn't give a casual reader a whole lot of confidence in author's understanding of method overloading. Humor me some other ways.
However, this book is about Python, not C++, so I don't hold it against the author :)

In conclusion:
Quite reasonable book for the money, gets you a pretty good jumpstart. Coming from C/C++ background, general programming concepts are not totally lost on me and there are enough practical differences between Python and C++ that this book was worth the read.

The chapters on HTML, XML and SOAP were the primary reason I bought this book. Again, while not covered in depth, I got enough from them to get started with a small practical application.

If you're serious about developing any kind of meaningful code this is a reasonable start but you'll need to dig deeper.

I recently opted for buying Wesley Chun's Core Python Programming as it covers more topics in greater depth (it's the details that matter a lot) in quite comprehensive manner while still very understandable by a novice programmer.

O'Reilley's Python Cookbook by Alex Martelli et. al is also a very good complementary reading exposing quite imaginative ways of using even some very basic capabilities of Python.
(Review Data Last Updated: 2008-01-29 22:13:50 EST)
10-01-07 4 (NA)
(Hide Review...)  good dive
Reviewer Permalink
nice examples to dive into and get a whole view of the language in very short time. but not recommended for newcomers in programming.
(Review Data Last Updated: 2008-01-07 11:50:56 EST)
08-06-07 5 (NA)
(Hide Review...)  Quick approach
Reviewer Permalink
Although this book is only a quick approach to python it makes the reader have a good background to continue learning python on itself.
(Review Data Last Updated: 2007-10-01 23:09:35 EST)
07-29-07 5 (NA)
(Hide Review...)  Excellent gateway book for Python
Reviewer Permalink
Having learned Perl first in my programming career, I pretty much ignored Python from the start. Perl's "TMTOWTDI" (There's More Than One Way To Do It) philosophy, coupled with the strange (to me) way that Python enforced blocking (with indention) kept Python in my peripheral vision for quite some time. Over the years, I've become more and more curious about Python, and decided to give it a shot. After a little browsing, I chose the curiously titled Dive Into Python. Dive Into Python may be an old book (the book was originally published in 2004), but it still stands as a great gateway for programmers from other languages to get a good sense of what Python is and how they can apply their current knowledge to learning the Python language.

Dive Into Python is the name of author Mark Pilgrim's site for learning Python. The text of the book is available, as are links to other great resources for learning Python. I noticed no differences between the print version and the published version. I have to commend the author on making his book freely available in electronic form as well as print form because it allowed me the freedom to have the book with me wherever I needed it, and increased the value of the book.

One of the major strengths of Dive into Python is the author's use of other languages to teach Python. The book contains examples from Perl, Java and Visual Basic to elaborate concepts familiar to all four languages. This helped me to use my knowledge from these other languages to grasp both the similarities and differences between the languages. When discussing dictionaries in Python, the author gives three comparisons, starting with Perl: "A dictionary in Python is like a hash in Perl. In Perl, variables that store hashes always start with a % character. In Python, variables can be named anything, and Python keeps track of the datatype internally." Directly beneath that is the comparison for Java programmers: "A dictionary in Python is like an instance of the Hashtable class in Java." Visual Basic follows: "A dictionary in Python is like an instance of the Scripting.Dictionary object in Visual Basic." Other books have done this, but what makes this especially friendly is how the author separates this from the text, so you don't miss it. Each of these examples is in a bullet list, rather than embedded in the text for brevity (I can easily see an author abbreviating the above as "Perl uses hashes, Java uses Hashtables, and Visual Basic uses Scripting.Dictionary", which could easily be missed).

Dive Into Python is comprised of the the following chapters: Installing Python, Your First Python Program, Native Datatypes, The Power Of Introspection, Objects and Object-Orientation, Exceptions and File Handling, Regular Expressions, HTML Processing, XML Processing, Scripts and Streams, HTTP Web Services, SOAP Web Services, Unit Testing, Test-First Programming, Refactoring, Functional Programming, Dynamic functions, and Performance Tuning. Most chapters have a similar format, generally starting with code for a specific projects. As with most any book, these projects are canned projects, ranging from printing methods in doc strings, printing ID3 info in a directory of MP3 files, or doing a simple Google search from the command line. The examples are complete, working programs, and the introduction of foreign concepts explained in the chapter really helped my learning process out. My natural curiosity took over, so I would find myself flipping back and forth in the chapter to see where the line of code, or idiom was used in the beginning program and start understanding how and why that piece of code worked. The author also makes a point whenever he uses a particular idiom from Python to note the last time it was used, or where it was introduced. I found it exceptionally helpful, though the technique lends itself better to an electronic format than it does in a printed book. Another useful technique is the bulleted list. A quick (and very abridged) example would be where the author is initially describing lists:

>>> li = ["a", "b", "mpilgrim", "z", "example"] (1)

(later on in the example)

(1) First, you define a list of five elements. Note that they retain their original order. This is not an accident. A list is an ordered set of elements enclosed in square brackets.

The above example is just a small taste of the format. For me this was a very helpful approach to understanding what each line was doing, and allowed the author to show the code first, and then explain the parts he wanted to elaborate more in the bulleted lists.

Dive Into Python is an excellent tutorial for learning the Python Language. The author is quick to point out new concepts and idioms of the language in a way that is both clear and at times very witty. The author also conveys his enjoyment of the language in a non-threatening and patient way, which makes Dive Into Python an excellent tutorial for those who are, like me, already familiar with other languages, and want to know more about Python. My only complaint about Dive Into Python is that there hasn't been an update since 2004 to this great text. Perhaps when Python 3000 is released, the author will once again revisit this book. As it stands, I highly recommend anyone looking for a good introduction to Python check out Dive Into Python.
(Review Data Last Updated: 2007-08-06 08:34:01 EST)
05-12-07 5 (NA)
(Hide Review...)  Brilliant Python introduction for experienced programmers
Reviewer Permalink
Definitely aimed at experienced programmers this books uses a very interesting approach to teach Python. Each chapter starts with a coding example that the author explains in a lot of detail, showing the most important language constructs and the best way to solve problems using Python.
(Review Data Last Updated: 2007-07-30 19:59:59 EST)
03-23-07 5 (NA)
(Hide Review...)  Easy to study
Reviewer Permalink
When studing a programming language from a textbook you often have to switch back an forth from the book to a computer to test some example or dig out some doubt. I was really pleased to see that you don't need to do it with this book.
The text covers python very well (IMHO), but also touches XML parsing, web services, test-first programming, performance tuning and other techinques that I found very useful.
It is also quite funny to read...
(Review Data Last Updated: 2007-06-24 16:32:09 EST)
09-06-06 3 2\5
(Hide Review...)  Not for Newbies to Python or OOP
Reviewer Permalink
As other reviewers have pointed out, this should not be your first Python book.

If fact, I think that really you should already know Python pretty darn well to be able to make use of the "efficient" syntax examples.

If you don't understand OOP already, you might find youself completely lost.

By the time you learn everything you need to know to understand this book... you won't need it.
(Review Data Last Updated: 2007-06-24 16:32:09 EST)
02-22-06 5 4\4
(Hide Review...)  Instant favorite
Reviewer Permalink
Very nice.. I had to buy this one after having read the whole PDF version...

It's not a beginner's guide - but that was pretty obvious. I think it's unfair to take away stars for that. ESPECIALLY because everybody can preview the PDF version online!
(Review Data Last Updated: 2007-06-24 16:32:09 EST)
01-26-06 5 9\9
(Hide Review...)  Polishing your Python
Reviewer Permalink
Dive into Python moves quickly into Objects and puts them to use in processing XML, HTML, and making RPC/SOAP calls. Many of the more powerful Python features are exposed like introspection, streams, unit testing, and generators. In addition, many gems are dropped along the way(classes as behaiving like dict...). DIPy is really a concise, intensive immersion into deep Python very skillfully done.

The first time I read DIPy I was fascinated but knew I was missing a lot. I backtracked and read Beginning Python by Magnus Lie Hetland and some other basic Python books. DIPy does not dwell on the basics - it tells you once and expects you to make sure you understand before moving on.

I am reluctant to admit it but it wasn't untill the third read where everything made sense(Chapter 17 is especially wonderful). It also became clear that DIPy ventures where no other Python book goes and the author accomplished something extraordinary.

In short, DIPy was not a quick read but well worth the effort.
(Review Data Last Updated: 2007-06-24 16:32:09 EST)
01-13-06 2 1\14
(Hide Review...)  essentially "Quick Python" second edition albeit abridged
Reviewer Permalink
I'm starting a new Python job soon and so picked up a hard copy of Dive Into Python. The book does jump right in with non-trivial examples. However I find all the references to external resources/websites disconcerting: these must certainly work much better in the free online version of the book. Furthermore I had occasion to pull my old copy of the "Quick Python Book" off the shelf in the meantime, and "Dive Into Python" is formatted in much the same way with footnotes embedded in the code examples. However, Dive Into Python does not pull it off as well as its predecessor. First, the footnotes don't stand out well enough: in the Quick Python Book they are bolder. Also there is too much wasted white space: in the Quick Python Book sometimes the footnotes were explained directly in the right hand margin, in Dive Into Python they always take up new lines under the code sample. These issues combined with a larger font and smaller page, and although the two books are approximately the same length in pages, I'm sure the Quick Python Book contains significantly more material. Yes Dive Into Python is much more up to date, but, other things being equal, compared to its predecessor, it's quite disappointing, at least in hardcopy.

UPDATE: I'm on another Python contract and have had occasion to pull this book off the shelf again. And I have another complaint: the index is next to worthless. I stand by my initial review, and am really baffled that it's gotten only 1 out of 14 helpful votes thus far, apparently mostly friends of the author or people that think Python and or this book is some sort of Golden Hammer
(Review Data Last Updated: 2007-06-24 16:32:09 EST)
01-12-06 2 1\8
(Hide Review...)  essentially "Quick Python" second edition albeit abridged
Reviewer Permalink
I'm starting a new Python job soon and so picked up a hard copy of Dive Into Python. The book does jump right in with non-trivial examples. However I find all the references to external resources/websites disconcerting: these must certainly work much better in the free online version of the book. Furthermore I had occasion to pull my old copy of the "Quick Python Book" off the shelf in the meantime, and "Dive Into Python" is formatted in much the same way with footnotes embedded in the code examples. However, Dive Into Python does not pull it off as well as its predecessor. First, the footnotes don't stand out well enough: in the Quick Python Book they are bolder. Also there is too much wasted white space: in the Quick Python Book sometimes the footnotes were explained directly in the right hand margin, in Dive Into Python they always take up new lines under the code sample. These issues combined with a larger font and smaller page, and although the two books are approximately the same length in pages, I'm sure the Quick Python Book contains significantly more material. Yes Dive Into Python is much more up to date, but, other things being equal, compared to its predecessor, it's quite disappointing, at least in hardcopy.
(Review Data Last Updated: 2006-07-07 12:41:43 EST)
10-12-05 5 5\6
(Hide Review...)  Great Python books for experienced programmer!
Reviewer Permalink
This book is very comprehsnsive introduction to python. Experienced programmer can find what they want in the well organize books. I like Mark's writing style, very clear and easy to read. Every chapter is beginning with a short python code with precise notation, and it's easy to understand what's python by this way. This book also contains some notes describing the difference between python and other programming language(Perl,Java, and ...). It's good for programmer who learns many programming language at the same time.
(Review Data Last Updated: 2006-07-07 12:41:43 EST)
10-10-05 4 3\4
(Hide Review...)  Excellent running introduction to the Python language
Reviewer Permalink
This book delivers exactly as advertised. Each chapter begins with a sizable chuck of Python code, which if you are new to the language you will be hard put to understand. The author then spends the rest of the chapter taking the code apart, expanding on each topic until it all makes sense. If anything does make sense, you feel at ease moving rapidly ahead. A great way to learn for an impatient geek like myself.

This is an introduction to the language, not a reference. Experienced Python developers need not apply.
(Review Data Last Updated: 2006-07-07 12:41:43 EST)
05-19-05 5 14\16
(Hide Review...)  Great Book for Experienced Programmers
Reviewer Permalink
If you've never programmed before, Python is an excellent language to learn modern programming techniques. But this book should not be your starting point. Get "How to Think Like a Computer Scientist: Learning with Python" by Allen Downey, Jeffrey Elkner, Chris Meyers and learn the basics. Then dive into this book.

Mark Pilgrim is an extremely accessible author. He teaches by example. Each chapter teaches powerful techniques and Python idioms by creating a useful program. Anybody with programming experience should be able to follow the examples and learn the language - although a few visits to the Python website docs may help along the way.

Each example is brief and annotated. The annotations combine with explanatory text to reveal the power of this incredible programming language. Python runs on virtually any popular platform and can be downloaded for free. Mark's excellent work will help empower the reader to do useful things almost immediately.

One of the early example programs reads through a directory of MP3 files and lists the header information, such as artist, album, etc. This is accomplished with just a few lines of code.

Mark makes the point that everything in Python is an object. While this is not a text on hard-core object oriented programming, it is an excellent opportunity for the OOP beginner to get a handle on it.

Pilgrim also emphasizes good programming techniques, such as documentation and unit testing. In one of the later chapters he even creates a Python unit testing framework that works for testing Python code to see if it performs as expected. Again, this example is annotated, used to develop both the software engineering skill of unit testing AND properties of the Python language.

He also covers accessing websites and parsing HTML and XML code. This is just an introduction to these subjects. Those interested in learning this in depth will want to continue their reading with other books and web pages focused on these topics.

The book is not dry or boring. It is not a manual. It is an excellent example of how to use the language AND how to think like a master programmer. The latter is reason enough to buy the book even if you're familiar with Python and have been coding for years.

It's a fun read. It's a great second book for somebody learning to program. It's a powerful example for those wishing to improve their programming style and/or learn object programming. I cannot say enough good things about it.

Furthermore, Mark maintains a website and blog. His articles vary from technically dense to enticingly interesting. He's even responded to email I sent him. How many authors do that?

If you found your way to this page, GET THE BOOK! Being here is proof that it's a good match for you. And if you just want to learn to program and have no experience - get the book anyway, then get a more basic book to go with it. DIVE INTO PYTHON will make you a quality programmer if you work your way through it.
(Review Data Last Updated: 2006-07-07 12:41:43 EST)
04-04-05 5 3\5
(Hide Review...)  Best Python Book for Experienced Programmers
Reviewer Permalink
The online-tutorials and references and books I've read so far simply didn't cut it.

This "dives" right from the start into the Python idioms that make the language so cherished by its followers.

Wonderful book, and wonderful language.
(Review Data Last Updated: 2006-07-07 12:41:43 EST)
01-23-05 5 8\11
(Hide Review...)  Nice intro to Python
Reviewer Permalink
This is a fairly comprehensive intro to Python that will be of most benefit to those that already have some programming knowledge. Pilgrim's writing style is fairly straightforward and concise. Examples are appropriate and understandable.

One thing I wish I'd have known prior to purchasing the book is that the entire thing can be found at www.diveintopython.org.
(Review Data Last Updated: 2006-07-07 12:41:43 EST)
12-29-04 5 45\49
(Hide Review...)  Great book & it comes for free!
Reviewer Permalink
I am definitely a C++ & Java aficionado (or bigot , you might say) but I think Python is one scripting language that is worth some studying. This book is a very clear, practically oriented introduction, best suited for people who already know how to program in some other language. It gives you a solid knowledge of Python fundamentals with an accent on parsing HTML and XML. Ah I forgot the best part... you do not have to buy the book! It is available for free download at diveintopython.org ... but the book is so good and the price so "right" that you might consider buying the hardcopy. Thank you Mark!
(Review Data Last Updated: 2006-07-07 12:41:43 EST)
11-07-04 5 2\3
(Hide Review...)  Fun introduction to Python for programmers
Reviewer Permalink
This is a fun introduction to Python that goes from installations, through the basics of the language, and into specific tasks. The text is built for programmers who already know a language. The type of reader who can handle a fairly terse text that assumes that you know the fundamentals of imperative programming languages (e.g. C, C++, Java, etc.).

I enjoyed the book a lot. The book gave me more credit than a book like Learning Python which starts at the very basics. And for a book of relatively few pages it gets into some cool topics like refactoring, unit tests, and functional programming very quickly.

If you want an introduction to Python that doesn't talk down to you then dive in Python here.
(Review Data Last Updated: 2006-07-07 12:41:43 EST)
  
                  Reader Reviews 1 - 20 of 20                 
  
  
  
  
  
  

Because the data used to generate this site come from outside sources, VeryWellSaid.com cannot guarantee the completeness or accuracy of the data.
Search VeryWellSaid™
Google
Web VeryWellSaid™
New subjects are added every week.
View Subjects Below by:
* Top Selling
 (click category name, left)
* Top-Rated Top Sellers
 (click 'Top Rated', right)
In the news...  
Dubai\UAE Top Rated
Influenza\Bird Flu Top Rated
Iraq Top Rated
Supreme Court Top Rated
All Books Top Rated
Arts Top Rated
Photography Top Rated
Digital Photography Top Rated
Digital Cameras Top Rated
Biography Top Rated
Business Top Rated
Management Top Rated
Marketing Top Rated
Sales Top Rated
Stocks Top Rated
Bonds Top Rated
Real Estate Top Rated
Trading Top Rated
Commodities Trading Top Rated
Time Management Top Rated
Starting A Business Top Rated
Children's Top Rated
Comics Top Rated
Computers Top Rated
PC Top Rated
Mac Top Rated
Programming Top Rated
Design Patterns Top Rated
.Net Top Rated
C# Top Rated
Vb.Net Top Rated
Asp.Net Top Rated
Java Top Rated
Python Top Rated
PHP Top Rated
Perl Top Rated
Javascript Top Rated
Ajax Top Rated
CSS Top Rated
Open Source Top Rated
SQL Top Rated
Databases Top Rated
Oracle Top Rated
MySql Top Rated
Sql Server Top Rated
IIS Top Rated
Apache Top Rated
Linux Top Rated
Windows Server Top Rated
Project Management Top Rated
HTML Top Rated
UML Top Rated
IT Certifications Top Rated
Cisco Certifications Top Rated
MCSE Top Rated
MCSD Top Rated
Cooking Top Rated
Italian Cooking Top Rated
Vegetarian Cooking Top Rated
Wine Top Rated
Engineering Top Rated
Entertainment Top Rated
Health Top Rated
Nutrition Top Rated
Dieting Top Rated
Sex Top Rated
History Top Rated
Military History Top Rated
British History Top Rated
Middle East History Top Rated
Land Battles Top Rated
Naval Warfare Top Rated
Air Warfare Top Rated
9/11 Top Rated
Terrorism Top Rated
Home Top Rated
Mortgage\Home Equity Loan Top Rated
Cars Top Rated
Car Buying Top Rated
Sports Cars Top Rated
Cat Top Rated
Humor Top Rated
Horror Top Rated
Law Top Rated
IP Law Top Rated
Legal History Top Rated
Fiction Top Rated
Oprah's Book Club Top Rated
Medicine Top Rated
Cancer Top Rated
Stroke Top Rated
Heart Disease Top Rated
Fertility Top Rated
Diabetes Top Rated
Pharmacology Top Rated
Back Problems Top Rated
Menopause Top Rated
Thyroid Top Rated
Pain Top Rated
Organic Chemistry Top Rated
Immune System Top Rated
Mystery Top Rated
Nonfiction Top Rated
Outdoors Top Rated
Running Top Rated
Radio Control Models Top Rated
Guns Top Rated
Parenting Top Rated
Divorce Top Rated
Professional Top Rated
Reference Top Rated
Religion Top Rated
Romance Top Rated
Science Top Rated
Physics Top Rated
Chemistry Top Rated
Astronomy Top Rated
Psychology Top Rated
Science Fiction Top Rated
Sports Top Rated
Teens Top Rated
Travel Top Rated
USA Top Rated
Europe Top Rated
France Top Rated
Italy Top Rated
England Top Rated
China Top Rated
All Books Arts Biography Click Here For An A-Z Index Of All 213 Best-Seller Subjects Business Children's Comics
Computers Cooking Engineering Entertainment Health History Home Horror Humor Law Fiction Medicine Mystery
Nonfiction Outdoors Parenting Professional Reference Religion Romance Science Sci-Fi Sports Teens Travel
In Association with Amazon.com

Cache miss
(not cached)