A key building block for burgeoning software architects is understanding and applying software architecture styles and patterns.