The easiest answer is “go to school to become a designer”. They will often teach you a lot of the basics and advanced stuff.
But school is not the only option. You can learn most of it yourself. Here’s a detailed comment I’ve left in another thread that goes into how to set yourself up to learn HTML.
Start with HTML, move on to CSS, learn a bit of Photoshop to add some graphics to your site. This is “web design”, designing the visual layout and content of a website. You need to be able to do this well if you are going to be a true web designer, especially if you want to be a “one person team” and create awesome sites by yourself, it is critical that you have a strong grasp on HTML and CSS, cross browser compatibility, etc. Even if you want to be a developer more than a designer, you need to have realistic knowledge of what can and can’t be accomplished with today’s web technology.
Once you have that down pat, you can go on to gathering skills to make yourself into a “web developer”. What this means is you are developing non-static pages (HTML is usually static, it isn’t interacted with, unlike Facebook which is a highly interactive site) , usually with the help of a scripting language such as PHP or Ruby, and a database system such as MySQL. My comment linked above also goes into detail about how to set yourself up with such a system.
Web designers and web developers, while similar, often have different skillsets. Web designers tend to be more visual and creative, while web developers tend to be more of a programmer and a logical thinker. It is somewhat rare to find a person who has great creative skills as well as the programming know-how to get the concept into reality, such people are paid very well and are highly valued by their companies or clients.
As for the exact technologies – other than HTML and CSS, it doesn’t matter. You won’t be spending your entire life programming in the language you learned first. What matters more is that you understand the concepts of programming, which can be adapted to different languages you encounter. For instance the dynamic language I was taught was PHP/MySQL, and now I’m working on an ASP.NET C#/MSSQL application while learning the language as I go.
Very few startups are going to hire a web designer with no skills or history of websites they’ve built. But a startup IS a great place to further your education, less people means more reliance on your own abilities and ability to find knowledge, which means more learning for you. For instance, if you developed your web design skills such that you were able to get in to a startup company, you could then start dabbling in web development while still honing your design skills.