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]

Reply via email to