Okay, I want to start off this blog with my personal must-read list for young hackers. Because, you know, you can tell everything about a person when you see his/her bookshelf, right? Disclaimer: This is not a very original list at all. Here you go:
- Richard Feynman, "Surely You're Joking, Mr. Feynman!"
- Douglas Hofstadter, "Gödel, Escher, Bach: An Eternal Golden Braid"
- Yutaka Takano, "A Message from root to / (root)" (in Japanese)
- Gerald Weinberg, "The Psychology of Computer Programming"
In a sense, this is a chronological list. I first read the Feynman's book when I was about 15. After getting into a college, the GEB has totally dictated my research interest. I was hooked onto stuff like Artificial Intelligence, Natural Language Processing, etc. Later, my interest slightly shifted and I tend to view programming as a part of broader human activities. At age 25, Takano's book was an inspiring one to me and I started taking sysadmin jobs just as noble as maintaining bridges, trains, power plants and so on. Now I am more interested in general principles behind designing things, including machines, education and social systems, because laws are, after all, like declarative programs. They should be simple, clear and correct in representing our value judgement. "The Psychology of Computer Programming," which I read when I was 30, was an excellent lead to this complex, but fascinating world. My interest is still pretty much in programming, but these books somehow opened up the deeper connections between what I care and what I didn't care (or at least I wasn't so sure about).
Takano's book was fascinating. The funny thing is that, although this is a book about Unix system administration, he barely writes about Unix itself. Instead, he keeps pointing out how the design principle on train systems can also work for system administration, or what is like digging a tunnel safely and what sysadmins can learn from it, etc. etc. Too bad it's missing a whole bunch of audiences because it's written in Japanese.