Parti apprendendo HTML5, CSS e JavaScript. Appresi questi potrai fare quello che vuoi con meraviglie grafiche e svariate cose. Abbina all'apprendimento la pratica, sperimenta e sperimenta finché non ti senti perfettamente sicuro.

A questo punto mancano solo i contenuti dinamici. Qui la cosa è più complessa. Ti serve un linguaggio server-side. Il più utilizzato è PHP ma sta via via perdendo colpi. In più è uno dei linguaggi più permissivi che esistono ed è facilissimo scrivere errori imprevedibili.

Altri linguaggi server-side utilizzati al momento sono Ruby (di solito abbinato a RoR), Python (di solito abbinato a Django), (Pharo) Smalltalk (di solito abbinato a Seaside), Java, C#/VB.NET (abbinati al framework ASP.NET), Go e erlang. Gli ultimi due di solito vengono usati in casi un po' particolari.

Ad ogni modo devi apprendere uno di questi linguaggi (Di solito i principianti vanno per PHP, questo ha i suoi pro e i suoi contro. Per me sono molti più i contro).

Con uno di questi linguaggi puoi creare siti dinamici.
Viene normalmente abbinato anche un database SQL che andrà a contenere i contenuti che inserirai nelle tue pagine.

Quando avrai imparato uno di quei linguaggi+SQL e sperimentato abbastanza e ritieni di essere in grado di creare con le tue mani un sito dinamico, allora puoi studiare un framework che ti semplifichi la vita. I framework sono quelli che prima ho scritto tra parentesi dopo il nome del linguaggio: RoR, Seaside, ASP.NET, Djingo. Zend è un framework per PHP.

Ci sono altre tecnologie in ballo, ma le imparerai se e quando ti serviranno.