Here is one interesting book for all coders. The Architecture of Open Source Applications book has a goal to change the fact that most software developers only ever get to know a handful of large programs well. In the book, the authors of twenty-five open source applications explain how their software is structured, and why. What are each program’s major components? How do they interact? And what did their builders learn during their development?
If you are a junior developer, and want to learn how your more experienced colleagues think, this book is the place to start. If you are an intermediate or senior developer, and want to see how your peers have solved hard design problems, this book can help you too.