Una gran manera de mejorar tus habilidades al aprender a programar es resolviendo los desafío de programación. Resolver diferentes tipos de desafíos y rompecabezas puede ayudarte a ser un mejor solucionador de problemas, aprender la complejidades de un lenguaje de programación, prepararte para entrevistas de trabajo, aprender nuevos algoritmos y más.

A continuación se muestra 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

TopCode es una de las plataformas originales para la programación competitiva en línea. Proporciona una lista de retos algorítmicos del pasado que puedes completar por tu cuenta directamente en línea usando su editor de código. Sus populares Partidos de Una Sola Ronda se ofrecen varias veces al mes en un momento específico en el que compites contra otras para resolver los desafíos más rápido con la mejor puntuación.

Los usuarios mejor clasificados en TopCoder son muy buenos programadores competitivos y compiten regularmente en concursos 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 retos de programación que puedes resolver directamente en línea en uno de 10 lenguajes de programación (mira este ejemplo). Los retos 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, videos 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

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

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

4. HackerRank

dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu

HackerRank proporciona desafío para varios dominios diferentes como los algoritmos, las matemáticas, SQL, la programación funcional, IA y más. Puedes resolver todos los desafío directamente en línea (mira este ejemplo). Proporcionan un espacio de 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 ceomo 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ío de programación patrocinados por la empresa.

5. CodeChef

81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa

CodeChef es un sitio web de programación competitiva con base en la India que ofrece cientos de desafíos. Puedes escribir código en su editor en línea y ver una colección de desafío que están separados en diferentes categorías dependiendo de tu nivel de habilidad (mira este ejemplo). Tienen una gran comunidad de programadores que contribuyen a los foros, escriben tutoriales y participan en las competencias 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 2100 desafío que abarcan 52 lenguajes de programación diferentes. Después de elegir un lenguaje que te gustaría dominar, abordas los retos 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 a 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ío.

7. Codewars

QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq

Codewars ofrece una gran colección de desafío 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 las soluciones 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ío 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 (Mock Interviews) que es específicamente para la preparación de entrevistas de trabajo, organizan sus propios concursos de programación y tienen un 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 20k desafíos de programación. Puedes presentar tu código en un editor en línea. SPOJ también organiza sus propios concursos y tiene 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 concursos.

Esta lista se basó en algunas 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í. Aviso: Trabajo en Coderbyte que es uno de los sitios web mencionados anteriormente.

Traducido del artículo de Daniel Borowski's - The 10 Most Popular Coding Challenge Websites [Updated for 2020]