I am a fairly experienced programmer, mostly C, C++, Java and C#... Can you recommend any Python books that would help me to get the most out of my existing experience? Many Python books that I have read good reviews about seem to be aimed at the novice programmer - I'd like to find something that "gets right down to business". There are many good resources on the web of course, but I would like to have a real book that possibly goes a bit into detail about specific concepts, techniques and patterns that are specific to Python.
Related questions:
Dive into Python [1] is a bit outdated but still useful.
[1] http://diveintopython.net/toc/index.htmlI'll never tire of recommending Code Like a Pythonista: Idiomatic Python [1].
It is not a book but for experienced programmer it contains more than most books.
[1] http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.htmlI like Beazley's Python Essential Reference [1] a lot. I have the 3rd edition [2], but apparently the 4th edition [3] will be out soon.
[1] http://www.dabeaz.com/writing.htmlI'm not much for fancy book lernin', so I usually stick to the tutorials off the Python website.
Start with the python http://docs.python.org/tutorial/, get as far as you can go without boring yourself, and then just use the library (http://docs.python.org/library/) for reference.
Good luck learning - it's a fantastic language. It's basically pseudocode that's not so pseudo!
A lot of people recommend Core Python [1]. I haven't ready many other Python books to compare it to, but I think it's well written.
The fellow who hosts the Python 411 podcast [2] says if he were stranded on a desert island with only one Python book, it would be Core Python.
Update: My favorite Python book is now Python Essential Reference [3]. It's pace is more suitable for experienced programmers than that of Core Python. Also, it covers things beyond language syntax that are hard to find in other Python books.
[1] http://rads.stackoverflow.com/amzn/click/0132269937Starting with Python 3 then Programming in Python 3: A Complete Introduction to the Python Language [1] together with Expert Python Programming [2] when you have to start delivering applications (packaging, installers, libraries, etc.)
O'Reilly Programming Python (third edition) is good, but very long, and I am not sure when it is a tutorial and when it is a reference.
[1] http://rads.stackoverflow.com/amzn/click/0137129297I sometimes like to graze the Python Cookbook [1] over at ActiveState. It stirs my brain up and makes me think of things in ways I normally wouldn't. Recipes by certain contributors (e.g. Raymond Hettinger [2]) are particularly instructive to study.
[1] http://code.activestate.com/recipes/langs/python/People still read books?
I'd recommend going through a tutorial. When you finish or get tired of it, use Stack Overflow and Google to resolve questions you have about the language as they come up.
Here's the official tutorial:
http://docs.python.org/tutorial/index.html
And official documentation:
This post is a good introduction to the python way of working.
What tools to use, the packing system, etc:
http://mirnazim.org/writings/python-ecosystem-introduction/
Always been a fan of A Byte of Python [1] - made for both new and experienced programmers.
[1] http://www.swaroopch.com/notes/PythonYou could take a look at the fresh Expert_Python_Programming [1] or Programming_Python [2] does a very good job.
[1] http://www.packtpub.com/expert-python-programming/bookComing from Java (and occasional Bash scripting), and learning how to do basic stuff in Python a while back, I had two books available to me at work:
Unexpectedly, I found myself more frequently using Learning Python, even though it seems much more like it's "aimed at the novice programmer"; something I was not, really. I just noticed I found the basic syntax stuff and examples I needed faster in that book.
Just my 2 cents about these 2 books. :) It may well be that Programming Python [3] or some such is what you need.
[1] http://oreilly.com/catalog/9780596100469/Have a look at Programming Collective Intelligence: Building Smart Web 2.0 Applications [1]. It is great for web scraping and data mining using Python
[1] http://rads.stackoverflow.com/amzn/click/0596529325Dive into Python 3 → Pro Python
I guess what you are looking for is more a syntactic book that will tell you how to do something you already understand. The best I can recommend for this is a small tutorial on the Internet. Something like Advanced Python will get you to the point and if you have further questions, you just have to read the documentation.
One thing I'd also like to mention here that helped me quite a bit in addition to the other great resources folks have provided here is "Thinking in Python" by Bruce Eckel. It is available at http://www.mindview.net/Books/Python/ThinkingInPython.html
How to think like a computer scientist ( http://openbookproject.net//thinkCSpy/ ) and Dive into Python as Steve Losh already mentioned. Two most amazing online references/tutorials ever!
I would go for
Beginning Python: From Novice to Professional [1] (Books for Professionals by Professionals)
[1] http://rads.stackoverflow.com/amzn/click/1590599829Learning Python by Mark Lutz is an awesome book.