|
|
|
|
|
by gervase
3093 days ago
|
|
Although I agree that PHP is an odd choice, I do think there's something to be said for teaching computer science with a language that the students (probably) won't end up using professionally. In some sense, this permits a decoupling of the language ergonomics from the underlying principles, thereby emphasizing 'learning' over 'training'.[0] The very first language I was ever formally taught was Lisp. I haven't used it even one time since then, but it forced me to understand recursion at a cellular level, which has painlessly translated to every language I've used since then. There's a significant distinction between "I understand how [inheritance|recursion|functional programming|etc] works in <language of choice>." and "I understand how [inheritance|recursion|functional programming|etc] works, period." By choosing a non-mainstream language, I suspect that it makes it slightly more likely to end up in the second category than the first. [0] Note that this applies only to formal computer science training, NOT developer bootcamps, where the end goals are totally different. |
|
I would love that to happen and I think Harvard's CS50 is one such example. Assignments will cover C, Javascript, and Python. However, most 101's goal is to teach students to just learn to code. The "think like a computer scientist" is inaccurate (looking at the famous Python book: How to think like a computer scientist).
I honestly do not think teaching PHP in 101 will achieve the latter case. Combining Lisp/Scheme/Racket and a non-functional language like PHP will probably do.
Also, we need to educate each other that despite all the insecurities with PHP in the 2000s era (because there were plenty of free PHP hosting providers, a gem for kids like me back then), PHP has improved, and let's criticize poor LAMP stack configuration and bad practices. Anyway, I heard, and maybe not true at all, more PHP code at FB are now written without HHVM? Someone from FB please correct me if I am wrong.