Hey guys,<p>I'm a non-technical guy who has launched a successful site with a coder-friend, and we sold it for decent money (as far as two teenagers are concerned).<p>I'm now looking to code. I went out and bought Learning Python by Mark Lutz, and have done a bit of Learning Python The Hard Way.<p>As experienced coders, do you guys recommend reading the big tomes of knowledge, or using the smaller guides and using the saved time to write more code?<p>One thing to note is that I have pretty good patience and am willing to work through 1000+ page books. I'd also love to have a VERY solid background in the languages I learn, and not just "enough to get things done".
Python is a great language to get started.<p>In my opinion, at that stage you should definitely concentrate on smaller texts, do all the exercises and additionally write a lot of small but complete programs.<p>As soon as you start writing programs that take more than a couple of hours to write, you should start using a source control system.<p>You should also read some high-quality source code, especially small utilities and small web applications. This will help you learn not only to write idiomatic code but also how to organize the code, how to write makefiles, how to write documentation, etc.<p>To be a really solid programmer it's not enough to know a programming language well. You must also learn about object-oriented design, databases, memory management, computer architecture, algorithms, security and other topics. It's a long road, and (again, in my opinion) it's not necessarily a road you want to follow if your main goal is to be an entrepreneur.<p>Have fun.
Run through almost any programming book once and do enough examples that you have a handle on what you're reading. The point of this is to get familiar with basic programming (syntax, conditional logic, etc).<p>Once you're through the book start a project with a specific goal in mind and go about implementing it. If you get stuck search on google or stack overflow.<p>A solid background in a language is something acquired by getting things for long enough. The goal should be knowing "enough to get things done" and continuously putting that knowledge to use.
Books are great to get you started, but real-world problems will always be your best tutors. Try to build something by yourself begin-to-end, Google whenever you get stuck, rinse repeat for a while and before you know it you will start to feel quite comfortable working with code. Once you get to that point, then maybe it would be a good time to step back and starting reading more to learn different, perhaps more sophisticated ways of thinking about your code.
@nandemo (or anyone else) - Do you have any recommendations on small apps or utilities written in Python to learn from? I've just started learning it as well in the last 2 weeks. I'm learning from "How to Think Like a Computer Scientist" and trying to learn it properly. Any recommendations would be great. Thanks all!
Subscribe to the python tutors list [1]. Take a break from coding for 20 minutes a day or so and just read about the problems that other people have.<p>[1] <a href="http://mail.python.org/mailman/listinfo/tutor" rel="nofollow">http://mail.python.org/mailman/listinfo/tutor</a>