Saltar a contenido

Recursos para aprender

En esta sección vamos a echar un vistazo a una serie de recursos externos que utilizaremos para reforzar los conceptos que veremos y practicar con distintos problemas prácticos.

1. Acepta el Reto

Acepta el Reto es una fantástica web recopilatoria de problemas o retos de programación, elaborada por los compañeros de la Facultad de Informática de la Universidad Complutense de Madrid. Podemos registrarnos de forma gratuita, y acceder a todo el catálogo de retos que ofrece. Aquí tenemos la web oficial.

La principal "desventaja" que ofrece esta web es que sólo admite que programemos en los lenguajes C, C++ o Java. Pero, por lo demás, es un excelente repositorio para poner a prueba nuestras capacidades, aunque si queremos utilizar otros lenguajes sólo podamos probar los problemas localmente, sin subirlos a la plataforma.

Podemos consultar los retos agrupados por categorías para practicar un concepto en concreto (por ejemplo, el uso de bucles simples). En el menú superior vamos al apartado Problemas y elegimos la opción Por categorías. Eligiendo una categoría (por ejemplo, Construcciones de programación) podemos ir navegando por sus subcategorías hasta encontrar la que nos interese:

Una vez elegida la subcategoría aparecen los retos relacionados con ella. En cada reto veremos una barra de color a la derecha que indica cuántos usuarios han podido resolverlo del total que lo han intentado. Cuanto más grande sea la barra, más asequible es ese reto.

2. CodeWars

CodeWars es otra web recopilatoria de problemas de programación con una gran cantidad de retos en inglés. Los agrupa por distintos niveles de dificultad que mide en etapas kyu, simulando un dojo de artes marciales. Los retos de nivel más bajo son los que tienen mayor numeración kyu, y a medida que la dificultad aumenta ascendemos de nivel kyu.

En CodeWars podemos filtrar los retos que nos interesan por distintos criterios: nivel de dificultad, lenguaje de programación en que queremos intentarlo, temática (por ejemplo, retos sobre gestión de cadenas de texto), etc. Aquí tenemos el enlace a la web oficial para registrarnos.

En la sección izquierda hay un menú llamado Practice que abre un formulario para filtrar por distintos criterios. Por ejemplo, si queremos practicar con retos sencillos (nivel 8kyu) relacionado con uso de textos (Strings), para lenguaje Python, podríamos dejar algo así:

3. Kattis

Kattis es otra web recopilatoria de problemas de programación multilenguaje, algo menos elaborada que CodeWars pero que permite generar retos de distintos tipos, subir los nuestros propios e incluso organizar competiciones.

También dispone de retos ordenados por nivel de dificultad, y la posibilidad de resolver un mismo reto en distintos lenguajes. Aquí tenemos la web oficial para registrarnos y usar la plataforma.

Desde el menú izquierdo Problems podemos buscar problemas que se ajusten a lo que queremos. En este caso podemos filtrar por el idioma en que están escritos con el desplegable Language (aunque la mayoría están en inglés) y también podemos ordenar el resultado por dificultad, creciente o decreciente:

4. Uso de estos recursos

En las diferentes secciones de esta web propondremos ejemplos basados en retos de todas estas webs que hemos comentado. Así que conviene estar registrado en ellas para poderlos intentar y consolidar las cosas que vayamos aprendiendo. No te preocupes si aún no ves claro cómo utilizar estas plataformas, lo aprenderemos en la sección de Algoritmos básicos.