I wish I was better at design. On the other hand there's this wonderful principle called division of labor, and while I might spend 10 hours designing a mediocre website, a good designer will design a great one in half the time. This has actually happened to me. After spending a weekend building out some pages that I thought looked pretty good, my designer friend sent me a photoshop mockup that made me decide to totally scrap what I had made, and go with her design instead.
The most productive I've ever been has been while working in tandem with a good designer, because it frees me up to do what I do best, and that's write code.
Now, I will say that it's important for any web developer to understand principles of design, because understanding what your users actually want is crucial for both backend and frontend work, thinking about user interaction, your data model, etc.
The fact that you toiled at that design for a weekend is part of why your designer friend could turn something around so quickly.
When your designer knows the basics of how programming works, and when your programmer has a grasp of the tenets of design, neither person has to operate as if the other is some sort of stupid magician. It's so refreshing.
Exactly....if one followed the OP's advice, I suppose maybe eventually I could get skilled in design and layout, but as far as I can tell, that is an entire profession in itself, I have enough trouble trying to stay current just on the pure programming stuff. The hours I've spent trying to get something to lay out properly across browsers using CSS could surely have been spent better elsewhere.
I don't personally know many people who understand all of the intricacies of CSS and browser support and writing HTML along with it that aren't programmers.
To me, the design and the implementation are two very different things, and advanced CSS seems to be more in the programming realm (despite its goals to be accessible to the average designer).
The most productive I've ever been has been while working in tandem with a good designer, because it frees me up to do what I do best, and that's write code.
Now, I will say that it's important for any web developer to understand principles of design, because understanding what your users actually want is crucial for both backend and frontend work, thinking about user interaction, your data model, etc.