My Software Engineering Reading List
Software Design Patterns This is the basics. Every software developer needs to understand these things. Im far from saying that this book contains the only rules you should ever follow when creating software and using patterns. I think you need to mix and match these and other patterns to help you solve the problem. But having everyone know these basic patterns and be able to speak to them from the same context is a great thing.