This is the sort of approach that the 'Understanding Unix/Linux Programming' [1] book takes - building common unix utilities in order to introduce systems programming concepts. IMO, it's a good starter for meatier material in Richard Stevens books.
For those interested in this sort of thing, Harvard Extension School offers a course based off of the 'Understanding Unix/Linux Programming' text taught by the author (http://sites.fas.harvard.edu/~lib215/). I took it a few years ago and found it worthwhile...
As a learning experience this is a great idea. I think, however, that it would be really useful to note, when applicable, what standard UNIX tool just does a job for you (and presumably learning that tool, too)---about 1/3 of these are either completely handled by a standard tool or easily handled with a bash one-liner, and knowing when not to reinvent the wheel is often most of the battle. :)
(I realize that in the intro Zed talks about people being better at finding than building tools. My suggestion is only that you can help even more people by pointing out both paths.)
I don't think the purpose of this is to actually have the tools, it's to go through the mental process of creating them. Similarly, writing compilers in Scheme for every language under the sun may not be the best way to get to produce production strength compilers, but it's a great way to learn languages.
He is talking about DevOps ie automated programmatic system configuration. The shell is a great human user interface but a terrible programming environment. Its fine for quick hacks but rarely do you see a test suite for shell scripts.
If this is the case, I think it would be to have two solutions - bash one-liner and a Python one, so that it would be easier to understand benefits & drawbacks of both.
This is awesome. I can't wait to see these types of lessons built out for more languages other than Python. I think completing milestones is much more effective way of learning for obvious reasons.
A list of practical projects that anyone can solve in any programming language. These projects are divided in multiple categories, and each category has it's own folder.
For those interested in this sort of thing, Harvard Extension School offers a course based off of the 'Understanding Unix/Linux Programming' text taught by the author (http://sites.fas.harvard.edu/~lib215/). I took it a few years ago and found it worthwhile...
[1] http://www.amazon.com/Understanding-UNIX-LINUX-Programming-P...