Si quiere mejorar sus habilidades en un lenguaje de programación ya existente o en uno nuevo, una de las mejores formas de hacerlo es a través de los retos de codificación.
A lo largo de los años han ido apareciendo numerosas plataformas y sitios web que ofrecen retos emocionantes para codificadores de todos los niveles. Tanto si se trata de aprender un nuevo lenguaje como si desea poner a prueba su ingenio en situaciones de estrés, los retos de codificación pueden ser divertidos y una prueba al mismo tiempo.
Los beneficios, aparte de los obvios, de trabajar en estos retos incluyen una mejor capacidad para resolver problemas, una comprensión más profunda del lenguaje y la alegría de aprender nuevos algoritmos. Como ya sabe, los algoritmos no son infrecuentes durante el proceso de contratación, por lo que tener algunos dientes en el juego podría darle ventaja.
Este post cubre algunos de los mejores sitios web y plataformas de retos de codificación que existen. Algunas son aptas para principiantes, mientras que otras se dirigen a un público más experimentado. También añadimos algunas cosas que puede enseñar a sus hijos, ya que la codificación adaptada a los niños también se ha hecho bastante popular. Así que, empecemos.
Edabit
La forma más fácil de aprender cosas nuevas es tener una interacción constante con aquello que se intenta aprender. Tal es también el caso de la programación. Leer los mejores libros no le aportará ningún conocimiento a menos que ponga en práctica lo escrito.
Edabit es una plataforma establecida que ofrece retos de codificación del tamaño de un bocado, que pueden mejorar rápidamente sus habilidades de codificación.
CodinGame
Los juegos como plataformas de aprendizaje no son algo totalmente nuevo, pero parece que ahora hay muchos más jugadores en este campo.
CodinGame es sólo una de las muchas plataformas que ofrecen retos de programación a través de una experiencia gamificada. En lugar de escribir código a bocajarro, usted construye un entorno de juego. Todo el código que escribe, de alguna manera, está afectando a la forma en que se desarrolla el «juego».
En retrospectiva, plataformas como CodinGame pueden ayudar mucho a los desarrolladores tecnológicos sobre la causa y el efecto. Y cómo determinadas decisiones conducen a resultados específicos.
No se trata sólo de uno de esos sitios baratos donde se escribe código JavaScript chapucero. CodinGame implica algunos algoritmos de alto nivel y cuenta con innumerables codificadores de talla mundial que ayudan a proporcionar soluciones tanto a los desarrolladores nuevos como a los experimentados.
HackerRank
HackerRank es una startup centrada en ofrecer retos de codificación tanto a particulares como a organizaciones. Dependiendo del reto, la mayoría de las veces se le dan instrucciones para un proyecto que debe completar, y la forma de completarlo depende de usted.
Actualmente, los desarrolladores pueden utilizar Java, Python, JavaScript, PHP, C , y SQL para resolver los retos proporcionados.
Cada vez que envía sus soluciones, la plataforma puntúa automáticamente su envío en función de factores como la precisión. Después, se le coloca en la clasificación mundial mientras cultiva logros (insignias) a lo largo del camino. También hay «sprints», que es otro término para los concursos organizados por la plataforma.
House of Codes escribió un emocionante artículo en el que se describen los 50 mejores retos que se pueden encontrar en Hacker Rank. Si le pica la curiosidad, es una lectura que merece la pena, con un montón de ejemplos y material.
Coderbyte
Coderbyte es una aplicación única basada en las prácticas modernas de programación. Su característica principal son los retos de codificación, que han ayudado a millones de personas de todo el mundo a convertirse en mejores desarrolladores. A diferencia de otras aplicaciones similares en el mercado, Coderbyte se dedica a ayudar a la gente a enfrentarse a problemas a nivel industrial.
Una de las ventajas de utilizar esta plataforma es que colabora con algunas de las principales marcas de software. Por ejemplo, Google, LogMeIn, HBO, PWC y muchas otras. Si alguna vez desea conseguir un puesto de trabajo en estas empresas, puede estar seguro de que Coderbyte puede ofrecerle los retos necesarios para poner a prueba sus habilidades.
Una vez que se registre, podrá elegir entre retos y algoritmos. Hay cientos de miles de soluciones enviadas por los usuarios que pueden ayudarle a obtener una comprensión mucho más amplia de temas específicos de programación.
Las organizaciones pueden inscribirse y gestionar su proceso de selección. Al convertirse en una organización registrada, obtendrá acceso a herramientas adicionales que pueden ayudarle a seleccionar a cada desarrollador de forma individual.
Codewars
La belleza de la práctica constante de la codificación es que siempre se le ocurren nuevas formas de resolver problemas. Codewars aprovecha esta idea. Basada en «katas», la plataforma ofrece ejercicios y retos en una gran variedad de lenguajes.
A medida que complete dichos ejercicios, podrá sumar puntos pero también comprobar cómo otros programadores resolvieron un problema concreto.
Si tiene intención de practicar un nuevo idioma, Codewars es un sitio excepcional que debe añadir a sus favoritos.
Éstos son algunos de los lenguajes admitidos:
- Clojure
- Rust
- Swift
- Python
- Haskell
- Shell
- JavaScript
- PHP
- Kotlin
- Scala
Y muchos otros lenguajes están en el programa BETA, disponibles pero con posibles cuellos de botella.
Fundamentalmente, Edabit quiere proporcionar una plataforma que pueda tender un puente entre los principiantes y los codificadores avanzados. Puede consultar la hoja de ruta para ver la lista completa de características.
HackerEarth
HackerEarth es una conocida plataforma que organiza hackathones, retos de codificación y diferentes tipos de competiciones.
También es un lugar donde puede adquirir conocimientos interesantes sobre el proceso de contratación en las empresas modernas. No todos, pero una buena cantidad de los retos que se encuentran en la base de datos de HackerEarth pueden acabar siendo preguntados en alguna de sus futuras entrevistas de trabajo.
¿Y cómo es eso posible? Bueno, sobre todo porque el verdadero afán de HackerEarth es proporcionar soluciones de contratación a empresas tecnológicas de primera categoría. Si quiere que le consideren el mejor, tiene que juntarse con los mejores. Es una situación en la que todos salen ganando.
Programmr
Programmr es un laboratorio digital dinámico para desarrolladores de todos los niveles. Con Programmr, puede escribir código, compilarlo y ejecutar proyectos directamente desde su navegador. La plataforma es compatible con los principales lenguajes utilizados en la actualidad. Ya se trate de una aplicación móvil o de una estructura de base de datos que desee ejecutar, Programmr tiene las agallas para soportarlo.
En cuanto a los retos, Programmr tiene un conjunto personalizado de retos para Java, C , PHP, C#, Ruby, Python e iOS. Cada conjunto incluye 100 retos, que pueden clasificarse por popularidad (basada en los votos de los usuarios) y otros factores.
Lo que los diferencia de los demás es que puede utilizar sus nuevas experiencias para obtener comentarios al instante, ya sea un certificado para un lenguaje específico o simplemente comentarios de los usuarios existentes.
The Coding Train
Daniel Shiffman es un ejército unipersonal hecho a sí mismo, que crea y produce gran material sobre programación. The Coding Train es la plataforma personal de YouTube de Daniels, donde comparte vídeos interesantes y útiles para abordar cuestiones relacionadas con la programación.
Pero tiene un enfoque interesante. En lugar de alojarlo todo en su sitio web, utiliza YouTube como plataforma para el reto y su sitio web como plataforma para la solución.
Tenga en cuenta que sus retos se basan en P5.js y Processing, dos soluciones populares utilizadas en arte y diseño gráfico.
Wolfram Challenges
Wolfram es una de las empresas más conocidas del mundo que opera en la rama de la informática. Su plataforma ha dejado a muchos boquiabiertos por sus posibilidades.
Aunque no nos centramos en Wolfram Alpha, a principios de 2018 se introdujo una nueva frontera: Wolfram Challenges.
Hay multitud de ejemplos de Desafíos que uno puede imaginar y que implican encontrar «la solución de menor coste», o el «mejor ajuste». Y es una configuración similar con las tareas típicas de aprendizaje automático: encontrar una función (digamos basada en una red neuronal) que tenga el mejor rendimiento en la clasificación de un determinado conjunto de pruebas, etc.
En comparación con otros sitios web/plataformas de esta ronda, Wolfram cubre un amplio campo de retos y no sólo de codificación. En definitiva, si quiere agudizar su pensamiento crítico, ¡ésta será la plataforma para hacerlo!
LeetCode
LeetCode es un producto, lo que significa que no es sólo un sitio que aloja retos aleatorios. En su lugar, LeetCode es una forma de prepararse para futuras posibilidades.
La plataforma proporciona un aprendizaje moderno, retos intrincados y un magnífico panel de control para llevarlo todo a cabo.
También hay artículos, foros de debate y otros aspectos comunitarios para fomentar una experiencia sin fisuras. Muchos usuarios de LeetCode se han «graduado» para trabajar en empresas como Uber, Amazon, Stripe y otras.
Codeforces
Codeforces es para todos los codificadores hardcore y dedicados por ahí. Piense en ingenieros de software, pentesters, entusiastas de la inteligencia artificial y adictos al aprendizaje automático Como plataforma para programadores avanzados, Codeforces es conocida por su notoria tabla de clasificación y su espíritu competitivo.
Y empezar es más fácil de lo que cree.
Exercism
Es estupendo ver las iniciativas que hay detrás de muchas plataformas de retos de codificación.
Y Exercism no es una excepción. Katrina Owen, la fundadora, dice que su objetivo es «ayudar a la gente a aprender suficiente codificación [utilizando Exercism] para que puedan encontrar un trabajo en desarrollo».
En el momento de escribir esto, hay más de 2.600 ejercicios en 48 lenguajes, ¡todos gratuitos! ¿Tiene intención de aprender Kotlin, o quizá de orientarse mejor en Vim? ¡Ahora tiene la oportunidad de aprender nuevas habilidades a través de interesantes retos!
Codier
Por sorprendente que pueda resultar para algunos de ustedes, ¡también se sigue codificando en el desarrollo front-end!
Los retos Codier aquí son en su mayoría puestos en común por los usuarios. Por ejemplo, alguien puede publicar una «tarjeta Material Design» y retarle a que la mejore o cree una variación similar.
El resultado es su capacidad para poner en marcha algunas ideas creativas. Y también es agradable ver cómo otros abordan problemas similares en tiempo real. Siempre puede reutilizar el código enviado por otros en sus proyectos.
Flexbox Froggy
Hablando de front-end, ¿cómo va su comprensión de Flexbox? ¡Siempre es bueno tener un pequeño refresco de memoria para mantenerse afilado y en el punto!
FlexboxFroggy es un pequeño y agradable juego que le lleva a través de 28 pasos de diferentes usos y alineaciones de Flexbox. Quizás sea menos un reto que un recordatorio, pero ¿puede hacer todos los niveles sin buscar respuestas?
Grid Garden es un juego muy similar; la única diferencia es que está trabajando con la función Grid y no con Flex.
PyBites
Python está ampliamente aceptado como el lenguaje más sencillo de aprender. Y a menudo se recomienda para que los nuevos programadores lo exploren primero. Pero no deje que eso le desanime a creer en la capacidad de Python. Hoy en día, gran parte del aprendizaje automático y de la generación de conjuntos de datos se realiza exclusivamente con Python, ¡y eso no es poco! PyBites le pone al día de los últimos acontecimientos.
Artículos, retos de codificación y otras chucherías críticas que le ayudarán a agudizar su ingenio. Cada reto incluye un seguimiento a modo de revisión, donde podrá comparar su código y explorar la forma correcta de resolver un problema.
CodeCombat
CodeCombat es un juego de codificación que proporciona un entorno de codificación dinámico y desafiante. La diferencia con un producto como CodinGame es que CodeCombat se centra en los profesores. Como resultado, puede utilizar esta plataforma para enseñar programación y resolución de problemas a nivel escolar.
Existen herramientas, materiales y otros recursos adaptados específicamente para este fin. Y también es muy divertido. Los juegos CodeCombat que se construyen son a la vez interesantes y visualmente impresionantes. Y los juegos ya son muy populares entre los niños. Dar a los niños el reto de desarrollar su entorno virtual puede inspirarles a construir algo asombroso en el futuro
Tynker
Como hemos mencionado brevemente en la introducción, tenemos algo para todos los padres. Tynker es una pequeña y divertida plataforma que ayuda a enseñar codificación a los niños. Se basa en una interfaz muy sencilla de arrastrar y soltar en la que los niños pueden barajar entre opciones y, con suerte, resolver los problemas presentados.
Y no se equivoque tampoco; Tynker se adapta a los estándares modernos más de lo que cree. Si tiene hijos que están entrando en la adolescencia, puede dejar que escriban soluciones utilizando Python o JavaScript en lugar de utilizar sólo bloques.
Palabras finales: ¡Desafíate a ti mismo!
En total, hay probablemente 10.000 desafíos de código únicos en todos los sitios y plataformas que hemos enumerado. Es imposible superarlos todos así como así.
En su lugar, mi recomendación es que encuentre la plataforma que considere que mejor se adapta a sus necesidades y se centre únicamente en ella. Podrá entablar amistades, aprender cosas nuevas y, quién sabe, ¡puede que aprenda lo suficiente como para conseguir un nuevo empleo en una empresa bien remunerada!
También puede considerar DataCamp para aprender ciencia de datos, que incluye retos y proyectos de codificación.