Why do I teach PHP to my son?
I know Perl way better than I know PHP and I think in many aspects it is a better language but still I found it easier to get my 11 year old son learn PHP than to learn Perl.
He learned some HTML a year ago in a summer-camp, then I taught him some CSS - the little I know - and a little Javascript, but he was not that interested in programming yet. Actually he wanted to create a web site with registration and stuff but that was way beyond his level of commitment to actually learn what is needed for that.
Later I installed scratch on a virtual Windows and he made a few, well, scratches.
I even taught him some Perl but I wanted to let him learn on his own. I wanted to point him at a tutorial but he does not know English yet. At least not well enough to read a tutorial in English.
There is a Perl tutorial in Hebrew and it is quite ok for someone who wants to learn Perl in the general way. The problem is that my son being 11 is even less patient than an average grown up who learns programming. He wants visible results immediately.
That's why Scratch is good. It is also good because it is a drag-n-drop programming language and the programming constructs you drag-n-drop are even translated to many languages including Hebrew.
So he needs something that can give him interesting results, preferable something that he can also show to his friends easily. It could be some Turtle graphics or a web application or I could have tried Squeak but I don't know Smalltalk so I postponed that.
In PHP he does not need to know nearly anything beyond some HTML to create a web page with a counter on it and later to create a web based game.
We also found several tutorials for PHP in Hebrew. They are not perfect but the one he is reading now got him started quite quickly.
I had to install Apache and PHP for him and configure it - he does not yet have root rights on his Ubuntu GNU/Linux - so without the help of someone who already understands this (a bit) he would be still struggling. On the other hand maybe if he had Windows it would have been much easier to set these up using Wamp.
Anyway, I hope he will keep learning this and soon I can report on his progress.