tags:

views:

148

answers:

7

I just finished reading the official Python tutorial and learnt a lot. I have written a few programs for my own use and feel confident enough about the language to some extent.

However, the tutorials are not complete. I have seen people make mention of stuff like __getattr__ and decorators - stuff which I have no idea about since the tutorial does not cover it. This is just one example I am giving, I think there are plenty. Of course I can always Google the terms and understand them, but I feel this approach won't do me justice.

Since obviously I feel somehow missing something, understanding the above mentioned and some other commonly used terminology would make me confident in using the language and perhaps in facing interviews.

What book do you recommend for learning some more of the language? I am aware there are other discussions on the topic on SO, but my question is specific for someone who knows the basic language pretty well but wants to get a grasp of the advanced topics.

A: 

Dive Into Python

gruszczy
Dive Into Python is my no means a bad book, but many parts are old (and wrong) by now.
THC4k
Dive into Python 3 is much newer: http://diveintopython3.org/
delnan
+1  A: 

For a contrary take (read the background) compared to Dive Into Python consider Zed Shaw's Learn Python The Hard Way.

Manoj Govindan
Isn't that for beginners? (Learn Python the Hard Way)
Mickey R
True. Nonetheless I thought that it would be a good next step after finishing with the official tutorial, especially given the exercises.
Manoj Govindan
+1  A: 

Programming in Python 3 is a good choice to get acquainted with Python (and its new features as well). Beware, though, that not all 3rd party libraries support Python 3 yet—still, it is a very good read, and most of its contents applies to Python 2 as well.

igor
+1  A: 

I learned from Learning Python and really liked that book. But that was almost 10 years ago ;-) The 4th edition seems to cover all the new aspects (decorators,iterators,generators) of Python that became so important over the years.

Another book I really liked is Think Python because it also teaches debugging, which is one of the most important skill in programming (imho).

THC4k
A: 

Naturally but sadly, most good books on python focus onteaching beginners (and most assume no programming knowledge at all). I don't know a single source of information on advanced Python features.

However, Python progression path - From apprentice to guru has a whole bunch of relatively advanced features. Hidden features of Python lists tons of (mostly) useful things they don't tell you in your beginner's tutorial. There are other SO questions like these.

delnan
+1  A: 

I've enjoyed, learned a lot from and would recommend Building Skills in Python:

http://homepage.mac.com/s_lott/books/python.html

It's by S. Lott who provides a LOT of answers to python questions on this very forum.

The Python Tutorial Screencasts are really good for watching on the move.

I've been working through some of these:

http://wiki.python.org/moin/BeginnersGuide/Programmers. One I keep going back to is Software Carpentry:

http://www.swc.scipy.org/

Blip.tv has lots of Pycon videos, I learned a lot in a little time from Senthil Kumaran's "How to Solve it with Python":

http://blip.tv/file/3359399

davey
@davey: Thanks for the Software Carpentry link!
sukhbir
A: 

I would first check out Dive Into Python 3 (not to be confused with Dive Into Python).

When you're done with that and ready for some more serious stuff, check out Foundations of Agile Python Development. It will teach you about general coding practices and organization, which Dive Into Python 3 will not.

thebackhand