Scusate l'intromissione...
comunque i corsi delle università pubbliche sono aperti a tutti, anche ai non iscritti.
Io ti consiglio di seguire i corsi di fondamenti di informatica e di programmazione orientata agli oggetti del corso di laurea in informatico o ingegneria informatica dell'università più vicina a te.
Nella mia università, alla facoltà di ing. informatica, ci sono poi i seguenti corsi che trattano e approfondiscono la programmazione (Java):
Sistemi Operativi: le attività "pratiche" riguardano la prog. concorrente (multithread & co)
Reti di calcolatori: progr. di rete (Socket Java)
Piattaforme SW per il Web: progr. orientata al web (Servlet, HTML, ecc)
Oltre a questi è conveniente anche seguire un corso di algoritmi e strutture dati, anzi credo sia fondamentale.