Voy a darte la verdad del asunto, porque hay muchos que estoy seguro que intentarían restarle importancia a lo que voy a explicar aquí.
¿Teóricamente? Ponte muy bien con el Cálculo avanzado y el Álgebra lineal. Prácticamente nunca lo usarás en el trabajo pero es un requisito estricto para la titulación.
Prácticamente, aprende cualquier lenguaje de alto nivel(recomiendo C# para principiantes) y empieza a ayudar en proyectos opensource en GitHub.
Créeme cuando digo que las calificaciones necesarias para obtener la titulación no tienen casi nada que ver con el trabajo real. Así que si vas a entrar en esto pensando que te vas a pasar la mayor parte del bachillerato y la universidad programando/desarrollando piénsalo otra vez.
Física, Cálculo, Álgebra Lineal, Circuitos Lineales/Digitales. Eso es lo que va a ser el 90% de lo que hagas en tu primer o segundo año en la universidad.
Si quieres un plan de juego:
Practica la memorización de diferentes estructuras de datos de programación/estilos de codificación/patrones de diseño y preguntas de trabajo de programación comunes (puedes encontrar una lista en un sitio llamado glassdoor) para los próximos 3 años. Vas a necesitar una buena memoria.
Inscríbete en un programa de tutoría de matemáticas avanzadas, como Kumon Math a la edad de 15 años y asegúrate de que te inculcan el cálculo de nivel universitario y el álgebra lineal tan bien que podrías hacerlos mientras duermes para cuando termines el instituto.
A los 17 años deberías estar cogiendo tu lenguaje de programación principal (sugiero C/C++ ya que es lo que usan la mayoría de las universidades, pero últimamente se han pasado a NodeJS y esto puede cambiar para entonces, investiga). Si es posible, haz que tu objetivo sea pasar un examen de certificación para ese lenguaje en particular. Por ejemplo, Java tiene el Java SE - Certification Path. Puedes encontrar el material relevante en tu biblioteca local para aprender todo lo que necesitas para pasar la prueba también.
Entra en una buena universidad para el programa, asumiendo que has hecho todo lo anterior, sería un desperdicio ir a una universidad que no es conocida por el campo. Al mismo tiempo, si no has hecho lo anterior, haz exactamente lo contrario (el hecho de tener el título es un plus).
En este punto deberías centrarte en conseguir tu título y la mayor experiencia laboral paralela posible. Algunas Universidades ofrecen programas de Co-op en los que puedes trabajar entre tus términos de estudios, si es posible escoge uno de ellos. Esto es importante, ya que la mayoría de los empleadores en este campo valoran más la experiencia que los títulos.
Por último, consigue un trabajo haciendo lo que te gusta. La programación no es un trabajo fácil, a veces pueden ser días de 12 horas de romperte la cabeza tratando de averiguar por qué una línea de código no está haciendo lo que se supone que debe hacer, o incluso tratando de empacar lo que debería ser una semana de trabajo en 12 horas porque hay algo de misión crítica QUE ABSOLUTAMENTE DEBE HACERSE HOY.
Mi recomendación es encontrar algo que encuentres a partes iguales desafiante (para que no te aburras hasta la muerte) y agradable (para que no te estreses hasta la muerte). Adquiere tanta experiencia en varias herramientas y lenguajes como puedas a lo largo del camino, ya que te serán útiles también.
Está realmente seguro de que esta es la carrera que quieres, ya que hay MUCHOS trabajos más fáciles y bien pagados (especialmente cuando estás empezando y los empleadores tratan de reducir tu salario basándose en tu experiencia).