I'm not entirely sure I agree with this list. Here's some I would add:
PHP - even if you loathe its every existence, if you're a web developer, you're going to come across it, might as well know it.
Perl - text processing, data scraping, all around great language.
Javascript - Like others have mentioned, I think its a great language, used in front end web development, and now moving to back end.
Shell scripting - Of some sort, please don't be afraid of the command line. Its so insanely powerful, you should definitely take advantage of its power by learning some basic shell scripting.
I agree with you that a shell scripting language should be in every programmers toolkit (even DOS command prompt and batch files count). Also if a programmer is dealing with the web or web applications then JavaScript is a must. However I must disagree on the other two languages, they do not need to be added to the list.
Regarding PHP, you don't actually need to know it, as once you know C (and HTML) you can easily interpret a PHP script, and make any minor modifications if need be. I would only say to learn PHP if you intend to actively develop in it (i.e. contribute actively to the development of an existing open-source PHP application), as I've found that the existing PHP applications to be sufficiently completed for my liking.
As for Perl, you can just substitute Ruby or Python (both of which are on the list) for all of your text processing needs. Like the author I prefer Ruby, but both languages seem to have a reasonably powerful text processing library included.
I hate PHP with a passion but I think it's worth knowing about and I think the claim that "knowing C" makes it easy to interpret a PHP program is not a good assessment. Further, just knowning C doesn't mean you'll know the semantics of webdev... which is what PHP is all about. You get domain knowledge along with the language.
I'm also convinced that in almost every case that Ruby and Python are just fine in place of Perl... except for text processing.
Perl's regexp engine is top notch and is an extremely key part of the language in ways it just isn't in Python or Ruby, especially after the release of Perl 5.10. I don't see another language that can touch Perl there yet (feel free to correct me because I'd be interested to learn).
Anyway, php is still very useful if you want to put something on the web and have no money. So is javascript although the need to write JS yourself will decrease due to automatic generation of JS etc. I also don't think you necessarily have to learn (ba)sh since you could easily write more complex scripts in any other programming language (i.e. ruby is quite good at that and it's also a very suitable perl-replacement).
New PHP development may not be as popular now-a-days (according to that graph, just the other day someone posted a link saying there were gonna be 5.2 million PHP programmers in 2010), but there's certainly a ton of legacy software to support written in it.
I definitely agree with those additions. Even designers should know Javascript for when they're building front-end user interfaces. It's so helpful when a designer already knows Javascript and doesn't need me to whip up a script in 30 seconds for some feature that they just designed.
Defiantly Javascript, pretty much any web developer these days will be making at least some use of Javascript these days and if not like PHP you will end up dealing with things that do.
Javascript is also a good gateway drug to functional languages--it shares many of the facilities available in functional languages while retaining a C-like syntax.
How about javascript? It seems most new interfaces are written in javascript - node.js for instance, and most people need some rudimentary exposure to javascript for web programming.
SmallTalk (or SELF): After I learned some SmallTalk I realized I had never understood the deep meaning of OOP before.
FORTH: It's the Nirvana of building abstractions in layers, starting from very simple primitives.
Tcl: a few Tcl ideas are really worth understanding. The idea of having a single data type in the whole language, and the [uplevel] command that basically provides to the language the equivalent of Lisp macros but with a trivial semantics. At implementation-level the dual-ported objects strategy is a very powerful idea that little programmers are aware of.
Javascript or SELF: it's very interesting to understand how prototype-based OOP works.
His C program is actually a C++ one. C does not allow declaration of variables in the for loop (i.e. 'int i;' line has to precede the for statement). Better not to take any programming advices from someone who can't tell C from C++.
There aren't any I would suggest. That's the problem! C is the highest used solution and most praised when it happens to be a really bad solution for humans.
C is not a bad language for humans. It's simple enough to be able to see how the machine will execute it but not low level enough that you have to manually manage everything, like assembly. It's not always the best choice, but for some things it is. It's also good to know so that you understand how how computers work instead of assuming that higher level languages are magical.
PHP - even if you loathe its every existence, if you're a web developer, you're going to come across it, might as well know it.
Perl - text processing, data scraping, all around great language.
Javascript - Like others have mentioned, I think its a great language, used in front end web development, and now moving to back end.
Shell scripting - Of some sort, please don't be afraid of the command line. Its so insanely powerful, you should definitely take advantage of its power by learning some basic shell scripting.