Ma perchè tutti chiedono da che linguaggio iniziare? Guardate che programmare mica è come avvitare bulloni su una catena di montaggio.
Le cose fondamentali sono:
1. conoscenza dell'architettura dei calcolatori
2. conoscenza delle problematiche e degli algoritmi usati per risolverle
3. tanta fantasia e capacità di produrre soluzioni innovative
Quello che ti posso consigliare è di partire da un linguaggio di alto livello, uno che offra delle potenti astrazioni ( basic va bene, era usatissimo negli anni '80 proprio per tale scopo, oggi è python il nuovo basic ). Studiatelo un pò, poi cominciare ad inventarti problemi ( o magari cerco in rete problemi di complessità via via maggiore ) e prova a creare dei programmi per risolverli ( no, non seguire i video su youtube, ti ridurresti a copia-incollare quello che vedi ).
Tutto ciò dovrebbe soddisfare il punto 3 e in parte il punto 2 ( per risolvere problemi sarai costretto a studiare ed usare anche algoritmi noti ).
Dopo di ciò comprati un bel libro ( tipo Architettura e organizzazione dei calcolatori di Stallings ) e un libro ( oppure vai di tutorial, perchè se ne trovano parecchi su internet ) sulla programmazione assembly x86. Questa parte soddisfa il punto 1.
A questo punto avrai le conoscenze e la flessibilità mentale per studiarti le cose di volta in volta necessarie:
1. architettura di windows, se vuoi creare programmi ottimizzati per tale os o magari vuoi creare virus per windows
2. architettura restful, se vuoi implementare servizi fighissimi client/server ( tipo i mega siti web che ci sono su internet )
3. ecc...