Os 10 sites mais populares do desafio de codificação [atualizado para 2020]

Uma ótima maneira de melhorar suas habilidades ao aprender a codificar é resolvendo os desafios de codificação. Resolver diferentes tipos de desafios e quebra-cabeças pode ajudá-lo a se tornar um melhor solucionador de problemas, aprender as complexidades de uma linguagem de programação, preparar-se para entrevistas de emprego, aprender novos algoritmos e muito mais.

Abaixo está uma lista de alguns sites populares de desafios de codificação com uma breve descrição do que cada um oferece.

1. TopCoder

TopCoder é uma das plataformas originais para programação competitiva online. Ele fornece uma lista de desafios algorítmicos do passado que você pode concluir por conta própria diretamente online usando o editor de código. Suas populares partidas de rodada única são oferecidas algumas vezes por mês em um horário específico, onde você compete contra outros para resolver desafios o mais rápido com a melhor pontuação.

Os usuários com melhor classificação no TopCoder são programadores competitivos muito bons e competem regularmente em competições de programação. O usuário mais bem classificado mantém seu próprio blog intitulado Algoritmos semanais de Petr Mitrichev, onde escreve sobre competições de codificação, algoritmos, matemática e muito mais.

2. Coderbyte

Coderbyte oferece mais de 200 desafios de codificação que você pode resolver diretamente online em uma das 10 linguagens de programação (veja este exemplo). Os desafios variam de fácil (encontrar a maior palavra em uma string) a difícil (imprimir a correspondência máxima de cardinalidade de um gráfico).

Eles também fornecem uma coleção de tutoriais de algoritmo, vídeos introdutórios e cursos de preparação para entrevistas. Ao contrário do HackerRank e de outros sites semelhantes, você pode visualizar as soluções que outros usuários fornecem para qualquer desafio, além das soluções oficiais postadas pela Coderbyte.

3. Projeto Euler

O Projeto Euler oferece uma grande coleção de desafios no domínio da ciência da computação e matemática. Os desafios normalmente envolvem escrever um pequeno programa para descobrir a solução para uma fórmula ou equação matemática inteligente, como encontrar a soma dos dígitos de todos os números que precedem cada número em uma série.

Você não pode codificar diretamente no site em um editor, portanto, seria necessário escrever uma solução em seu próprio computador e, em seguida, fornecer a solução em seu site.

4. HackerRank

O HackerRank oferece desafios para vários domínios diferentes, como Algoritmos, Matemática, SQL, Programação Funcional, IA e muito mais. Você pode resolver todos os desafios diretamente online (veja este exemplo). Eles fornecem uma discussão e uma tabela de classificação para cada desafio, e a maioria dos desafios vem com um editorial que explica mais sobre o desafio e como abordá-lo para chegar a uma solução. Além do editorial, atualmente você não pode visualizar as soluções de outros usuários no HackerRank.

O HackerRank também oferece aos usuários a capacidade de enviar inscrições e se candidatar a empregos, resolvendo desafios de codificação patrocinados pela empresa.

5. CodeChef

CodeChef é um site de programação competitivo com sede na Índia que oferece centenas de desafios. Você é capaz de escrever código em seu editor online e visualizar uma coleção de desafios que são separados em categorias diferentes, dependendo do seu nível de habilidade (veja este exemplo). Eles têm uma grande comunidade de programadores que contribuem para os fóruns, escrevem tutoriais e participam das competições de codificação da CodeChef.

6. Exercism.io

O Exercism é um site de desafios de codificação que oferece mais de 3100 desafios em 52 linguagens de programação diferentes. Depois de escolher uma linguagem que gostaria de dominar, você enfrenta os desafios de codificação diretamente em sua máquina (o Exercism tem sua própria interface de linha de comando que você pode baixar do GitHub).

É um pouco diferente de outros sites de desafio, no entanto, porque você trabalha com um mentor após concluir cada desafio. O mentor analisa suas respostas online e ajuda você a melhorá-las, se necessário. Depois que suas respostas forem aprovadas e enviadas, você desbloqueará mais desafios.

7. Codewars

Codewars fornece uma grande coleção de desafios de codificação enviados e editados por sua própria comunidade. Você pode resolver os desafios diretamente online em seu editor em um dos vários idiomas. Você pode ver uma discussão para cada desafio, bem como soluções de usuário.

8. LeetCode

LeetCode é um juiz online popular que fornece uma lista de mais de 190 desafios que podem ajudá-lo a se preparar para entrevistas técnicas de emprego. Você pode resolver os desafios diretamente online em uma das 9 linguagens de programação. Não é possível visualizar as soluções de outros usuários, mas são fornecidas estatísticas para suas próprias soluções, como a velocidade de execução do seu código em comparação ao código de outros usuários.

Eles também têm uma seção de Entrevista Simulada que é especificamente para preparação de entrevista de emprego, eles hospedam seus próprios concursos de codificação e eles têm uma seção de artigos para ajudá-lo a entender melhor certos problemas.

9. SPOJ

Sphere Online Judge (SPOJ) é um juiz online que oferece mais de 20 mil desafios de codificação. Você pode enviar seu código em um editor online. O SPOJ também hospeda seus próprios concursos e tem uma área para os usuários discutirem os desafios de codificação. No momento, eles não fornecem nenhuma solução oficial ou editorial como alguns outros sites fazem.

10. CodinGame

CodinGame é um pouco diferente dos outros sites, porque em vez de simplesmente resolver os desafios de codificação em um editor, você na verdade participa da escrita do código para jogos que joga diretamente online. Você pode ver uma lista dos jogos oferecidos atualmente aqui e um exemplo de um aqui. O jogo vem com uma descrição do problema, casos de teste e um editor onde você pode escrever seu código em uma das mais de 20 linguagens de programação.

Embora este site seja diferente dos sites de programação competitiva típicos, como os mencionados acima, ainda é popular entre os programadores que gostam de resolver desafios e participar de concursos.

Esta lista foi baseada em algumas coisas: minhas próprias experiências usando os sites, algumas pesquisas no Google, postagens do Quora e artigos como este e este. Também frequentei alguns fóruns e subreddits, como r / learnprogramming, para ver quais sites geralmente eram recomendados pelos usuários de lá. Aviso de isenção de responsabilidade: Eu trabalho na Coderbyte, um dos sites mencionados acima.