Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm planning to learn Python. I know html, javascript, vb .net, ado .net, ms sql, and a little c#. So I have a good working knowledge of programming and capable to write various desktop and web applications.

Previously I learn those languages by reading books from page 1 to the end. Then build meaningful applications. Typically I will use Wrox beginning or Sam Unleashed books. And each of those books will exceed 900++ pages. I feel this way of learning a programming language is slow and tiresome.

So, this time for learning python language, my intent is to do it another way. I plan not to read book from cover to cover, but just using a few online introduction to Python tutorials. I want to build meaningful applications straight away from minimal knowledge of python and struggle all the ways to the application completion. Of course, I will consult SO and other sites to solve my python problems.

Is that way of learning python viable or I should stick with reading books from cover to cover before building any meaningful application?

Meaningful applications here mean real world applications like ecommerce site, blog, image converter (desktop app), password manager (desktop app), Invoicing system (desktop app), and media player (desktop app). For your information, I have created those meaningful applications in vb .net.

share|improve this question
I think this more abut the sorry state of books. Authors seem to be paid per page these days. They've forgotten that brevity is a virtue. –  John Smith Jul 4 '11 at 11:59
learnpythonthehardway.org –  deadalnix Jul 4 '11 at 13:01

5 Answers 5

Well, you know what they say

A few months in the lab can frequently save a few hours in the library.

No, seriously now. Sure. Sure it is. (Personally, I also think some of those books nowadays are getting ridicously thick). It's only a question is it worth it?

And you don't have to go for a 900 pages book; for Python at least there are lovely alternatives in a (up to 400 pages) rank.

If you really want to go via web-tutorials, that's a viable option too - but in my experience, books are regularly better structured (given the fact that they've got enough space in them for all the sidenotes). Plus, you can read them while away from keyboard, and think about it in the meantime. By the time you get to your computer, you already have a general idea of what you want to do.

share|improve this answer

I think you should read some introductory chapters of a book or a tutorial which makes you familiar with the syntax. Then do as you suggested. State a problem you want to solve using Python and try to implement it. But don't start with a complex problem, do start with simple problems. Because otherwise, you might get overwhelmed by the many subproblems you need to solve together with the Python syntax and libraries you need to get familiar with for each subproblem. And this may let you behind frustrated. Just start with simple problems and continue with more complex ones as you gain confidence. This will give you success experiences and you can gradually learn more advanced features of Python. Have fun :-)

share|improve this answer

What I usually do when I want to learn a new language is find a compact introduction (those titled "Programming Guide" are usually the best candidates), read through it, skipping paragraphs and chapters I can tell I don't need right now; then I find a reference guide and get cracking on a few real-life programs. Recently, I've also made a habit of reading others' source code to get a feeling for the language's culture, as well as stumble on simpler ways of solving certain problems.

So yes, it is absolutely possible, and if that's how your mind works, by all means go down that path.

share|improve this answer

Google Python Class is the answer. It provides just enough to get you started. From there on, do the exercises on Coding Bat (same author as the Python class), write code, ask questions on stackoverflow or programmers and refer to the Python Tutorial to check if there are better ways to solve problems. That's how I learned Python (well, still learning :-)).

share|improve this answer

I tend to agree that the quickest way to learn a language is just to get stuck in with practice projects, but be careful about using these in production environments. You learn a lot by throwing yourself in the deep end, but often through your mistakes. Also, by learning this way, you may end up bringing baggage from other languages, rather than learning how to do things in the pythonic way.

As such, some book learning can help get you kick started, and you don't have to select those Wrox or Sams behemoths. You could just go for Guido's own book, An introduction to Python. It's les than 150 pages (including appendices) and gives you an excellent introduction to Python 2.5 which is itself an excellent grounding for later versions of the language.

I had "Learning Python" sitting on my shelf for months, but while it is an excellent book, I just never got around to finishing it. I completed Guido's book in a weekend, and that plus the O'Reilly Python Pocket Reference was more than enough to get me started on real projects.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.