Blog by Sumana Harihareswara, Changeset founder
Anatomy And Andragogy
Hi, reader. I wrote this in 2007 and it's now more than five years old. So it may be very out of date; the world, and I, have changed a lot since I wrote it! I'm keeping this up for historical archive purposes, but the me of today may 100% disagree with what I said then. I rarely edit posts after publishing them, but if I do, I usually leave a note in italics to mark the edit and the reason. If this post is particularly offensive or breaches someone's privacy, please contact me.
Yesterday, I sat down over coffee with the Fog Creek system administrator and learned how a specific piece of our network architecture works. As he talked and I asked questions and tried saying things in my own words, and we drew diagrams and annotated them, I learned something about how I try to understand a complex system.
Without even meaning to, I was taking Neal Stephenson's advice to heart:
Windows 95 and MacOS are products, contrived by engineers in the service of specific companies. Unix, by contrast, is not so much a product as it is a painstakingly compiled oral history of the hacker subculture. It is our Gilgamesh epic....
...Unix has slowly accreted around a simple kernel and acquired a kind of complexity and asymmetry about it that is organic, like the roots of a tree, or the branchings of a coronary artery. Understanding it is more like anatomy than physics.
--Neal Stephenson, "In The Beginning Was The Command Line" (1999)
So I've articulated a possible plan of attack for learning computer-related architectures. Another: just dig in! Try something small and concrete, and learn as you go. But I've found that, once I try to do anything even mildly complicated with OSes, filesystems, networks, and what have you, I get quite uncomfortable unless I can find out the structure and foundations of the domain. So now would be a good time for me to take classes in data structures, algorithms, networking and architecture, etc. Maybe I'll make my own summer crash course.