Cómo triunfar en los campeonatos de programación

Si te gusta programar puedes llevar esta habilidad al siguiente nivel ¿Cómo? Competencias de Programación. Las hay a nivel secundario, universitario y abiertas a todo público pero... ¿Qué debes saber o hacer para no fracasar en el intento? Aquí un par de consejos que te pueden ayudar.

Trabajo en equipo

La mayoría de las competencias se compone de la participación en equipos, la idea de ésto es que estén compenetrados y sean capaces de resolver problemas en conjunto. Se incluyen temas como programación dinámica, estructuras de datos, eficiencia (los programas tienen tiempo limite de ejecución), matemática, etc, puede que no seas un experto en todos los temas pero si cada integrante lo es en un tema particular cubrirán todo o gran parte de éstos. Ten un guía, siempre tienen buenos consejos y te ayudaran a resolver o abarcar problemas cuando ya nadie más tiene soluciones.

Comida

"Uno no puede pensar bien, amar bien, dormir bien, si no ha comido bien." Virginia Woolf.

La comida siempre es importante, en estas competencias debes saber que pasarás horas frente a un computador muchas veces con la restricción de salir (excepto ir al baño acompañado, si... un supervisor) por eso es necesario que dentro de tus cosas debe estar una dotación de comida, se recomienda chocolate o sándwich y la infaltable Coca-Cola. Siempre puedes compartir y conversar con tu equipo, ésto no está prohibido pero si con los demás.

La competencia

Generalmente se trata de resolver una cantidad de problemas en un tiempo determinado, gana el equipo que resuelva la mayor cantidad de problemas y en caso de empate el que lo hagan en menos tiempo pero ¿Cómo ser los más rápidos con tu equipo?

  • Generalmente se premia al equipo que resuelve el primer problema ¿Entonces? al comenzar la competencia el integrante que tipee más rápido queda en el computador y escribe la estructura del programa mientras los demás buscan este problema fácil. Esta etapa junto con resolver el problema suele durar 2 a 3 min.

  • Luego de pasar esta estresante primera parte, cada integrante intente resolver un problema, cuando ya se tenga una idea pasar a tomar el turno en el computador.

  • Después de horas programando se suele llegar a tiempos muertos donde no sabes qué hacer, cómo resolver el problema o por qué este falla, es hora de pedir ayuda, estos tiempos no son buenos y lo mejor es discutirlo con tu equipo y encontrar una solución para así seguir avanzando.

Tips extras

  • Los enunciados suelen ser largos (son para explicar el contexto y confundir a la vez) leelos con calma pero lo más importante son el input y output del programa, un "\n" puede marcar la diferencia entre un "Wrong Answer" y un "Accepted".

  • Los jueces siempre probarán tu solución con casos diferentes a los de ejemplo. Busca casos de borde.

  • Compila tu programa con los flags indicados, si no lo haces corres el riesgo de recibir un "Compilation Error".

  • Para practicar puedes utilizar jueces online, en estos sitios hay una gran variedad de problemas y muchos de éstos son de competencias anteriores.

  • Durante las competencias no tendrás acceso a Internet pero puedes llevar apuntes o libros de ayuda.

  • Si el resultado no es el que esperabas siempre puedes participar en otras competencias, prepararte y volver en un año.

  • Aprovecha estas competencias para conocer personas, hay eventos de bienvenida y despedida.

  • Siempre es una buena instancia para conseguir trabajo o prácticas, hay empresas que buscan este tipo de talentos.