Practice.<p>If a designer asked you for good tips on how to program, you'd say it's not simple, recommend some books, and tell them to just start writing programs, and reading programs, and writing programs in other programs' style, etc.<p>So it is with design.<p>I favor traditional design (as in art) texts, because many people who consider themselves designers today don't have any training; they just know how to manipulate Photoshop. It's the design equivalent of cut-and-paste programmers.<p>Look at the reading list of a design class from your local community college. You'll find introductory texts new and old, like "Design Basics, 7th ed." and "The Art of Color and Design (1951)," but they'll all cover the same things: line, direction, shape, size, texture, value, color, repetition, alternation, harmony, gradation, contrast, dominance, unity, balance, proportion. Take the class and you'll do exercises that let you practice each one.<p>Learn layout and composition. There are community college classes for that, too. I have "Editing by Design," a newspaper layout guide, and other newspaper layout books on my Amazon Wishlist. Lay out text and design elements on paper. Cartography is also good: it's information design and layout and presentation and art all together.<p>Learn copywriting. Writing is design: the right word can explain a concept better than a big, shiny icon ever could.<p>Good web design is good design first, with accommodations made for low-resolution text, small viewports, backlighting, scrolling and pointers. Just as with programming, you can't learn it just by reading about it: you have to practice it.<p>If you're in Austin, TX, come out to a design workshop. I hold them every other week and we practice various elements of design (using the term broadly): <a href="http://vi.to/workshop/" rel="nofollow">http://vi.to/workshop/</a><p>If you're not, maybe there's something similar in your area.<p>Finally, I've recently come to believe that you're not a modern interaction or user experience designer unless you're testing your work. As a programmer, you might understand this better than traditional designers. UX designers aren't making art; it's not subjective. Once you get past color and composition and layout and into interaction, there are objective purposes in what we do, and we can create testable hypotheses around our craft and see the results and tweak it. A/B test your interactions. A/B test your colors. A/B test your layouts.