My programming principles Understand why principles are important, how to expand horizontally and what does it mean for a design to emerge.