Como algunas respuestas a esta pregunta ya describen, las plataformas de programación de concursos lo ayudarán en eso (como HackerRank, CodeForces, TopCoder, etc.). Pero le aconsejaría que explore el ProjectEuler por razones personales. Todavía estoy fascinado a través de los años sobre las capacidades de capacitación y la maravillosa curva de aprendizaje del pensamiento computacional / matemático a través de la resolución de problemas de ProjectEuler.
Yo y algunos amigos tenemos muchas soluciones alojadas en GitHub: DestructHub / ProjectEuler.
- Cómo escribir una gran cantidad de archivos a la vez, sin obstruir los recursos de la máquina
- ¿Cómo es AIT, Pune para CSE? ¿Cómo es la multitud, la cultura de codificación y las ubicaciones para CSE allí? ¿Cómo son las instalaciones del albergue? Con 20,000 rango aéreo, ¿vale la pena ir?
- ¿Qué ganan exactamente los creadores de virus informáticos al hacer que las computadoras se bloqueen y no puedan cargarse?
- ¿Por qué se usan computadoras en los aeropuertos?
- ¿Cómo difiere la ingeniería de software de la informática? ¿Son los dos aburridos?
Leyenda: número de soluciones en el repositorio escritas en cada idioma.
Mi consejo es: seleccione un idioma primario que se sienta bien codificando con él (C, C ++, Java, Python, lo que cree que es mejor para usted). Oblíguese hasta el límite para obtener una respuesta razonable (complejidad de tiempo) y desbloquee el hilo de respuestas de ProjectEuler. Esta es una parte difícil ya que a veces tenemos el mal hábito de buscar pistas y lo que sea. Esto no está bien. Pierdes mucho proceso de pensamiento haciendo eso. No hagas eso .
Después de resolver, vea mejores formas de resolver ese problema: verá muchas formas diferentes después de abrir el hilo de un problema específico, ¡incluso las personas que resuelven a mano a través de las matemáticas puras o el ensamblaje X86! Entonces, intente modificar su versión a través de las ideas recopiladas, ajustándola pero también entendiéndola.
Si parece que se requieren algunos conocimientos básicos, algoritmos o matemáticas, busque sobre ellos para comprender completamente la solución del problema. Investigo mucho después de un problema resuelto. Sinceramente, después de años con ProjectEuler, mis habilidades para resolver problemas no son las mismas. Se me ha dado un excelente impacto en mi forma de pensar y ahora puedo resolver problemas más rápido que antes.
Por lo tanto, recomiendo encarecidamente ProjectEuler para crear mejores habilidades para resolver problemas, como programación dinámica (optimización), pensamiento matemático, complejidad computacional, estructuras de datos y muchos otros temas que la respuesta de Quora es restringir a lo que contiene.
ProjectEuler es la forma matemática / comp para divertirse resolviendo problemas 🙂