Of course but that’s a too general statement. What developers IMO fail to get is that CSS is so different because it’s a language to express design and they don’t understand the basics of design. Almost all programming languages are about logic and taught at all CS / programming schools. But design mostly isn’t and is much more complex than people think first (check for example grid theory).
And geometry, which is high school level for the most part IMO but combined with cascading in the third (z) dimension. Introduce 'relative' with its own coordinate system and then do transforms in it (to be fair, its only complex in some cases like where the transformed parent is different from the relative parent). And then get into the time domain for transitions. Its math after all, but not the same that most programming courses teach.
Design have two aspects, the doing (drawing, documenting, adjusting) and the thinking (what’s the actual problem and the concept to solve it, which will give me a frame of choices). There is a lot of content on solving the right problem - check the resources from IDEO, or for a broader view Don Norman for example https://www.amazon.com/Design-Everyday-Things-Revised-Expand...
Also don’t forget typography basics since most websites, apps and documents are mostly only text, there are lots of tutorials out there.
True for any paradigm, not just frontend.