I taught myself in BASIC and Assembly on a commodore Plus/4 and 128D .. finally in around '96 I got a windows PC , quickly learned HTML, picked up a bit of perl , then got into PHP (learning a great deal from Roja) , since then, Ive also been learning python , more perl, and looking at C.. Learned a slight amount of Pike, Ruby and TCL ..
To make a long story short, in all the languages Ive learned (or learned something about) I have found that python, while it can be a genuine, first class pain in the
{SMURF!} has a great deal in common between C and PHP .. it is slightly more loosely typed than C (but then again, everything is an object in python) but it is much more strict in layout, indenting, and general coding habits than either language (precise indentation is an absolute must) but like PHP, Python is relatively easy to learn , has a rich, robust set of functions (modules , objects and classes) , and uses more complete english than C.
If I were to teach a course in *any* language, the first few lessons would be focused on format and coding habits, coding practices and documenting what you are doing.. The following few lessons would be a focused discussion on logic and reasoning , and learning to think like a computer (Computers are *STUPID* - they do *EXACTLY* what you tell them to, nothing more, nothing less) once you understand how a computer see's your instructions, you learn how to see the holes you leave open (for security, unexpected bugs, etc) In other words, learning to be precisely explicit...
and then , and only then , would I start introducing them to the targeted language, whether it be oop or procedural to start with, the important thing would be getting them to apply the basics of what they had just learned in the first few lessons, rather than the language..
Programming is 90% logic and 10% syntax. once you learn the logic, the way of thinking , any language is actually quite easy to pick up well enough to debug code ( I have never written a C program, yet I am able to read the code and logic flow, because I understand how the logic works)
Flowcharting? I'd toss it out the window as soon as you'd taught the very basics of logic - it's a visual aid, nothing more...
and it does no good, when you're under fire, and standing at a terminal in the datacenter, no books, no visual aids, no refernce manuals, and trying to read an obscure bit of code, you need to know how logic works from the point of view of the computer.. and flowcharts will only be of help as a learning aid, really .. I'd never teach someone to rely on flowcharting as a primary means of writing or debugging code.
so I dont know what language I would recommend most , but I dont think PHP wouldd be my first choice , because it is so loosely structured, it lets too many people learn bad coding habits that are damned hard to break later on... and the dropouts from the classes, now know just enough php to be dangerous, but not enough to be worth a damn..
so I would lean more towards a language like python as the first language I would want to learn/teach. From, it, I can now see where I could learn much better in both php and C .. learning python, all of a sudden, certain ways that PHP has of working, (includng a lot of OOP related PHP stuff) , and so many things in C that at first seemed obscure, now make perfect sense..
Whew.. I guess I should shut up and go hide in a woodchuck hole - Roja's probably gonna be a little steamed at me--
Roja: What??!! Championing Python over php?? BLASPHEMER!
hehehe