L'unico modo per imparare bene un linguaggio e' provare a farci qualcosa di concreto. Inventati un progetto che ti piacerebbe realizzare e comincia. Una volta che hai una conoscenza di base, basta coi libri: mettiti a scrivere codice e cerca su testi e documenti le cose che ti serve sapere di volta in volta.

Consiglio caldamente, anche per le piu' semplici applicazioni, di usare un framework. Personalmente trovo che per iniziare CodeIgniter sia ottimo, soprattutto per la documentazione davvero ben fatta.