If you want to get a job as a mechanical engineer and design car engines for a living, you don't necessarily need to know how to be an auto mechanic, however, if you spent a summer rebuilding a classic car engine, you might be surprised to learn a few things along the way that help you to design better engines when you do get a job.
I think this analogy works very well for simple web monkey tasks. Sure, building a simple LAMP application will not help your CS chops like writing your own toy programming language will, but you might learn something along the way about Apache, PHP/Python, Linux, or MySQL that will help you in your career. It also gives you a chance to question some of the fundamentals that have been with us for years - why do we use SQL for so many things? Maybe a key/value store would work better for certain apps.
Just like a mechanical engineer might be able to design an engine that is easier to work on if he rebuilt an engine in a garage once or twice, a software engineer might be able to write code that is more easily maintainable if he installed WordPress once or twice. Learning the difference between a good and a bad install procedure can at the very least help you write an installer that doesn't suck.
(Also, please don't use asterisks (* ) to indicate footnote or put a whitespace after each one. See http://news.ycombinator.com/formatdoc)
There is a case for CS courses to be nothing but algorithms and compilers; but that's not the way they work in the real world.
Most CS students worth a dime could write programs to do these things.
I'de bet most of the guys that programmed the operating system you were running when writing that post got paid for they job. The same goes for people developing compilers or VMs, like, you know, the one Python/PHP runs on... and don't get me started on database servers.
Now, I realize that we're being trained as automotive engineers, but most of us get jobs driving. I think the blog post's advice is much more useful for that.
You can use your cool and deep automotive engineering knowledge to "do mechanics", but most of the time is not efficient cost/benefit wise. Most of the time it's more important to get the thing running in order to start the business.
Could you speculate for me as to the number of job openings for compiler writers as opposed to the number of jobs for web monkeys like me?
College isn't a vocational school where you learn X so you can get a job doing exactly X. The idea is to learn a broad range of CS, Mathematics, and general problem solving skills. Doing so will allow you to write any type of software.
If a recent grad finds himself lacking in confidence with his or her abilities, then taking "baby" steps like those outlined in the link are perfectly fine. I know I could stand to try some of those myself. The hope though is that should a person have the drive, that they can eventually be able to do the computer science tasks.
Note that I did a CS degree and have been lucky to have jobs that built upon that foundation (in order: research, start-ups, industry) - if you want to do fundamentally technically difficult stuff then a CS or engineering degree may help, but that is the exception not the rule.
How about:
1) add or modify a significant feature of a working kernel
2) write a toy programming language
3) program in a programming language with concurrent constructs (e.g., erlang)
4) study some theoretical area, develop a practical application based on the theory
I don't know, these are some things a CS student should aspire to. Setting up a WordPress blog and configuring a basic Apache instance? Yeah, good stuff--but I would in no way attach computer scientist to these activities. It's like calling the Best Buy Geek Squad folks electrical engineers.
(FOOTNOTE let me caveat that I do on occasion, work as a web monkey.)