Over the last 4 years, I've had the pleasure of helping out designers on their first experiences in the web. Typically they come with a lot of questions and insecurities, usually all concerning two things: Typography and colors.
I guess that makes sense, as those are probably the most subjective, abstract skills for someone to learn. For a beginner to the craft, that's what makes great design, great.
But it's not. Not on their own, anyway.
The perfect font-pairing, on top of the best color palette you can think of, would still be insufficient to disguise poor visual hierarchy and general design inconsistencies.
Great design is disciplined. Great design makes sense. Understanding design discipline is vital for any designer, and should probably be among the first things to learn and practice.
How to tell if a design is disciplined? Easy enough. Count how many different fonts, font-sizes, and line-heights are in their design system. Look for inconsistencies in vertical spacing between elements, poor contrast between text and background, and lack of patterned design elements. This should be particularly noticeable when designing products because these require design systems that can scale and adapt.
This is not subjective, nor abstract. And it doesn't even require a designer to point out these inconsistencies. In fact, it is usually a front-end developer who starts throwing you those uncomfortable questions that shed light on the fragilities of your design.
Why? Because developers need to deconstruct your design system in search for patterns, so they can build a scalable front-end architecture. In fact, there's a fantastic blog post from Brad Frost, explaining Atomic Design, and the benefits of a disciplined design system.
I soundly recommend a careful read, as it will definitely force you to take a closer look at your work.