6 ms·
I only scanned it, and it seems like a solid book; however, I found that PHP is an odd choice for CompSci I book. From the book: > PHP is a dirty, ugly languag
by johannsg 9y ago
I only scanned it, and it seems like a solid book; however, I found that PHP is an odd choice for CompSci I book. From the book:
> PHP is a dirty, ugly language held together by duct tape, cracked asbestos-filled spackle
and sadness (http://phpsadness.com/ http://phpsadness.com/). It is the cockroach of languages: it is invasive
and it is a survivor. It is a hydra; rewrite one PHP app and two more pop up. It is
much maligned and a source of ridicule. It is the source of hundreds of bad practices,
thousands of bad programmers, millions of bugs and an infinite abyss of security holes
and vulnerabilities. It is a language that was born in the wild and raised in the darkness
by two schizophrenic monkeys. But its got character; and in this world, that’s enough.
- misingnoglic 9y agoI came here just to say this as well - I like the model of students learning Python then using Flask much better.
- terminalcommand 9y agoOn the other hand C, Java and PHP complement each other. Whereas Python is a general purpose scripting language PHP is built for Web. It will be a huge motivation for a first year comp sci student to be able to write together a simple site in PHP and find some free host to put it in. I think "practicality should beat purity" for an introductory course. The students usually will have a chance to catch up on Python in a data visualization class anyway. PHP is much simpler in terms of understanding, you do not need to explain what WSGI is, what routing is, what template engines do etc. Put your code into <?php and ?> and you're all set.
- r0ze-at-hn 9y agoWouldn't JavaScript be a better third choice? Push your repo up to github in you instantly have a "hosted" webpage.
- terminalcommand 9y agoJavaScript would also be suitable, it is easy, it is ubiquitous. The kids would need to be introduced to the basics of tcp/ip and HTTP and then be able to use Node.
- submeta 9y agoExactly my thought. It Starts with basic principles, then shows how those principles are applied in three selected programming languages: C, Java, and then PHP?! There are a dozen alternatives that are more suitable.
- bogomipz 9y agoPHP is only covered in any kind of depth beginning on page 495 of a 643 page book though.
- gervase 9y agoAlthough 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.
- sotojuan 9y agoI see your but many students will end up using PHP for work. In my NYC college a good amount of people I graduated with are doing PHP, there's probably more PHP jobs between the coasts. I think Lisp or Scheme is great for that kind of pedagogy, though the trend lately has been to use "practical" languages.
- yeukhon 9y ago> 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." 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.
- B4TMAN 9y agoI was going to start learning webdev and I was suggested HTML/CSS/JS/PHP/MySql. Should I go ahead with PHP? What is the alternative?