Dive Into Python
Learning to program now is easier than ever before. Last week my partner was in Spanish class and the teacher told her that the most important languages to know in the future will be English, Spanish, and a programming language. Programming is the new literacy. She decided she wanted to learn to program. We opened up Terminal on her Mac laptop, typed "python", and used Mark Pilgrim's Dive Into Python as a guide. Done. With a PC you at least have access to JavaScript (and Marijn Haverbeke's Eloquent JavaScript tutorial) which is more than suitable for a first language.
You could probably get away with not knowing how to code, but even an elementary understanding helps you to know what is and isn't possible. Spend a week or two getting the fundamentals of programming (even if you won't be able to program very well at the end of that time), and you'll be in a much better place. Try Mark Pilgrim's Dive Into Python. It's free online, and python is one of the better introductory languages: http://diveintopython.org/toc/index.html Aside from that, search stackoverflow for variations of your question - it's been answered lots before!
@kqr2: this is what led me to my opening remark on how different learning styles require different styles of writing ... believe it or not DiP has gotten good reviews... just check Amazon. the problem i alluded to is that it's not for everyone. Here's are similar comparisons between my book and Mark's as documented by Eric Wilson both on his blog as well as in an Amazon review... see http://amazon.com/review/RKG44D8GQYLNL and http://wilsonericn.wordpress.com/2011/09/26 for details. So yes, some people don't like it, but to others, it's just what they needed.
You don't mention a language; I suggest you pick one then look for a good free text. For example, choose Python then go for Mark Pilgrim's Dive into Python. I'm sure others could make recommendations for C#, Java, Ruby or JavaScript. A good view of OOP in a relatively language neutral manner if the GoF patterns book: Johnson, Gamma, Helm, Vlissides Design Patterns. It summarised state of the art OOP in the mid 90s and was a big influence on Java. Things have moved on since then, and IMHO, other techniques for structuring your code are just as important as OOP. I'd highlight generic…
I used an older edition of O'Reilly's Learning Python and found it to be very accessible and well written -- I'm surprised it hasn't been mentioned before: http://oreilly.com/catalog/9781565924642/ O'Reilly's Programming Python is not bad, but it's not a great book, either for beginners or journeymen. Python in a Nutshell is more suitable as reference book, although I suppose you could use it to learn Python. For a Python reference book, I found David Beazley's Python Essential Reference to be more informative and better organized:…
Zed Shaw disagrees: http://oppugn.us/posts/1272050135.html , and I think he has a point. "The book is weird, uses antiquated technology, has horrible examples [...]" Dive into Python has code examples which use ODBC: "He has a [...] book that purports to teach people programming that still, in 2010, references a piece of crap technology from the 90's. Yes, he actually used that technology to teach Python in the beginning of his book six years ago. [...] Meanwhile, Mr. Pilgrim's book hasn't been updated in 6 years even though it's [...] online and people can send him patches. [...] Dive…
If you're posting here, presumably you know how to program already. In that case working through the free "Dive into Python" PDF really is the first step you should take. After the first seven chapters you should then be able to make do with the online docs (the remaining chapters cover specialized material like HTML parsing, SOAP calls and test based development which are, in my opinion, not the first thing you should be worried about when learning a new language). "Learning Python" and especially "How to think like a computer scientist" are targeted towards people with very little…
That's exactly my experience. "Dive into Python" made my head spin, confusingly enough (it is a great book). I did a small project (a deployment system that compiles HTML from a database of Markdown text using Jinja2 templating), coded it up real fast (I was amazed), refactored the thing to read easily and extend well, and just sat back. Just like that. I all made so much sense, while being so concise, I didn't realize it could be so elegant to write something, something readable, something you do not have to decipher when you get back to it later. I am absolutely sold. So here's my…
For python I can't recommend a book. Dive in to Python is available online but to be honest the best thing to do is just start using it. It's just not hard. DIP: http://www.diveintopython.org/toc/index.html Tutorial: http://docs.python.org/tut/tut.html Std Modules: http://docs.python.org/modindex.html Std Library Reference: http://docs.python.org/lib/lib.html good luck
Can anyone with kids comment on whether or not computers are even exciting and empowering anymore? When I was eight, we got a Commodore VIC-20. It plugged into the TV and booted into BASIC. Just running PRINT statements and simple loops was unbelievably cool. I learned key positions (and how easily mistakes are made) by spending hours typing in bytecodes printed in magazines. With any luck, at the en of it, a completely unforeseen game would appear. Getting to play with Logo on the Apple ][e was awesome, too. Shapes and angles and horribly flickering animations were exciting. Now, it…