I feel as if this is a skill that I may be lacking, and it's coming through in a side project that I'm working on. Any blog posts, courses, or just general tips on design, UI or UX would be appreciated.
I didn't really learn formally, but through play. I spent a few years wrenching on them at the start of my career, and I had a lot of free time in that job to try things. As part of my work, I ran and used the software to test it a lot, so I quickly got a feel for critical paths and then optimized around them. I borrowed a lot of ideas from other software that I've liked in my life. I kind of had a feel for what looked nice and naturally felt out industry practices around grid layouts, etc., and the result was something quite conventional. I also iterated and ended up improving my code when I learned about better ways of doing things.
I got an octopus of a custom control library out of it, for better or worse, lovingly handmade, not very architecturally clear and that was a thick layer of gold plating on an internal software product used by a handful of people for a medium-large size company that really had no interest or awareness in what our team was building.
So I guess I fall into that category of people who waste time on their first job making bad software but leave as better programmers.
Apple has the HIG (Human Interface Guideline) and I expect the Android ecosystem has something similar. You can lookup periodicals in a library for human/machine interfacing topics. The loss of visual feedback on volume change to toothpick thinbar and wrongheaded direction alignment when you rotate your iOS device between physical button and visual feedback is a painpoint on Apple devices.
Mostly from taking existing designs and iteratively improving on them.
Material Design is a great skeleton. It has UX and accessibility built in. For example, buttons are big enough to click, text colors push the limit of what's accessible. Navigation is generally intuitive, and writing guides are sensible.
But it's also ugly. And flawed. A lot of people are dismissive of Material because of this, but why throw out the whole batch? Fix the colors, fix transparency, fix the ALL CAPS buttons.
Most good, unique app designs probably some 80% similarity with Material. For example, buttons might be roughly 36 dp in height to be clickable. Why not 48 or 14, like in some games or hybrids? It's a sensible baseline, and a lot of thought and research have gone into it.
I actually learned about UI and UX design from a few different sources. The first was when I took a class in college that focused on user experience, and the second was when I started working for a company that had a lot of designers who were really good at what they did.
One of the best things about learning from people is that they can share their experiences with you—and this is especially true when it comes to learning design skills. If you ask them questions (like "What do you look for when designing?"), they'll have plenty of advice for you.
It also helps if you can find people who are willing to mentor/teach you in your learning process as well—someone who has been doing this for awhile and has learned everything they know on their own will probably be better equipped than someone who just learned it all through school or an online course.