Ну это совсем простой вопрос :)
- Нужно очень хорошо владеть HTML4 и в наше время HTML5
- Нужно очень хорошо владеть CSS. В идеале хорошо бы прочесть официальную спеку по CSS. Лично я стал хорошо понимать CSS только после её прочтения.
- Необходимо хорошо знать JavaScript. Для того, чтобы писать хорошо на нём, придётся как следует разобраться с программированием как таковым, иначе вы будете писать плохой код на JavaScript, а он в свою очередь жестоко наказывает за небрежное обращение. Не помешает знание какиех-нибудь библиотек и фреймворков для JS (например, jquery, dojo, etc), но это надо делать существенно позже, а точно не в начале, иначе вы рискуете начать пользовать мощностями не понимая, как они работают
- Надо ознакомиться с тем, как работает HTTP, хотя бы поверхностно. Хотя бы поверхностно понять, как работают веб-сервера. Понять, каким образом браузер получает данные с сервера.
- Необходимо понять, какие есть способы динамического генерирования контента
После всего этого придётся принять важное решение. Придётся выбирать язык программирования для серверной части. Тут уж выбор зависит от вас и путь изучения будет зависеть от вашего выбора.