Join 3,499 readers in helping fund MetaFilter (Hide)


beginner book on python
June 27, 2012 3:46 AM   Subscribe

I have done some java but I am still a novice programmer and would need to start from a beginner's level. Could anyone please give recommendations for suitable good books. I will also try the official python tutorial as well, but I don't find online resources on their own to be as good as having a book to supplement helpful online materials.
posted by conrad101 to Computers & Internet (9 answers total) 19 users marked this as a favorite
 
Zed Shaw's website, Learn Python the Hard Way.
posted by SillyShepherd at 4:34 AM on June 27, 2012 [4 favorites]


+1 on Learn Python the Hard Way. Udacity's intro to programming is taught in python.
posted by phil at 4:45 AM on June 27, 2012


Learn Python the Hard Way is good. So is Snake Wrangling for Kids.
posted by COD at 4:46 AM on June 27, 2012


I liked Beginning Python. It dedicates several chapters to the Python Standard Library, which is really important for practical Python skills. It looks like Learn Python The Hard Way goes into more detail on language fundamentals but leaves out some of the library stuff. Try both!

I started on Learn to Program, in Ruby by Chris Pine. It's great if you want to check out another language (that's very similar to Python).
posted by scose at 6:58 AM on June 27, 2012


A Tour of Go, for Google's Go language, popular with Python and Ruby programmers for some reason.

I have been doing Stanford's free algorithms class. Project Euler is fun for practice.

If you want a real changeup, try Learn You A Haskell for Great Good and Learn You Some Erlang For Great Good.
posted by mkb at 7:00 AM on June 27, 2012


Oh, How To Design Programs, all the way! It's about Scheme, a dialect of Lisp, but I've found nothing that teaches the fundamentals of programming - e.g. thinking in processes and problem solving - better.

It also makes a great lead in to Structure and Interpretation of Computer Programs. I've yet to finish it, and am still very much an amateur, but around the web it seems to be considered one of the best introductions to programming and computer science.

If video is more your thing, then Stanford has some excellent classes on YouTube. CS106A has a wonderful and engaging teacher. Taught in Java.

I know you were looking for Python recommendations, but I think these resources are really worth considering.
posted by jonrob at 7:04 AM on June 27, 2012


Python is one of the most versatile languages out there! I always recommend it to beginning programmers because it is easy, powerful, and commonly used in the Real World. I think you've made a good choice. :)

For books, I like Beginning Python. Websites like Project Euler and Sphere Online Judge are good for honing your problem-solving skills, but do very little in the way of helping you learn the specificities of a language. The best way to really get a new language is to make something real. My suggestion is to think of a biggish project you are interested in and keep it in the back of your mind as you do the book exercises. After you start to feel comfortable, dive into your project. There will be lots of things that you don't know, but you can Google them and use your books to figure out solutions. Do a search for 'beginning programming projects' if you're at a loss for ideas.
posted by semaphore at 7:48 AM on June 27, 2012 [1 favorite]


think of a biggish project you are interested in and keep it in the back of your mind...

I learned to program long ago, when there weren't as many books (or languages!) One thing that I think may help, is to have a project or goal in mind, before you start. (I remember, for some reason, I wanted to write a blackjack game.)

Learning little snippets of a language through tutorials and exercises is fine, but it's the ability to string the pieces together into a coherent whole that does what you intend it to do, that makes a programmer. And there are almost always several ways to do something, so even if you haven't completed the tutorial about feature $Foo that would make it easy to accomplish the next sub-task you need to move forward with your project, you can implement it some other way. (With the side benefit that when you do learn about feature $Foo, it'll really stick: "OH, so that's how I should have solved that problem the other day! It would have been much easier/cleaner/faster than what I actually ended up doing!"
posted by spacewrench at 8:05 AM on June 27, 2012


On this page you will find the three books by Brian Harvey called Computer Science Logo Style, free for personal use. You can also buy them in hardcopy if you want to.

http://www.cs.berkeley.edu/~bh/logo.html

The books spend only one chapter on the turtle graphics that Logo used to be so famous for, instead focusing on introducing various programming and compsci topics you rarely see covered in beginners' books. They manage that because Logo is such a simple but expressive language that you need to know only a handful of things to be able to construct programs that do interesting things.

Of course, Logo doesn't seem to be a suitable language for real world development (at least I don't know of any serious projects done in Logo), so you need to get comfortable with another language to use the things you learn from these books in practice. However, I think you should at least check out the table of contents for each book before making up your mind whether you want to read them.
posted by tykky at 8:12 AM on June 27, 2012


« Older Please give me some strategies...   |  WANTED: shoe recommendations f... Newer »
This thread is closed to new comments.