I've recently been getting back into contributing to open source software, and I almost forgot how daunting exploring a huge, unfamiliar codebase can be. Being able to make sense of someone else's code is a difficult skill, one that is almost never covered in the standard computer science curriculum.
This made me realize (again!) that, despite having spent half my life working on technology, I really still have much to learn. Now that it's holiday season, I've decided to spend these few days to catch up with an old and neglected friend: reading.
Back in high school, one of my favorite things to do was to check out the "computers and technology" book section for some new reading material. I remember reading books of all kinds of topics, from Java Servlets and Networking to Ethical Hacking and XML. Of course, I didn't understand a large portion of what I read, but I was hungry for knowledge and learned a lot from the little I did.
Just yesterday, I stopped by the local library and checked out a few books. One brand new book caught my eye: A Philosophy of Software Design by John Ousterhout, the creator of the Tcl scripting language. I may share some of my findings if I find them interesting enough :)