Certo e' che 20 anni di programmazione procedurale ti limitano parecchio.
Il problemma non sono gli altri linguaggi (javascript, C++, C#, java, PHP, Python), ma il paradigma di programmazione: tutti questi linguaggi supportano la programmazione ad oggetti.
Se uno conosce la programmazione ad oggetti in un linguaggio, passare ad un'altro linguaggio non e' eccessivamente complicato: diciamo che il 75% delle difficolta' si riducono ad imparare una nuova sintassi (qualche giorno/settimana di studio). Poi, la maggior parte del tempo la perdi nell'imparare la nuova libreria. Ma e' una questione mnemonica! Un file lo apri, lo leggi, lo scrivi e lo chiudi piu' o meno nello stesso modo in qualunque linguaggio. Sono fondamentalmente solo dettagli.
Ora, la programmazione ad oggetti non si impara in una settimana: in una settimana impari i concetti. Ma applicarli e' tutt'altra questione.
Come organizzare un'applicazione in oggetti, e come far si che questi oggetti possano essere componibili nei modi piu' disparati e' una competenza che si acquista solo con tanta esperienza.
E questo e' il primo ostacolo.
Le applicazioni Web hanno un'altra difficolta' intrinsecha, diciamo 2:
1) sono applicazioni client server, dove ci possono essere 0 o 10.000.000 di client (per fare un esempio), mentre il server e' unico (ed anche qui non e' detto). Il problema consiste nel progettare l'applicazione in modo che non possa capitare che due client interferiscano tra di loro.
Non e' complicato, ma una questione concettuale, che bisogna tenere sempre in mente
2) un'applicazione Web richiede l'impiego di una miriade di teconologie che differiscono tra lato client e lato server. Anche se si lavora da un solo lato, e' necessario aver chiaro come funziona l'altra parte per non fare pasticci complicatissimi da correggere.
Che dire!
Di sicuro puoi fare delle prove in locale con tutte queste tecnologie.
Si trova moltissimo in forma OpenSource/Free, sia per Windows che per Linux o Mac.
Raramente l'installazione e' piu' complicata di spachettare un file compresso in una directory (anche se e' un EXE).
La parte un po' piu' rognosa e' far si che i vari pezzi di tecnologia parlino tra di loro in modo corretto.
Nella maggior parte dei casi si tratta semplicemente di modifica qualche file di configurazione. La parte complicata e' nel capire quale file modificare, e cosa scriverci dentro!
Ovviamente trovi tutto con Google, ma vai tu a capire le spiegazioni!
Certo, ci sono framework gia' pronti, ma se li usi, rischi di non avere chiaro come tutti i pezzetti interagiscono tra di loro.
Il consiglio di studiare sui libri e non su Internet, visto che sei alle prime armi, non prenderlo come un semplice consiglio, ma come un ASSIOMA!