I cant say this is the best way, but this is what is working for me:
for point 1 and 2 there are tons of online material, i used codecademy, For point 3 this learning path would get you going https://academy.mendix.com/link/paths/105/Style-your-App-with-CSS
The most beautiful applications are made by graphic designers. So if you want to make very pretty stuff, first take some graphic designer classes. But if you, like most of us, want to be able to change some colors, first follow Javier’s advise and start with the most recent Mx-version, since in 9.8 styling options in Studio itself have increased.
I think you can start with SASS and for custom styling go through the below link
https://docs.mendix.com/howto/front-end/customize-styling-new
Thanks for your advices. I will start with css. Thanks again.