mentby.com
Blog | Jobs | Help | Signup | Login

What books do you recommend?



Hi,

I wan't to buy some books about python 3. Do you have any recommendations?

I started with no previous programming experience, and I've finished a few
tutorials  and I guess I can be considered a beginner.

My problem, though, is I still find it difficult to write meaningful code or
use the built in libraries effectively and/or correctly because I can't find
example code to mimic. I tried sifting through ActiveState recipes page, but
most of the code seems uninteresting or useful only if utilized in a bigger
project.

I hope you have some suggestions.

Thanks a lot.


Khalid Tue, 08 Dec 2009 21:39:06 -0800

What do you mean by "meaningful" code?  I think that might be your issue.  

What I'd recommend is to figure out *what you want to accomplish*.  Python is just a means

to accomplish something, but what matters is the accomplishment.  You may want to write a

GUI desktop app for a specific purpose.  You may want to create a web-based app.  You may

want to write code to process information, scrape web sites...create a game, create some

kind of tool.  

Once you decide on that, you will be more focused on what you need to learn.  If, for

example, you need to have persistent storage of information, you then might want to

read up on databases and perhaps SQLite in Python.  Etc.  Then you will find code that

will be applicable to your concerns, and help you learn.  I feel that learning something

"in a vacuum", unrelated to some personal creative goal, just doesn't work well.

Che


Che M Wed, 09 Dec 2009 08:30:29 -0800

What do you mean by "meaningful" code?  I think that might be your issue.

What I'd recommend is to figure out *what you want to accomplish*.  Python is just a means
to accomplish something, but what matters is the accomplishment.  You may want to write a
GUI desktop app for a specific purpose.  You may want to create a web-based app.  You may
want to write code to process information, scrape web sites...create a game, create some
kind of tool.

Once you decide on that, you will be more focused on what you need to learn.  If, for
example, you need to have persistent storage of information, you then might want to
read up on databases and perhaps SQLite in Python.  Etc.  Then you will find code that
will be applicable to your concerns, and help you learn.  I feel that learning something
"in a vacuum", unrelated to some personal creative goal, just doesn't work well.

Che

I agree with Che.  For me, picking a project then completing it is the best way for me to learn a language.

http://www.diveintopython.org/

The book there is fantastic and all the links on the right side of the page lead to other great resources.
The only resource that I feel was left out was this one.  I've learned a lot from this site too.

http://www.uselesspython.com/

Good luck...

--
Ronald Weidner


Ronald Weidner Wed, 09 Dec 2009 09:00:46 -0800

You might want to check out the 2nd Edition of Beginning Python,
published in Sept. 2008. http://hetland.org/writing/beginning-python-2/

It includes the standard coverage of core Python syntax with a forward
look at core Python 3 features (it was forward at the time). It also
contains a number of project chapters at the end that span everything
from text processing, to GUI building to network programming. They're
not industrial strength apps, but I'd say a level above the typical
toy examples.

HTH,
Serdar


Serdar Tumgoren Wed, 09 Dec 2009 09:05:11 -0800

I'd recommend Doug Hellman's Python Module of the Week blog (PyMOTW)
at  http://www.doughellmann.com/projects/PyMOTW/

He goes into each of the standard library modules and gives examples
of them in use.

Dive Into Python 3 by Mark Pilgrim is also good for getting up to
speed on Python 3.  http://diveintopython3.org/

And I recommend my book, "Invent Your Own Computer Games with Python"
which is freely available at  http://inventwithpython.com
It doesn't go into the standard library modules, but it does have
several complete programs that are easy to read and understand. The
book is aimed at complete beginners and young adults (but is not
"kidsy").

-Al Sweigart http://inventwithpython.com


Albert Sweigart Wed, 09 Dec 2009 10:30:51 -0800

There are very few Python 3 books out there.
The only one I've used and can recommend is Programming in Python3 by
Summerfield

Other general Python books that will still be effective albeit written for
Python 2
are all specialised topic guides such as:

Python Network Programming - APress
WxPython in Action - Manning
Python Programming on Win32 - OReilly

Otherwise try to get a cheap/secondhand copy of Python in a
Nutshell(OReilly)

HTH,

--
Alan G
Author of the Learn to Program web site http://www.alan-g.me.uk/l2p/


Alan Gauld Wed, 09 Dec 2009 11:23:20 -0800

To Alan's list, I'd also add Learning Python 4th Edition. It came out
in October and covers Python 3 and 2.6, though I'm not sure if it
includes the heftier code samples the OP was interested in...


Serdar Tumgoren Wed, 09 Dec 2009 11:35:55 -0800

Is there a good Tutorial that you guys recommend, where you actually get a
useful exercise to try and do and then you can be walked through different
solutions?  I'm not a Programmer by trade, but I do a bit of coding for
Administrator type functions and have to debug stuff and starting to do this
on Python, so something not quite so incredibly dense would work better, I
just don't know where to start.

Becky


Becky Mcquilling Wed, 09 Dec 2009 12:02:23 -0800

greetings khalid, and welcome to Python!

based on your background, i would like you start with Python 2, and i
have several reasons for making this suggestion:

- most beginner-oriented tutorials and books are still on Python 2
- Python 2 is not obsolete, and 95% of worldwide code still uses it
- knowing Python 2 is not going to stop you from learning Python 3 quickly

true beginners like yourself include (in no particular order):

- hello world!: computer programming for kids and other beginners by
sande  http://cp4k.blogspot.com/-  how to think like a computer
scientist by downey and elkner  http://openbookproject.net//thinkCSpy/
- a byte of python by swaroop (both python 2 and python 3 versions) http://www.swaroopch.com/notes/Python
- learning to program by gauld  http://www.freenetpages.co.uk/hp/alan.gauld/
- python for the absolute beginner by dawson
-livewires course  http://www.livewires.org.uk/python/home

you can find more resources here: http://wiki.python.org/moin/BeginnersGuide/NonProgrammers

some of the books that have been suggested in this thread do require
some programming experience, so i wanted to provide a few specifically
targeted towards non-programmer beginners.

hope this helps!
-- wesley
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"Core Python Programming", Prentice Hall, (c)2007,2001
"Python Fundamentals", Prentice Hall, (c)2009
     http://corepython.com

wesley.j.chun :: wescpy-at-gmail.com
python training and technical consulting
cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com


Wesley Chun Wed, 09 Dec 2009 13:27:07 -0800

I just finished Michael Dawson's Python Programming for the absolute
beginner.  I thought it was pretty good, with only a few minor nit
picks.  My programming background was limited to MATLAB and some
Visual Basic scripting for excel, access etc making me the target
audience.  I liked the examples, and by the end has you put together a
simple asteroid-style game (with livewires and pygame).  If my C class
back in undergrad had promised I'd be making some shooting games in
the end perhaps I'd have kept with it and gone into computer science
or something.

I also encountered a previous posters problem with the pizza not
falling down.  If you use the latest version of livewires the Sprite
class does not accept velocity arguments and you have to invoke a
separate Mover class to make it move.  Considering I had no experience
with python before this book, that I was able to open the games module
and determine what changed says a lot about what can be learned from a
'beginners' book.


Tim Goddard Wed, 09 Dec 2009 15:14:46 -0800

What an interesting question.
I'm not aware of any tutorials that do this (although mine does in a few
cases
- eg the address book and myultiplication table examples - its not a
general
approach). I'll be interested to see if anyone else knows of anything.

There are plenty of beginners tutorials including mine.
I just don't know of any that use multiple solutions to a single problem
as a teaching tool.

--
Alan Gauld
Author of the Learn to Program web site http://www.alan-g.me.uk/


Alan Gauld Wed, 09 Dec 2009 16:44:52 -0800

update: alan's latest tutorial lives here:  http://www.alan-g.me.uk/tutor/

-- wesley
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"Python Web Development with Django", Addison Wesley, (c) 2009
     http://withdjango.com

wesley.j.chun :: wescpy-at-gmail.com
python training and technical consulting
cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com


Wesley Chun Wed, 09 Dec 2009 17:18:48 -0800

"Alan Gauld" <alan.gauld*******> dixit:

see also:  http://inventwithpython.com/  

Denis


Spir Wed, 09 Dec 2009 17:24:07 -0800

And I did see yours which was great.

But the reason I ask this, is because there are SO many different approaches
you could take to a single problem, how do you know which is correct or why
one is better than the other?  You can dig yourself in to holes with more
complex problems, and not understand why.

Second thing, I'd like the answer to be somewhere, in a tutorial.  If I
really didn't get the solution, it helps to have the solution walked through
and next time, I may be able to solve it (hopefully, anyway).  I'm so new at
this, that sometimes, I'm completely stumped and a few hints would go a long
way, then having the answer presented, with an explanation, even further.

Becky


Becky Mcquilling Wed, 09 Dec 2009 17:52:01 -0800

I guess that depends a lot on what sorts of problems you are thinking in terms of.  At least in many cases, perhaps one of the points of the Zen of Python is useful:

"There should be one--and preferably only one--obvious way to do it."

I myself have been trying to stick to that for now; to learn some standard ways to do certain things, to not reinvent the wheel but instead to use the standard library and modules to do what I need done (since someone already needed it done before and coded it well then).    Yes, gaining more flexibility in how you could approach something is also good, but for learning I have tried to establish a core of basic approaches first, and alternate approaches second.  I feel that if it works, it's readable, simple, and re-usable, I put it in the toolbox.

This list is one good resource for comparing notes on "correctness" of approach.  You'll see people ask if something is "Pythonic" or not, etc.


Che M Wed, 09 Dec 2009 19:35:59 -0800

Good points.  I guess being as new as I am I'm not always sure of the
obvious way to do something or what I think is right, may not be an having
explained examples are best, particularly after I've spent time solving the
problem.

But others may not find this useful.  I admit that learning this stuff does
not come particularly easy to me, so I tend to need more hand holding than
others.

Becky


Becky Mcquilling Thu, 10 Dec 2009 10:31:52 -0800

One thing to remember is that it is always subjective.
There is no such thing as an absolute "right way to do it"
There are too many factors and virtually all solutions reflect
a set of compromises by the designer

Its not easy to learn a new way of thinking and thats essentially
what programming is.  Some people will always find it easier
and some harder but it is fundamentally a challenging activity
for everyone - and that's part of what makes it fun!

--
Alan Gauld
Author of the Learn to Program web site http://www.alan-g.me.uk/


Alan Gauld Thu, 10 Dec 2009 14:29:32 -0800

Thanks, Alan.  It is fun and on many levels I welcome the challenge.

I won't continue to divert this thread from good books, but I will continue
to look for more and more tutorials and will post it  The more the more
merrier...

Becky


Becky Mcquilling Fri, 11 Dec 2009 03:06:40 -0800

I read through all the posts to make sure someone didn't already
recommend this, but The Python Phrasebook is a great one.  It has
working code for a whole bunch of things like sending emails and reading
websites just to name two.  You can type them in and run them.  It
allowed me to quickly learn and appreciate Python.

http://www.amazon.com/Python-Phrasebook-Brad-Dayley/dp/06723[..]

I am not suggesting Amazon, it was just the first link I found.  I see
it in bookstores like Borders.

--
Jeff

Jeff Johnson
jeff*******
Phoenix Python User Group - sunpiggies*******


Jeff Johnson Fri, 11 Dec 2009 06:05:58 -0800

Just on that topic of tutorials, have you seen www.ShowMeDo.com?  
They have right now 516 screencast tutorials related (directly or indirectly)
to Python.  This way you can watch a video and usually hear a person
into a series on a particular topic, like GUI programming, databases, etc.
It's a different way to learn, and I find it a great service to the Python
(and other programming or computer use) community.

Che


Che M Fri, 11 Dec 2009 11:38:47 -0800

I'll echo this. I found the ShowMeDo site to be an excellent source,
especially
for learning the more hands-on type skills like using Eclipse/PyDev etc.

--
Alan Gauld
Author of the Learn to Program web site http://www.alan-g.me.uk/


Alan Gauld Fri, 11 Dec 2009 16:00:45 -0800



Related Topics

Post a Comment