La migliore introduzione alla programmazione professionale che conosco è un libro chiamato The Pragmatic Programmer . Descrive vari aspetti dello sviluppo del software ed è utile per imparare ciò che non si conosce. È anche piccolo e facile da digerire rispetto a un altro completo (hur hur hur) come codice completo .
Per lo sviluppo web, il tuo prossimo passo è quello di conoscere il Model-View -Controller modello. Costruire un piccolo progetto utilizzando un framework come Yii o CodeIgniter dovrebbe permetterti di capire come funziona.
L'idea più importante alla base di MVC è separazione delle preoccupazioni . Se separi bene il tuo codice, le modifiche a una parte di un programma non influenzeranno negativamente le altre parti.
Il tuo codice impiegherà circa l'80% della sua durata in modalità di manutenzione. Questo è quando devi tornare indietro per correggere bug o aggiungere nuove funzionalità. Dopo un anno, non ricorderai più cosa hai codificato. (Non ricordo cosa ho codificato il mese scorso.) Più il codice è leggibile e ben strutturato, meglio è per futuro . La leggibilità del codice è molto importante.
Anche la documentazione del tuo progetto è importante! Non vuoi provare a ricordare quale sia la password del database. Mantieni i dati di accesso e di hosting in un luogo sicuro.
Infine, l'apprendimento di nuove lingue (plurale!) ti aiuterà a diventare un programmatore migliore. Mi piace Python, quindi ti suggerisco di iniziare con quello.
Inoltre, se sei così incline, il Tao of the Hacker potrebbe rivelarsi illuminante .
UPDATE 2018: Da quando è stata posta questa domanda, si sono aperte diverse opzioni per gli sviluppatori autodidatti per ottenere un'istruzione più formale. Continuo a pensare che i libri sopra riportati siano un ottimo fondamento per la programmazione artigianale, ma i piani di studio menzionati di seguito possono aiutarti a ottenere solide competenze tecniche.