Una cosa che spieghi tutto per bene non la troverai su internet, devi orientarti sui libri e non te ne basterà uno solo. Essendo molto vasto come argomento, i libri sono divisi per gradi, dal livello base a quello avanzato e poi libri specifici per aspetti particolari.
Se vuoi imparare senza libri devi mettere in conto che ci vorrà un bel po' di tempo.
In tal caso devi imparare le basi del linguaggio, quindi l'uso delle variabili, gli array, i cicli, le strutture di controllo (if/else, switch, while...) e così via.
Poi ci vuole tanta pratica, bisogna scrivere tanto codice, vedere cosa non si è capito e rimediare.
Man mano si aumenta la difficoltà dei progetti e si studiano gli aspetti specifici che servono, per esempio i problemi di sicurezza per restare in tema di login ed aree riservate, ma anche per la proteizione dei dati.
Sperare di imparare partendo da un progetto complicato è un suidicio, ci si perderebbe una marea di tempo perché ad ogni passo nascerebbero problemi che non si sanno risolvere e che invece sono cose banali se si è andati per gradi.