SourceMaking: for people who want to become programming ninjas!

SourceMakingSourceMaking will tell you a lot of stories about good software architecture and teach you how to create it with design patterns. It will guide you through anti-patterns, common pitfalls and mistakes that people make when they plan, create, and manage software projects. In the end, it will also teach you how to smell a bad code and improve it with refactoring.

>> https://sourcemaking.com