I am very fascinated by good designs and I have a fair understanding of what is good and what is not. But when we talk about creating one from scratch I go all blank. I am good with my programming skills but haven't been able to do much in this sphere. How would you suggest me go about this? I want to improve and be able to come up with a good design when required.