Having always worked primarily as a software developer I have a good understanding of CSS/HTML but a poor understanding of what constitutes good UI design if I'm approaching something from a blank slate. I feel I've got a good understanding of good UI design when I see it and can combine pre-existing elements well but starting from scratch doesn't come naturally to me.
For someone aiming to understand the fundamentals of UI design and design in general,
You can try Hack Design. It's a nice comprehensive resource for learning UI/UX design from scratch.
Rather than understanding what looks good, I think it's better to start learning persuasive design. This is all about how you can pitch the user to do certain actions and goes down to basic things like making a delete button red and a complete button green.
There are also some theories on how to construct a good website, many of them will be sort of obvious knowledge, but I still think it's good to read it to make yourself more aware of it. An example would be the F-shaped reading pattern: nngroup.com/articles/f-shaped-pattern-reading-web…
www.SmashingMagazine.com has sometimes some good articles on these things, although I find a lot of their stuff buzz.
I also use pages like www.ThemeForest.net and www.WrapBootstrap.com a lot to find my inspirations and see what other people did.
Most important is to get some feedback from your customers on what works and what not. For example in my experience Googles' 3 vertical dot option buttons are horrible UX to novice users, so I have abandoned that.
I asked a similar question yesterday, I think you can find some use in some of the answers too: hashnode.com/post/where-do-you-find-your-inspirat…
Marco Alka
Software Engineer, Technical Consultant & Mentor
Smashing Magazine. It's my go-to source and I have all their ebooks
Just take a look at the people contributing at Smashing Magazine, for example @tomhodgins , who tries to make responive design even easier with his Element Queries.