Not everyone is a coder. Not everyone designs and develops websites. Actually designing and developing are different things.
Design is more about creating the look of the layout and just as long as you have a good grasp of Photoshop (Illustrator and Fireworks too are good to know), design elements, and principles; you can design a website. The problem is that it needs to be translated into HTML/CSS and then you add more functionality to it via javascript, php, ajax, jquery, etc. This is where development comes in. This is where one has to “slice” up the design and make some image files that will work as backgrounds and other parts of the aesthetic of the page. In addition, the code is where everything is put back together and made so it looks as close to the .psd file as possible.
Of course, sometimes you can do this on the fly too…just go straight into the code…if you are that good (really?) or if the design is pretty simple. I would say the more you plan, the better the outcome will be.
Start with getting as much information as possible so you have some idea of what the content of the site will be and that will help determine the design. Then make some sketches…I might be old school in a way but I like to do it on paper. You an then make some wire-frames to solidify layout the design. It is much quicker to do this than create a design in Photoshop or go ahead and just make then whole website and then have the entire design shot down by your boss or by your client. In addition, you do need to map out the entire site structure. From there, you get to the meat. Expect revisions and expect criticism. Because of that, have some flexibility.
When it comes to development, understanding the function of the site is hugely important. Will it just be purely informational? If so, you might just need HTML/CSS and maybe a tiny bit of javascript. The more interactive and the more things you want the site to do will require more code and more work. Want forms to shoot to a email inbox? Probably need to know some php. If you want validation you need at least some knowledge of javascript. Those are simple examples. Things get more and more complicated for databases, creating forums, e-commerce functions, and other interactive features.
One thing I will say is that if you are a designer or want to be a designer, have an understanding of code even if you are not doing the development yourself. It will make your life and the developer’s job easier.
I would say even as a client to have some basic basic understanding is good. You don’t have to be an expert or know how to code at all. Just know what each language does is good.
One nice thing on the web to look at if you have the time even if you don’t want to make websites, applications and such but want to understand the basics is to get on www.codecademy.com and play around some. They have a lot on javascript but just added HTML and CSS to their site. You do it on your own time and you learn by doing. In addition there is a social and gaming aspect to it too. You earn badges and can share your achievements with friends.
Just get an understanding. I don’t want to fix my car or become a mechanic but I think it is a good idea to know what a oil filter does, or what the difference between brake rotors and pads. Basically you arm yourself with basic knowledge so you don’t get screwed and so repairs and maintenance can be done more smooth. You become more empowered.