Antecedentes: comencé a aprender algoritmos en mi primer año en 2013 después de tener C ++ como uno de mis cursos en la escuela.
Comenzar es un solo paso fácil que es cierto hasta la eternidad. Resuelva problemas más difíciles de lo que puede resolver cómodamente ahora utilizando editoriales y el código de otras personas como referencia.
Esto era lo que hacer. Ahora como hacerlo. Intenta resolver problemas sencillos en Codechef para empezar. Luego aumenta gradualmente el nivel de dificultad. Cuando pueda resolver problemas medios o se sienta cómodo con la programación, comience a hacer Codeforces y Topcoder.
- ¿Tengo que aprender estructuras de datos antes de aprender algún lenguaje de programación?
- Programación de computadoras: Como ingeniero de software, ¿qué cosas crees que son "innecesariamente complicadas"?
- ¿Cuál es el mejor algoritmo de procesamiento de imágenes para comparar una pintura recibida como entrada contra la base de datos y seleccionar la coincidencia más cercana?
- ¿Cuáles son algunos algoritmos inesperados que se usan en física y ciencia de materiales?
- ¿Es la codificación competitiva todo sobre estructuras de datos y algoritmos?
Para concursos, participa y trata de resolver tantos problemas como puedas. Después del concurso, resuelva un problema adicional que no pudo resolver en el concurso. Definitivamente debería implicar codificación y aceptación, sin excusas.
Para preguntas de práctica, haz tu mejor esfuerzo para resolver el problema. Si se acepta, consulte los editoriales y el código del programador principal. Puede ser quien escriba un buen código y usted pueda entenderlo. Si es un problema difícil de codificar, consulte el código de muchas personas. Si no se acepta, depure hasta que ya no pueda, preferiblemente de 6 a 12 horas en un solo código. Luego, que se refieren a editoriales, lo codifican y lo aceptan, y finalmente se refieren a editoriales y el código de otras personas.
Estas plataformas son suficientes. Si desea más participación o premios, puede optar por hackerrank y hackereath. Aún más, para la práctica de icpc y preguntas más lógicas, icpc archive. Y si necesita resolver los problemas mejores o más difíciles sobre un tema, Spoj. Luego está la CSAcademy también. Hay más, a2oj, poj, uva, etc., que tienen beneficios únicos y los conocerá una vez que los necesite, y definitivamente no se recomiendan para comenzar.
No he probado el entrenamiento de USACO yo mismo porque lo supe muy tarde. Te sugiero que pruebes eso también al menos una vez.
En etapas avanzadas, puede sentir la necesidad de no codificar algunas cosas. Para ser honesto, eso es pereza en la mayoría de los casos. Una buena regla general es codificar cada tipo de problema al menos una vez por su cuenta. Y esa etapa está lejos en este momento, por lo que no debe decidir sino codificar.
No dude en sugerir modificaciones para que esta respuesta sea útil para un gran número de personas en esta comunidad.