On Wed, Jun 11, 2003, Beni Cherniavsky wrote about "Re: What programming language to teach in schools ?": > I also think something like the abstract equivallent of UNIX pipes > should be taught before any langauge at all. The usefulness of pascal > programs doable in school lessons/exams is a joke. What's the point, > if you acn't see the bigger picture?
I agree with you here 100%. Kids should not be taught to program before they understand what programs are supposed to do. Unix pipes and shell and so on are indeed a good system to see before starting to program, but understanding how your favorite system (even if limited like Windows) works is also good. When I started learning programming (18 years ago), it was with Kernighan & Pike's "The Unix Programming Environment", which had just come out a year earlier (1984). This book teaches the way you'll like: it [1] starts with how to run existing programs (command line, of course, since this was 1984) and gives examples of the programs available on a Unix system, continues on why automation is useful (that's why we program, after all!) and how to automate stuff using pipes and shell scripts. It then continues with more sophisticated scripting using Awk, sed, and other simple languages, and then goes to lower-level programming in C, and concludes with a complete example of how one would write his own language, using Yacc. All of these steps are acompanied by interesting working examples; In fact some of these example programs were so interesting that I still use improved versions of several of their examples till this very day, 18 years later. It is not a thick book, but it took me almost two years to fully learn it (at the age of 10, and when I barely knew English, so it wasn't easy :)). I found this book's approach to be the perfect introduction to programming and to computers in general. Too bad that Kernighan and Pike never got back to write a second edition of their masterpiece, because as it stands it is hard for me to recommend the 1984 edition to new users; Some of the things they wrote about were already obsolete in 1985... And no, learning C first (well, not first: after shell and awk) didn't "ruin me" in regards to OO languages: I learned C++ about 5 years later (when I got my hands on the first edition of Stroustrup's book) and I believe I understand it (and OO methodology) very well. But because I have a bigger perspective of several programming methodologies, I haven't become a religious-OO-devotee like some people who learn C++ first have become. [1] I'm saying this from memory - sorry if I don't remember it correctly. -- Nadav Har'El | Wednesday, Jun 11 2003, 12 Sivan 5763 [EMAIL PROTECTED] |----------------------------------------- Phone: +972-53-245868, ICQ 13349191 |:(){ :|:&};: # DANGER: DO NOT run this, http://nadav.harel.org.il |unless you REALLY know what you're doing! ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]