En la entrada de hoy vamos a hablarte de la programación competitiva y por qué debería interesarte este apasionante mundo que cada día cuenta con más adeptos.
Estamos acostumbrados a ver todo tipo de competiciones de deportes tradicionales como el fútbol, baloncesto, tenis, etc. Y recientemente hemos visto aparecer también competiciones y torneos de videojuegos o “eSports”, que arrasan entre los más jóvenes.
Pero, ¿sabías que también existen las competiciones de programación? En ellas los programadores participantes compiten para resolver problemas en el menor tiempo posible. Los lenguajes o entornos varían según las reglas y características de cada competición, siendo C++, Python y Java algunos de los más comunes.
¿Cómo funciona una competición de programación?
En un torneo de programación competitiva, los participantes reciben un listado de problemas. Cada problema consta de una descripción y de uno o varios casos de ejemplo de entrada y de salida de datos. Los participantes entonces deben escribir programas cuyos algoritmos sean capaces de transformar correctamente los datos de entrada en los datos de salida deseados.
Una vez han completado el programa, envían el código a un juez automático, que lo ejecutará con los casos de prueba secretos. Si el programa da los datos de salida esperados y se ejecuta dentro de los límites de tiempo y memoria establecidos, la respuesta se dará por válida.
¿Para qué sirve la programación competitiva?
La programación competitiva no solo sirve para competir, sino que además es una gran herramienta de aprendizaje. Existen problemas para todos los niveles y abarcan todo tipo de conceptos de programación: estructuras de datos, bucles anidados, recursividad, etc… También es frecuente encontrar problemas que requieren la aplicación de fórmulas matemáticas.
Por todo esto, los problemas de programación son muy útiles para poner a prueba y ampliar tus habilidades como programador.
Las empresas buscan talento en las competiciones de programación
Algunas compañías ya tienen sus propias competiciones de programación, como la Code Jam de Google o la Hacker Cup de Facebook. Son competiciones internacionales en las que participan los mejores programadores de todo el mundo.
Estos torneos cumplen una doble función, ya que además de fomentar la programación, sirven también para captar talento. Y es que sería raro ganar uno de ellos y que no te lluevan ofertas de trabajo.
Competiciones de programación en España
En España existen actualmente varias competiciones de programación de ámbito nacional, tanto en modalidad presencial como online. Algunas de ellas son:
Cómo iniciarse en la programación competitiva
Si todo esto de la programación competitiva ha captado tu interés y te gustaría aprender, te recomendamos que empieces a practicar con problemas sencillos en alguna de las muchas webs de problemas que existen actualmente.
En España contamos con la web Acepta el Reto, que contiene problemas íntegramente en español y cuenta con un amplio abanico de niveles de dificultad. Pero hay muchas webs internacionales con problemas en inglés, como SPOJ, CodeChef y LeetCode