It's an interesting list, but I do believe it lacks a lot of computer-specific things which I personally think people should do. For example - Build your own computer - Build your own (small) operative system - Build your own programming language would be on my list of things a CS-student should do before graduating, because you will most likely get into problems where knowledge of the three things mentioned above wi…
Building your own computer or your own operating system very rarely help, in my opinion, because the real systems you work on are so much more complex than the pretend stuff you build that you miss massive layers of complexity. It's far better to have a good knowledge of how modern systems work than waste years attempting to build such a system. Similarly, I have no idea why you would build your own programming langu…
I'm not talking about wasting years here, I'm talking about something that is possible to learn in a single course. [1] Also, I'm not talking about making a computer from scratch by building your own circuit board and make your completely own compiler to your newly designed programming language for your home made OS without any proper design. I meant simple stuff - simple compilers[2] and operative systems, because it may actually come back and help you someday - even if you're not going to make a programming language[3] or an operating system.
[1] http://video.google.com/videoplay?docid=7654043762021156507#
[2] http://norvig.com/lispy.html (maybe not THAT simple, but the idea is that doesn't have to take that long or be that hard.)
[3] http://steve-yegge.blogspot.com/2007/06/rich-programmer-food...