The one thing that really seems to hold me back from progress is web design.
I hate it! Colors, layout, arghh!
I can design applications/code no problem, its just the design that is a mental block for me.
Even when I hire out, things just don't turn out the way I want them.
Any tips on how to overcome this? I really want to get going, but this just hold me back.
Purchase your design in photoshop format and then send it to a psd-2-xhtml service. The xhtml chop shops usually run about $99, they produce rock solid XHTML/CSS that is ultra semantic.
In the past I have selected the site from http://templatemonsters.com and then got it chopped up at http://psd2xhtml.com and it worked out rather well. In the future I would like to get the site design from http://99designs.com. Start to finish design+slicing service is about $200. The HTML from the slicing service is easy to work with and get into your application framework, and the design should be better design quality.
I know some people on here are fans of "do everything yourself," but I am on the same boat as you, and no matter how many books on design I buy or how much I study about color compatibility, it's just not my thing.
This is what worked for me: I found and hired a designer that I could communicate with. He understands what I am getting at and asks me the right questions when I talk to him about a new design. He is great with design and HTML/CSS coding, which is exactly the stuff I hate doing (I hate it with a passion; specially dealing with different browser version render issues).
When he is not designing, he helps me out with testing. This is a double benefit because he does not think like a programmer, so he tests differently and finds different problems than I do.
So I believe this is optimal use of both of our times (and one more person has a job, which is a good thing these days). Maybe something like this will work for you.
EDIT: There is a school of thought that says you should not try to do everything, you should try to get better at what your natural abilities are (The "StrengthsFinder 2.0" book is highly recommended, by the way). For me that's certainly true. Programming, logic, business issues come naturally to me. I live and breathe that stuff every day, all day, and then I'm hungry for more. Stuff like design turn me into a failure. If I need to do a visual design, I procrastinate at first, then I force myself to do it, then I take too long to do it, and then the result is trash. So I attack my weakest spot with a competent person I don't mind at all paying because his output is so much superior than mine.
While I never copy an existing web site, I am regularly inspired by the work of others. In my day to day Internet use I constantly bookmark sites that I find intuitively attractive. When I need inspiration I study them to determine what it is I find attractive. Is it layout, color palette, features, etc.? Perhaps you could take a few hours and look through your own bookmarks or industry web sites.
I have the same problem... good web developer but not too good with creative web design. I hate the idea of using templates, since I like hand coding, but, most of my ideas came from going to the template sites and looking over the hundreds of templates. I noted parts of templates that I liked and those I didn't like. In the end, I ended up with some ideas that I wanted to go forward with for my own site. You don't have to use the same exact ideas you see, but they may at least give you a direction you want to go, or spark some other creative ideas you can try.
As you begin working on those ideas, you may discover that you want to change this and that, and you'll end up with your own unique creation.
If design holds you back then develop your app semantically. In other words, use only the most basic HTML. Use H1's for headers, h2's for sub-headers, ul's for lists, etc etc.
Once your done with your semantic page, then add your stylesheet. Don't under-estimate the ability of CSS to turn the most basic HTML into an amazingly designed site/application.
http://www.csszengarden.com If your building a "web application" then you will want to decide early on semantic way to do forms. There are a few examples here:
http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/ Another advantage of keeping your HTML semantic (besides deferring design and focusing on features) is the ability to adapt your application to various mediums (screen, print, mobile device). In some cases you can find freely licensed CSS to style your well structured HTML. See what jqtouch does to plain HTML to render it as an iPhone interface
Its all matter of hiring the right team and trusting them with what they do.
My suggestion is to hire professional, experienced designers and let them do their job. I recommend you spend your time in sourcing and selecting the right design team based on their portfolio of work and their experience and then let them do their magic.
Most experienced website design/interactive agencies have a process in place which helps them understand what you are looking for and from my experience, whenever clients micro-manage the process and get too involved the results will not be satisfactory.
I am sure when you code, you do it your way and your clients trust you with what you do.
The biggest issues my devs typically have with design are consistency and spacing.
1) Consistency. Page-to-page, the design should feel familiar and use the same elements. Too often my devs will build one page that follows a different pattern instead of just sticking with the patterns established in the rest of the app that the users are already used to.
2) Spacing. This isn't how about how much space you should have, it's that the space around an item should most times be consistent. Often I'll see 20 px above something and 0 px to the left of something so a header is smashed up against a border or something.
If my devs could just get better at those two, I'd be happy.
For inspiration, look at sites you like. http://www.smashingmagazine.com/ is good for inspiration.
Since your question is
"... I want to get going."I'm not going to suggest getting someone else. Getting inspiration from other sites is a good suggestion. Can you draw? Are you improving your Photoshop skills?
Do not attempt to work on the design, color scheme etc. of your site while you're programming. It's just another mindset (I'm not talking about the css/html aspects here.). Work on the design during off-programming time.
Great advice from Jeffrey Hicks.
Developers: I am an award-winning visual designer (editorial design and typography expert) and currently working on several web projects. I would welcome the opportunity of working in tandem with front-end and back-end developers. One of my current jobs is designing a financial news social bookmarking site. Let me know if you are interested in exploring ways to work together.
Just like with software, there exists documented user interface design patterns. It is totally OK and even encouraged to reuse those patterns. Take a look at this site: it was certainly not designed by a top notch artist but it is highly usable. You don't need fancy graphics to deliver a great user experience, which is what really counts at the end of the day.
What I would recommend is that you sketch the user interface yourself (with a pen and paper) and outsource the actual implementation (colors, graphics, typography, etc.).
Some related answers: