Vi darò la verità della questione, perché ci sono molti, ne sono sicuro, che cercheranno di sminuire quello che spiegherò qui.
Teoricamente? Diventa molto bravo nel calcolo avanzato e nell'algebra lineare. Praticamente non lo userete mai sul lavoro, ma è un requisito essenziale per la laurea.
Praticamente parlando, imparate qualsiasi linguaggio di alto livello (raccomando C# per i principianti) e iniziate ad aiutare con progetti opensource su GitHub.
Credetemi quando dico che le qualifiche necessarie per ottenere la laurea non hanno quasi nulla a che fare con il lavoro effettivo. Quindi, se state pensando di passare la maggior parte della fine del liceo e dell'università a programmare/sviluppare, ripensateci.
Fisica, calcolo, algebra lineare, circuiti lineari/digitali. Questo è ciò che sarà il 90% di ciò che farai nel tuo primo anno o due all'università.
Se vuoi un piano di gioco:
Pratica di memorizzazione di diverse strutture di dati di programmazione / stili di codifica / modelli di progettazione e domande comuni di lavoro di programmazione (è possibile trovare una lista su un sito chiamato glassdoor) per i prossimi 3 anni. Avrai bisogno di una buona memoria.
Iscriviti a un programma avanzato di tutoraggio matematico, come Kumon Math all'età di 15 anni e assicurati che ti insegnino il calcolo a livello universitario e l'algebra lineare così bene che potresti farli ad occhi chiusi quando avrai finito il liceo.
Entro i 17 anni dovresti scegliere il tuo linguaggio di programmazione principale (suggerisco C/C++ perché è quello che usano molte università, ma ultimamente hanno scelto NodeJS e questo potrebbe cambiare per allora, fai la tua ricerca). Se possibile, fai il tuo obiettivo di passare un test di certificazione per quel particolare linguaggio. Per esempio Java ha il Java SE - Certification Path. Puoi trovare il materiale pertinente nella tua biblioteca locale per imparare tutto ciò di cui hai bisogno per passare anche il test.
Entra in una buona università per il programma, assumendo che tu abbia fatto tutto quanto sopra, sarebbe uno spreco andare in un'università che non è conosciuta per il campo. Allo stesso tempo, se non hai fatto quanto sopra, fai l'esatto contrario (avere solo la laurea è un vantaggio).
A questo punto dovresti concentrarti su come ottenere la tua laurea e quanta più esperienza lavorativa secondaria possibile. Alcune università offrono programmi Co-op dove puoi lavorare tra i tuoi termini di studio, se possibile scegli uno di questi. Questo è importante in quanto la maggior parte dei datori di lavoro in questo campo pesa di più l'esperienza che la laurea.
Infine, trova un lavoro facendo ciò che ti piace. Programmare non è un lavoro facile, a volte possono essere giorni di 12 ore a spaccarsi la testa cercando di capire perché una linea di codice non sta facendo quello che dovrebbe fare, o anche cercando di stipare quello che dovrebbe essere una settimana di lavoro in 12 ore perché c'è qualcosa di mission critical CHE DEVE ASSOLUTAMENTE ESSERE FATTO OGGI.
La mia raccomandazione è di trovare qualcosa che trovi in parti uguali stimolante (così non ti annoi a morte) e divertente (così non sei stressato a morte). Acquisite quanta più esperienza possibile in vari strumenti e linguaggi lungo la strada, perché vi torneranno utili.
Siate davvero sicuri che questo è il percorso di carriera che volete, perché ci sono MOLTI lavori più facili e ben pagati (soprattutto quando si è agli inizi e i datori di lavoro cercano di spillare il vostro stipendio in base alla vostra esperienza).