Hacker News new | past | comments | ask | show | jobs | submit login
A collection of small study projects which teach basic systems coding in Python (github.com/zedshaw)
145 points by bbgm on Aug 5, 2013 | hide | past | favorite | 12 comments



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

[1] http://www.amazon.com/Understanding-UNIX-LINUX-Programming-P...


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.


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.


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


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


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


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!


Here's a plug: 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.


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: