Programming Books for Non-Programmers?
andy@petdance.com asks: "Any programmer who's used an
online
programming
resource
or community
has had the frustration of answering programming questions for
non-programmers. This is especially true with web-centric technologies like Perl and PHP.
I've always wondered where to point these newest of the new, and
O'Reilly's latest Ask Tim
article addresses this. Unfortunately, Tim suggests picking up
an ORA book on ActionScript, which seems a bit too specific. Are there any good introductions to the concepts of programming? And is any such book necessarily tied to a language?"
Elements of Programming with Perl was a big hit over at CLPM when it came out. It doesn't assume the programmer has any programming experience coming in. It is clear, concise, and aimed directly at the market you're interested in.
Dancin Santa
That being said, O'Reilly's Practical C++ Programming has been a long-standing favorite recommendation of mine.
Although I haven't read it, I've heard this book on python (Learn to Program Using Python) is useful. It is an expanded version of this web tutorial. Although it's hard to see things from a newbie perspecitve when you've been programming for a while, python does have a reputation for being easy to learn. The syntax is nice and clean, not too verbose, and the language is coherent and well designed. And the best thing is you don't have to throw it away when you graduate from newbiehood. Save the Knuths for later on in their programming journey.
I know you are looking for something not language specific to explain programming concepts but I'm not aware of a book that doesn't use a specific language to give examples of its concepts. Therefore, I'd like to offer when I feel is the next best thing for a new programmer. I read through Learning Python a few months ago and I found it to be a very easy-reading tutorial for the Python programming language, which is simple to learn in itself. The Python tutorial does a decent job of explaining the features and syntax of Python but it may be a little too raw for nonprogrammers. The book on the other hand does a thorough job of explaining the language. Many people agree that Python is an ideal first language because it keeps things simple and teaches the basics of OOP well. I sort of wish I had started out with Python as my first language instead of learning C++, as learning C++ and other more advanced/complicated languages would have been much easier to grasp the first time around. Your mileage may vary.
If they want to start programming on their own, I'd probably suggest Python or soemthing like that.
My opinion? See above.
A perennial favorite, "Karel the Robot: A Gentle Introduction to to the Art of Programming" is a very good choice. It's the first real book on programming I read 20 years ago, and it's just as entertaining today.
"Who's afraid of C++" (by Steve Heller, AP Professional Press) is a good starting book. It assumes no knowledge of programming. It reads as a discussion between student and teacher and is based on a real teacher-student interaction.
http://www.cs.rice.edu/~matthias/TLS/
http://www.schemers.com/scm_bks.html
"The Little Schemer" introduces computing as an extension of arithmetic and algebra-things that everyone studies in grade school and high school. It introduces programs as recursive functions and briefly discusses the limits of what computers can do. The authors use the programming language Scheme and a menu of interesting foods to illustrate these abstract ideas.
Support The GNU Project!! http://www.gnu.org