Como estudiante de secundaria, ¿cómo puedo avanzar en la búsqueda de una carrera / especialización en informática?

Cuando estaba en la universidad, siempre se esperaba que estudiáramos tantos lenguajes de programación por nuestra cuenta (además de estudiar electrónica, microprocesadores y campos más especializados), no porque los usaremos todos después de la universidad, sino según los profesores. , nos están haciendo desarrollar las habilidades para aprender independientemente desde cero. Cualquier cosa que estudiemos en la universidad puede ser reemplazada por algo más nuevo porque las tecnologías siguen cambiando.

  1. Continuar aprendiendo haciendo proyectos paralelos . Esto te obligará a estudiar más y a mirar las cosas desde fuera de la caja. También encontrarás comunidades en línea que comparten el mismo interés. Esto aumenta sus posibilidades de desarrollar grandes productos desde el principio y estar conectado con las personas adecuadas. Cuando te gradúes, estarás delante de tus compañeros de clase debido a esto.
  2. Si bien es cierto que la programación es el enfoque principal de la informática, me di cuenta de que la programación es solo el 20% de todo el tiempo cuando ingresé a la industria de TI después de graduarme. El resto se destinará a la planificación, documentación, prueba o comunicación con los clientes, y muchas de las dificultades en el trabajo ni siquiera son técnicas (por ejemplo, falta de comunicación, presión del tiempo). Entonces, además de la programación y un montón de matemáticas, encontrará que las habilidades de presentación y de negocios serán importantes. Lea: La respuesta del usuario de Quora a la industria y las empresas de TI: ¿Por qué no muchos ingenieros de software crean un sitio web o una aplicación de software excelente, incluso después de 20 años de experiencia en programación?

Las habilidades de presentación serán útiles en demostraciones de proyectos y al mismo tiempo defender tu lado ante los maestros que normalmente actúan como críticos. En el trabajo, las buenas habilidades de presentación te harán ganar puntos de tu jefe y de tus clientes. En esta categoría, también incluiría habilidades de escritura (desde correos electrónicos hasta manuales de usuario).

Habilidades de negocios , como marketing y gestión de proyectos: en el mundo real, no sirve de nada conocer los detalles técnicos si no sabe qué aplicación desarrollar de todos modos (Nota: marketing significa entender los mercados, y no se limita a la publicidad). Además, no tiene sentido agregar tantas características agradables para tener en su proyecto si no cumple con la fecha límite.

Pero sí, también estoy de acuerdo en que habrá muchas matemáticas en la universidad (por ejemplo, cálculo diferencial / integral, análisis numérico, álgebra lineal), y muchos problemas de programación pueden estar relacionados con las matemáticas y la lógica. ¡Incluso un estudiante orientado a las matemáticas puede darse por vencido!

También lea mi respuesta a: Respuesta del usuario de Quora a ¿Qué deben saber los estudiantes de secundaria sobre una carrera de informática?

Yo iría a construir un proyecto propio. La experiencia que puede obtener de ella puede ser enormemente útil en clases posteriores, trabajos, etc. La única forma real de aprender buenas prácticas de codificación creo que es escribir primero cosas que no funcionan / causar problemas para la próxima vez que salte. Directamente a la mejor solución. También deberías acostumbrarte a usar bibliotecas, por lo que muchas personas salen de las clases de introducción a la CS porque piensan que todo debe escribirse desde cero y, en consecuencia, simplemente no están preparados para el mundo real. Diablos, me imagino que algunas personas incluso se gradúan con esta mentalidad.

Las Matemáticas discretas te darán una mejor idea de por qué ciertos algoritmos son más lentos o más rápidos (o incluso podrían hacerte mejor en el diseño de tus propios algoritmos). No hice mucho de esto hasta que llegué a la universidad, pero definitivamente también puede ser útil. Es definitivamente frustrante no tener una idea de la teoría y, como resultado, no tener idea de qué hacer cuando el código es demasiado lento.

ACTUALIZACIÓN: ya que veo que ha cambiado un poco su pregunta, creo que necesito agregar un poco a mi respuesta. Yo sugeriría tratar de obtener una pasantía. Puede que no tenga éxito, pero la primera pasantía es siempre la más difícil de conseguir. Después de eso, solo el hecho de que tenga un trabajo técnico real en su currículum del que pueda hablar lo ayudará cuando hable con las principales empresas. en mi currículum, lo que hice como estudiante de primer año sin experiencia técnica de trabajo.

Dicho esto, no se detenga en los proyectos paralelos: si no encuentra un trabajo, definitivamente debería seguir aprendiendo / haciendo pequeños retoques para seguir mejorando sus habilidades. E incluso si encuentra un trabajo, si aún desea codificar en su propio tiempo, eso también es genial.

En cuanto a los cursos: obtendrás muchos de ellos en la universidad, aunque si hay algo que realmente quieras aprender, no te perjudicará mientras sigas escribiendo el código mientras tanto.

Toma todos los cursos de matemáticas, física y ciencias que puedas. Tome algunos cursos durante las vacaciones de verano también. Hay muchas opciones excelentes para cursos de CS en línea; Udacity, edX, Khan Academy y otros ofrecen excelentes cursos por los que puede obtener crédito. Vale la pena que lo sepas, incluso si no obtienes crédito oficial.

Vaya a Coursera y elija un curso de programación en el nivel de introducción.
Aquí hay un curso de programación metódica en el sitio: Coursera.
Alternativamente, he escuchado que este libro es bastante bueno (y python es un primer idioma amigable): Página en Learnpythonthehardway

Apoyo lo que otros han dicho sobre las matemáticas discretas. ¡Es muy importante, así que debes recoger un libro sobre él! Además, creo que un gran primer idioma para aprender es Java, ya que es tan fácil para principiantes. Encuentra uno que enseñe buen diseño orientado a objetos.

Antes de aprender a programar en cualquier idioma, primero obtenga una comprensión sólida de Matemáticas discretas. Le ayudará a comprender mejor varias áreas de la programación y mejorará significativamente su pensamiento crítico. Las matemáticas discretas me abrieron muchas puertas, y creo que eso también te ayudará.