Eventos de programación: Google HashCode

por:

Te mostramos los eventos de programación como el Google HashCode

Una de las cosas en las que más me gusta participar, son los eventos de programación, y la semana pasada no pude dejar pasar la oportunidad de concursar en el Google HashCode. Por eso hoy te cuento por qué deberias asistir a este tipo de eventos, los cuales considero muy importantes y cómo funciona uno de los más conocidos, el Google HashCode.

¿Por qué ir a eventos de programación?

Nuestro hub en el Google HashCode con todos los participantes

Apuntarte a un evento de programación, tiene multitud de beneficios:

  • Compruebas tus conocimientos y eres capaz de medirlos.
  • Conoces compañeros del sector, lo que te va a ayudar a incrementar tus contactos.
  • Aprendes nuevas técnicas para resolver problemas.
  • Obtienes stickers y regalos de tus empresas favoritas.

¿Qué es el Google HashCode?

El Google HashCode es un evento mundial realizado por Google de manera anual, donde los programadores se enfrentan a un problema similar a los que se enfrentan los ingenieros de Google. La manera de participar es online, aunque algunos, como nosotros, nos reunimos en hubs o centros de participación. Otra característica es que no admiten que se trabaje de manera individual y por ello es necesario realizar grupos.

Los problemas a resolver en el HashCode

Según mi experiencia en este evento, todos los problemas a resolver están enfocados a minimizar o maximizar un resultado. Esto no es trivial, ya que se trabaja con varios conjuntos de datos, siendo algunos de ellos de un tamaño considerable. El problema de este año fue optimizar el uso de diversas cachés para un servidor de video (YouTube), teniendo en cuenta las latencies y el número de peticiones:

El problema del Google HashCode 2017 uno de los mayores eventos de programación

El enunciado completo lo podéis ver aquí. Otros problemas planteados en años anteriores han versado sobre minimizar la ruta que debería seguir un coche de Google Street View para tomar imágenes de todo un barrio, o sobre minimizar rutas para el reparto de paquetes con drones.

Las soluciones del Google HashCode

Sí, no es una errata, el problema planteado en el HashCode no tiene una solución única, es más, es posible que la mejor solución planteada no sea la más óptima. Así que cada equipo, siguiendo las normas del enunciado se encarga de generar un fichero de texto con los pasos que se deberían realizar. Este fichero es analizado por el servidor de Google y nos genera una puntuación.

Panel de soluciones para el evento de programación Google HashCode

Como podéis ver en la imagen superior, el panel de soluciones consta de 3 apartados:

  1. La opción para subir nuevos ficheros con los pasos.
  2. El panel donde nos informa de la mejor puntuación obtenida para cada conjunto de datos.
  3. El panel donde podemos ver los puntos para cada archivo de solución subido.

Otra característica remarcable, es que se puede trabajar en cualquier lenguaje de programación o tecnología que uno desee. Por lo que esto ayuda mucho a plantear soluciones muy diversas.

En nuestro hub, algunas de las ideas que se plantearon para resolver el problema anterior, fueron las siguientes:

  • Utilizar distintas estructuras de datos, centrándonos en aquellas cuyo uso es más rápido (arrays, particionado o chunks, etc).
  • Utilizar diversas funciones de coste, algunas de ellas teniendo en cuenta el tamaño del video y otras no.
  • El uso de algoritmos evolutivos, que fuera mejorando la solución en cada iteración (esta solución fue la que mejor funcionó).

 

Espero que este artículo te haya gustado, ¿has participado en este evento o en otros similares?, coméntanos cómo fue.

 

Un saludo.

Deja una Respuesta