Personalmente non credo alla "scalata" da programmatore a dirigente... ormai i dirigenti e i responsabili sono scelti come figure a parte con preparazione ad-hoc, serve gente preparata per quel ruolo direzionale e tipicamente si prendono ingegneri gestionali o comunque figure simili con esperienza pregressa. Così come marketing e altri settori aziendali cercano figure preparate in quell'ambito e non programmatori, a meno che la realtà aziendale non sia piccola. Ci sono sicuramente le eccezioni, ma non contarci troppo...
La programmazione di per se paga fino a un certo punto ed è ovviamente solo una delle cose che puoi fare, forse la più "banale"... ciò che ti fa salire di livello è il riuscire a far valere conoscenze di livello avanzato.
Di programmatori il mondo è pieno, di bravi programmatori non ce ne sono molti ma comunque abbastanza, di veri "scienziati informatici" invece ce ne sono pochi.
In ambito informatico-ingegneristico attualmente tirano molto la robotica (soprattutto in ambito di computer vision) e il machine learning (data mining e big data). Una laurea triennale in scienze informatiche ti insegna a programmare e a seguire delle buone regole per la programmazione, ma la roba veramente "hot" la assaggi (giusto un assaggino) in magistrale se hai la fortuna di studiare in una università con tale offerta. Io per esempio alla magistrale ho studiato Bioinformatica (genomica), Computer vision (trattamento di immagini, riconoscimento di persone, sensori depth...), Data mining, machine learning, intelligenza artificiale... A questi livelli la programmazione è si importante, ma non è più il tuo lavoro, è solo uno strumento.
Esperti in questo settore sono molto (molto) rischiesti all'estero, purtroppo non molto in Italia visto che siamo indietro in questi campi.
Io per esempio sono in tesi magistrale e mi sto specializzando in machine learning, ma se inserisci "machine learning" in un qualsiasi sito per trovare lavoro ottieni si e no una decina di offerte in tutta Italia, mentre se cerchi "programmatore" (o "Java", o "C++"...) trovi centinaia se non migliaia di offerte ma spesso ben poco gratificanti perchè generiche e non di rado gli stessi datori di lavoro non capiscono cosa loro stessi chiedono e fanno copia incolla da altri annunci di lavoro...
Se vuoi prenderti avanti assicurati di tenerti aggiornato, prenditi in anticipo anche se ciò che studi, cerca di appassionarti e approfondire per conto tuo. Sii creativo e creati un tuo portafoglio di lavori anche stupidi ma che mostrino la tua passione (aziende serie gradiranno dare un occhio a ciò che hai fatto, che varrà come "esperienza"). Il tuo livello di inglese dovrebbe essere almeno B2, soprattutto se vorrai lavorare in un contesto aziendale internazionale.