Condivido quanto è stato detto da chi ha risposto prima di me e vorrei aggiungere un paio di cose.
Io non sono completamente autodidatta, ho imparato diversi linguaggi di programmazione studiando da sola, ma la struttura logica degli algorimi, a prescindere dal linguaggio di programmazione, mi è stata insegnata. Io credo che la difficoltà maggiore nell'imparare a programmare quando non si ha alcuna base, sia proprio comprendere le strutture di base di impostazione degli algoritmi. A mio parere, questo primo studio, se individuale, richiede molto tempo, ma si può fare anche usando lo pseudocodice, che ti aiuta a comprendere la logica con cui devi lavorare, inoltre ha il vantaggio che puoi applicarlo a qualsiasi linguaggio.
La scelta del linguaggio è importante perchè ti forma nel modo di ragionare, e secondo me dipende da quanto e cosa intendi approfondire, linguaggi come C e Java, sono abbastanza completi e coprono certamente una gamma più vasta di strategie di programmazione, ma proprio per questo sono anche complessi.
In ogni caso, la strada migliore secondo me parte prendendo codici relativamente semplici, già scritti e provando ad implementarli per vedere il risultato prodotto e procedere modificandone delle parti. Successivamente si può provare a partire con un programma completo da realizzare.
Aggiungo solo che, se il tuo obiettivo e la programmazione per il web, devi in ogni caso conoscere l'HTML, che non è un linguaggio di programmazione ed è estremamente semplice (puoi impararne le caratteristiche principali in una sera!), per cui la tua scelta di programmazione, che cada su javascript, java, php o asp ecc ... deve comunque essere preceduta dalla conoscenza dell'HTML.
In ogni caso, metti in conto che solo una infinità di esercizi pratici ti può aiutare.