Una gran manera de mejorar tus habilidades al aprender a codificar es resolviendo los desafíos de programación. Resolver diferentes tipos de desafíos y problemas puede ayudarte a convertirte en un mejor solucionador de problemas, aprender las particularidades de un lenguaje de programación, prepararte para las entrevistas de trabajo, aprender nuevos algoritmos y más.

A continuación hay una lista de algunos sitios web populares de desafíos de programación con una breve descripción de lo que ofrece cada uno.

1. TopCoder

MTryRL4uVza1V87ERWY26L4cFeqD2rgAnW1f

TopCoder es una de las plataformas originales de programación competitiva en línea. Proporciona una lista de desafíos algorítmicos que puedes completar por tu cuenta directamente en línea usando tu editor de código. Los partidos más populares de ronda individual se ofrecen un par de veces al mes en un momento específico en el que compiten contra otros para resolver desafíos más rápido con la mejor puntuación.

Los usuarios mejor clasificados en TopCoder son muy competitivos y participan regularmente en competencias de programación. El usuario mejor clasificado mantiene su propio blog titulado Algorithms weekly by Petr Mitrichev donde escribe sobre competencias de programación, algoritmos, matemáticas y más.

2. Coderbyte

sP6ow4n2alliqp5L-p5fVRQC9W0GTws1B9Ig

Coderbyte proporciona más de 200 desafíos de programación que puedes resolver directamente en línea en uno de los 10 lenguajes de programación (mira este ejemplo). Los desafíos van desde fáciles (encontrar la palabra más grande en una cadena) a difíciles (imprimir la máxima cardinalidad de un gráfico).

También proporcionan una colección de tutoriales de algoritmos, vídeos introductorios y cursos de preparación para entrevistas. A diferencia de HackerRank y otros sitios web similares, puedes ver las soluciones que otros usuarios proporcionan para cualquier desafío, además de las soluciones oficiales publicadas por Coderbyte.

3. Project Euler

plhA-E3btLLYRvc4hi3WxmUpAhu3aoef1o0V

El Proyecto Euler proporciona una gran colección de desafíos en el dominio de la informática y las matemáticas. Los desafíos normalmente implican escribir un pequeño programa para encontrar la solución a una fórmula matemática ingeniosa o ecuación, como encontrar la suma de los dígitos de todos los números que preceden a cada número en una serie.

No se puede codificar directamente en el sitio web en un editor, por lo que se necesitaría escribir una solución en tu propio equipo y luego proporcionar la solución al sitio web.

4. HackerRank

dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu

HackerRank proporciona desafíos para varios dominios diferentes como los algoritmos, las matemáticas, SQL, la programación funcional, la IA y más. Puedes resolver todos los desafíos directamente en línea (mira este ejemplo). Proporcionan una discusión y un tablero de líderes para cada desafío, y la mayoría de los desafíos vienen con un editorial que explica más sobre el desafío y cómo abordarlo para llegar a una solución. Aparte del editorial, no puedes ver actualmente las soluciones de otros usuarios en HackerRank.

HackerRank también ofrece a los usuarios la posibilidad de enviar solicitudes y postularse a puestos de trabajo resolviendo los desafíos de codificación patrocinados por la empresa.

5. CodeChef

81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa

CodeChef es un sitio web de competencias de programación con base en la India que ofrece cientos de desafíos. Puedes escribir código en el editor en línea y ver una colección de desafíos que están separados en diferentes categorías dependiendo de tu nivel de habilidad (mira este ejemplo). Tienen una comunidad grande de programadores que contribuyen a los foros, escriben tutoriales y participan en los concursos de programación de CodeChef.

6. Exercism.io

Screen-Shot-2019-12-11-at-8.14.45-AM

Exercism es un sitio web de desafíos de programación que ofrece más de 3100 desafíos que abarcan 52 lenguajes de programación diferentes. Después que elijas un lenguaje que te gustaría dominar, abordaras los desafíos de programación directamente en tu máquina (Exercism tiene su propia interfaz de línea de comandos que puedes descargar de GitHub).

Sin embargo, es un poco diferente de otros sitios web de desafíos, porque trabajas con un mentor después de completar cada desafío. El mentor revisa tus respuestas en línea y te ayuda a mejorarlas si es necesario. Una vez que tus respuestas han sido aprobadas y enviadas, desbloqueas más desafíos.

7. Codewars

QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq

Codewars ofrece una gran colección de desafíos de programación presentados y editados por su propia comunidad. Puedes resolver los desafíos directamente en línea en su editor en uno de varios lenguajes. Puedes ver una discusión para cada desafío así como la solución de los usuarios.

8. LeetCode

RzWKVwPaLY2SRsWFWk93ZNlzcg8V0Yeav5t7

LeetCode es un popular juez en línea que proporciona una lista de más de 190 desafíos que pueden ayudarte a prepararte para entrevistas de trabajo técnicas. Puedes resolver los desafíos directamente en línea en uno de los 9 lenguajes de programación. No puedes ver las soluciones de otros usuarios, pero se te proporcionan estadísticas de tus propias soluciones, como por ejemplo la rapidez con la que tu código se ejecutó en comparación con el de otros usuarios.

También tienen una sección de entrevistas de prueba que es específicamente para la preparación de entrevistas de trabajo, organizan sus propios concursos de programación y tienen una sección de artículos para ayudarte a entender mejor ciertos problemas.

9. SPOJ

MF3wP06V24C7jal2f8NRvAVhS-tAA2vbNDTL

Sphere Online Judge (SPOJ) es un juez en línea que proporciona más de 20 mil desafíos de programación. Puedes enviar tu código en un editor en línea. SPOJ también organiza sus propias competencias y tienen un área para que los usuarios discutan los desafíos de programación. Sin embargo, actualmente no proporcionan ninguna solución oficial o editorial como lo hacen otros sitios web.

10. CodinGame

6l08ZCKDOaoY1TH-PHHHac26McA-c1tIDOPU

CodinGame es un poco diferente de los otros sitios web, porque en lugar de resolver simplemente los desafíos de programación en un editor, en realidad participas en la escritura del código de los juegos que juegas directamente en línea. Puedes ver una lista de los juegos que se ofrecen actualmente aquí y un ejemplo de uno aquí. El juego viene con una descripción del problema, casos de prueba y un editor donde puedes escribir tu código en uno de los más de 20 lenguajes de programación.

Aunque este sitio web es diferente a los típicos sitios web de programación competitiva como los mencionados anteriormente, sigue siendo popular entre los programadores que disfrutan resolviendo desafíos y participando en competencias.

Esta lista se basó en pocas cosas: mis propias experiencias en el uso de los sitios web, algunas búsquedas en Google, publicaciones de Quora, y artículos como éste y éste. También frecuenté algunos foros y subreddits como r/learnprogramming para ver qué sitios web eran usualmente recomendados por los usuarios allí. Descargo (disclaimer): Trabajo en Coderbyte que es uno de los sitios web mencionados anteriormente

Traducido del artículo de Daniel Borowski - The 10 Most Popular Coding Challenge Websites.