I just posted my basic review of Coders at Work. It’s a great book, go read it.
This post has a few more observations and thoughts.
First, reading code. A number of the programmers in the book talked about how often and how much they read code. I realized, while reading the book, that although I do the same thing (and have done it for 15 years now), I don’t ask others to do it. I don’t talk about it, but I just take it for granted, and that’s wrong.
Reading code has been extremely helpful for me professionally. Working on various open source projects, and having to take over / fix other people’s code as a consultant (on tight deadlines usually), is awesome. I love it. It is almost always frustrating at first, as it’s hard to understand, and no code is ever perfect.
But reading code often and a lot teaches you about programming. You see other styles, other approaches, other patterns. It’s often more effective than reading books about programming theory or design patterns. At least it’s been more effective for me. Afterwards, when I read those books (because I do that often too), they make much more sense. I have a working example in mind from past code reading.
This is an over-looked advantage of us using so much open-source software: we can read it! Not just when we have a bug and not just when the documentation is bad, but when we want to learn how it works. Really important lesson there, and one a lot of younger developers don’t seem to do as much. Maybe I’m wrong on that last part?