tags:

views:

302

answers:

5

I have a friend who I have been trying to help learn computer programming and I have a question on his behalf. He's interested in doing some biological modeling for his own research and needs to visualize his data using graphical elements, but he needs more power than can be found in Excel or similar solutions. I naturally sent him to Python as his language of choice, since he had no computer science background at all. Initially, he read "How to Think Like a Computer Scientist Using Python", but he has since moved on very quickly and is now looking for more.

I've thought about recommending Learning Python or Python in a Nutshell or Programming Python or some similar O'Reilly book. However, he needs some more CS background stuff and I'd like to recommend him to a resource that has some good CS concepts using Python in it. I'd also like to avoid books written as the typical "learn-this-language-in-24-hours-so-you-can-impress-your-boss/interviewer" publication. Any suggestions from Python programmers out there?

Update: thanks to everyone for their great suggestions! Any thoughts on making this a community wiki? I'm new to SO and don't know what the culture around that is.

Update 2: I just made it a CW since I didn't feel right picking one answer as they were all good. Thanks again!

+1  A: 

I love John D. Cook's Endeavor blog. He recommended "Expert Python Programming" and "Core Python". I'm reading the second one and agree with his assessment. The rest of his writing is so good that I'd have respect for anything John puts out in public. It's worth a look on his say-so.

And everyone who is interested in Python should be looking at S. Lott's writings. From what I've seen so far, they're excellent.

Both John Cook and S. Lott are SO leading lights.

duffymo
+3  A: 

Dive into Python by Mark Pilgram is a great book. It starts with the basics but gets into plenty of advanced features of Python. It's also freely available online.

Python 2.5

Python 3.0 (Note: Still in draft form)

Your friend should also check out SciPy and matplotlib for use in his scientific research.

David
+3  A: 

Uh, are you implying that "Python in a Nutshell" is

written for as the typical "learn-this-language-in-24-hours-so-you-can-impress-your-boss/interviewer" book

...?-) Ah well, nevertheless, for "more CSy" stuff I'll recommend Zelle's book -- the Nutshell is relentlessly pragmatical, dipping into theory only where I strongly believe it's actually relevant to best programming practice, while Zelle's a typical college level CS 101 textbook (just using Python rather than other languages).

Alex Martelli
Oh, no, not at all. I guess I should've worded that better.
daveslab
Edited to fix my wording :)
daveslab
NP, I did (and do) have a smilie there;-)
Alex Martelli
+3  A: 

There are parts of Expert Python Programming: Best practices for designing, coding, and distributing your Python software that are very nice.

codeape
It's a nice book, but it's beyond basic Python.
Geo
+1  A: 

Just in case there is any temptation to move on to a similar sounding book - stay away from Practical Programming: An Introduction to Computer Science Using Python it really doesn't do justice to either python or computer science.

mikej