

A collection of small study projects which teach basic systems coding in Python - bbgm
https://github.com/zedshaw/lpthw-study-projects

======
mtoddh
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/](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...](http://www.amazon.com/Understanding-UNIX-LINUX-Programming-
Practice/dp/0130083968)

------
kwantam
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.)

~~~
mathattack
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.

------
chubot
Why the focus on zeromq? With Python it's not hard to use sockets. It's good
for programmers to know what zeromq is built on.

~~~
chewxy
zmq is basically clever sockets. I very much prefer it to vanilla BSD sockets.

------
hrjet
While this is great, I was expecting something different from "systems
coding". This is more like scripting.

------
jeffmax
This looks interesting. It reminds me of book that explained the details
behind dealing with unix processes using ruby. I really liked it:
[http://www.jstorimer.com/products/working-with-unix-
processe...](http://www.jstorimer.com/products/working-with-unix-processes)

------
ConAntonakos
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.

Thank you, Mr. Shaw!

~~~
karangoeluw
Here's a plug:
[https://github.com/thekarangoel/Projects](https://github.com/thekarangoel/Projects)

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.

------
joshferg
awesome idea, excited to see and hopefully learn from it!

