Parece que te beneficiarías unirte a algún tipo de grupo con el que debatir algo de lo que estás haciendo y obtener una perspectiva de lo que hacen otras personas. Incluso simplemente conseguir que algunos amigos que son competidores potenciales dignos compitan contigo es una forma bastante segura de obtener este tipo de grupo. Probablemente sea más fácil que conseguir un entrenador confiable, ya que la mayoría de los programadores competitivos están ocupados de otras maneras (trabajo, escuela, etc.) y no pasan todo el día compitiendo o preparándose.
El mejor consejo general sobre cómo mejorar que puedo darle es:
- Analice por qué no está mejorando (¿errores? ¿No poder resolver problemas? ¿Qué tipo de problemas?). Mantener un registro de lo que haces durante los concursos puede ser muy útil.
- Cómo te estás preparando es al menos tan importante como cuánto te estás preparando. Resolver 200 problemas fáciles en SPOJ o Codeforces no es útil, por ejemplo. Yo personalmente recomiendo (al igual que muchos otros) hacer problemas que son un poco más difíciles de lo que crees que puedes hacer, pero YMMV. No te rindas demasiado rápido, y si tienes que ver soluciones (eventualmente, deberías), asegúrate de entender todo lo que puedas sobre el problema / solución antes de continuar. Obtienes comprensión al … bueno, al comprender los problemas / soluciones, no solo al hacerlos.
- No te subestimes (ni sobreestimes) a ti mismo. Realmente no necesitas [insertar recursos específicos aquí] para mejorar mucho.