¿Qué harías? ¿Cuál hubiera sido tu estrategia si hubieras tenido la oportunidad de volver a comenzar la programación de aprendizaje?

Ciertamente usaría esta oportunidad.

Primero, trataría de aprender algunos algoritmos en la escuela secundaria. Estaba haciendo competencias de programación en mis años de escuela secundaria, pero nunca aprendí ningún algoritmo más complicado que la fuerza bruta. La forma en que logré avanzar a niveles de competencia totalmente ucranianos sigue siendo un misterio para mí, pero allí me reí seriamente por tratar de resolver un problema de DP (¿o fue algo basado en gráficos?) Usando la fuerza bruta. Esto habría sido difícil, ya que mis años de escuela secundaria fueron antes de 2000 (¡TopCoder ni siquiera se había inventado todavía!), Tuve acceso a Internet durante aproximadamente una hora por semana (en el laboratorio de mi escuela) y no recuerdo haber tenido ningún libro sobre algoritmos Pero supongo que si me lo propongo, habría encontrado una fuente del conocimiento precioso. La escuela secundaria es el momento de aprender conceptos básicos de algoritmos.

Luego, pasaría menos tiempo en estudios que no sean CS / Matemáticas / Física durante los años de secundaria y universidad, y pasaría el tiempo resultante en competencias y temas de CS. Perdí muchísimo tiempo en historia, literatura, química, biología y cualquier otra cosa en nuestro plan de estudios tratando de hacer todo a la perfección. Me gradué con una medalla de plata de la escuela (lo que significa que obtuve las mejores calificaciones en todas las materias, excepto la historia) y con honores de la universidad (mejores calificaciones en todas las materias, excepto dos), y no es que me haya ayudado mucho en mi vida futura, o en programación de concursos. Al mismo tiempo, aprendí sobre Brainfuck solo después de la graduación y sobre la programación funcional, incluso más tarde. No es bueno para un programador profesional.

Intentaría ingresar al equipo de ACM de nuestra universidad. Mi maestro de escuela secundaria creía que las competencias son buenas solo en la escuela secundaria para ingresar fácilmente a la universidad de su elección, y después de eso son completamente inútiles. Fue muy convincente, y durante mis primeros tres años en la universidad hice exactamente 0 horas de competencias de programación, un desperdicio increíble.

No tomaría el aburrido trabajo a tiempo parcial relacionado con la banca que tomé después del tercer año en la universidad; Tenía la opción de realizar un trabajo más relacionado con el algoritmo (y mucho más interesante) en el procesamiento de imágenes, y preferiría tomar esto en su lugar.

Comenzaría con los conceptos básicos y los practicaría hasta que los controlara y luego avanzara hacia el aprendizaje del estilo OO y la estructura de datos juntos y también aplicando lo mismo en la práctica.
y, por último, cuando domine el lenguaje, comenzaré a implementarlo intentando desarrollar softwares.

Aprenderé a programar resolviendo problemas … y también aprenderé muchos algoritmos y, obviamente, matemáticas como matemáticas discretas, teoría de números, geometría, etc.