Imparare "tutto" è impossibile.
Il miglior motivo per imparare è iscriversi a un'università come specializzando in informatica. Poi ogni giorno sarai circondato da altri che condividono il tuo interesse, assisterai a molte lezioni tenute da esperti di livello PhD e leggerai libri e farai progetti e avrai accesso a esperti a cui potrai fare domande. Lo farai a tempo pieno ogni giorno per quattro anni. Alla fine, quando ti laureerai, sarai un "principiante certificato" che ha ancora molto da imparare. Poi, mentre lavorate su progetti nel corso degli anni e cambiate lavoro, imparate sempre di più. Ma man mano che impari di più ti accorgi che stai diventando uno specialista in pochi campi e sapere "tutto" è sempre impossibile.
Se il percorso universitario non è possibile allora prova a fare le stesse cose per conto tuo ma accetta che il processo sarà molto più lento. Trova altri, magari solo on-line nei social media che sono sviluppatori di software. Leggi libri. Sì, testi completi sugli argomenti che vi interessano. Ci sono buoni corsi on-line, ma la cosa più importante è provare a fare progetti. La cosa migliore è lavorare su progetti Open Source con altri. Ma farete prima i vostri piccoli progetti. Troverete MOLTI blocchi stradali anche in progetti semplici, ma ogni volta fate la ricerca e imparate e poi continuate. Dopo 1.000 volte avete imparato qualcosa.
Lo faccio da decenni e ammetto che ogni progetto è per lo più pensare prima a "come dovrebbe funzionare questa cosa?" poi abbandono un'idea dopo l'altra finché non ne trovo una che mi sembra buona e poi cado nell'altra modalità di chiedere "perché questa cosa non funziona come penso dovrebbe e devo sistemarla. Alla fine funziona abbastanza bene e ricomincio con il progetto successivo. Quello che sto dicendo è che lo sviluppo di computer (hardware e software) riguarda la risoluzione di problemi. Devi divertirti a risolvere i problemi.