5 plataformas gratuitas de desafios de programação para treinar suas habilidades

Udacity Brasil
8 de mai de 2018

A área de programação pode ser bem desafiadora em alguns momentos. Uma das melhores maneiras de superar essas dificuldades é, justamente, se desafiar ainda mais. Não estamos falando de problemas do trabalho (embora a prática profissional também ajude), mas de sites e plataformas com problemas voltados para quem quer desenvolver suas habilidades de programação.

Há um grande número de sites com recursos desse tipo. Por conta de sua natureza interativa (um dos aspectos da famosa gamificação), acabam sendo mais capazes de engajar usuários do que textos ou aulas em vídeo ao exigir a participação ativa para criar uma solução – e "ganhar" é uma recompensa atraente.

Para quem prefere estudar com outras pessoas ao invés de sozinho, tais sites também são uma ótima opção: normalmente possuem aspectos sociais, que facilitam a troca de informações sobre os problemas postados por lá.

Sites desse tipo não são apenas uma ótima fonte de estudo. Em alguns casos, eles acabam sendo também uma fonte de receita. O brasileiro Gilberto Titericz, por exemplo, já recebeu mais de 60 mil dólares em prêmios de desafios no Kaggle, uma dessas plataformas.

Além do benefício financeiro, Titericz ressalta que esses desafios competitivos também são uma ótima fonte de aprendizado, tanto técnico quanto para a vida. “Você aprende a trabalhar em equipe, a programar em várias linguagens, outros algoritmos de treinamento de inteligência artificial. Aprende muitas coisas de todas as áreas. E o melhor: na prática”, disse em um webinar da Udacity, que você pode assistir aqui.

Interessou-se? Confira a seguir 5 sites e plataformas que vão desafiar suas habilidades de programação em ordem crescente de dificuldade.

Leia também:

Onde fazer desafios de programação

URI Online Judge

Nível: iniciante a intermediário

Quem está nos primeiros passos em sua jornada para se tornar um programador vai encontrar algo interessante no URI Online Judge, um projeto do departamento de ciências da computação da Universidade de Rhode Island (ou, na sigla, URI).

O principal recurso do site é o seu repositório de exercícios. São mais de mil problemas divididos em oito grandes categorias. Uma delas é “iniciantes”. As demais incluem tópicos como SQL, estruturas de dados, geometria computacional e gráficos.

Nessas categorias, os problemas não são separados por linguagem. Cada um é apresentado claramente e cabe ao estudante decidir em que linguagem quer resolvê-lo. A vantagem disso é que o repositório é útil independente da linguagem que você estiver estudando.

Mas além dos exercícios, o site também tem um ranking que avalia as melhores soluções criadas em C, C++, Java ou Python para os problemas colocados no site. E entre os 30 melhores colocados desse ranking, só um não é brasileiro!

Há também desafios públicos, que são postados no site com alguma regularidade, e professores interessados podem criar módulos de exercícios usando o site para auxiliar suas aulas. E, como seria de esperar, há um fórum de discussão para os problemas apresentados na plataforma.

Assim, o URI Online Judge acaba sendo uma ótima plataforma tanto para programadores iniciantes quanto para quem já tem mais experiência e quer colocar suas habilidades à prova. Mesmo que você já tenha algum tempo de mercado, vale a pena dar uma olhada. Acesse aqui.

Leia: Por que todo profissional deve aprender programação?

CoderByte

Nível: iniciante a intermediário

[de todos os sites, esse é o único que não tem um vídeo de apresentação decente. Talvez seja melhor tirar um print ou usar alguma imagem do site. Me avise se precisar de ajuda!]

O CoderByte é uma das plataformas de desafios de programação mais populares e diretas que há, voltada tanto para programadores iniciantes que querem aprender mais (há inclusive cursos grátis sobre temas diversos) quanto para quem busca algo um pouco mais avançado.

Aqui os desafios são separados por linguagem de programação: você escolhe uma linguagem dentre uma série de opções (que incluem C, JavaScript, Go, Python, Ruby e Swift) e então vê os problemas apresentados em cada uma. É possível resolver os desafios por meio de um editor próprio do site, que verifica suas respostas para você – o que é bem conveniente.

Um adendo interessante do site são as áreas com perguntas comuns em entrevistas de emprego em empresas como Google, Microsoft e Facebook. Se você sonha em trabalhar em alguma delas, vale a pena dar uma olhada para se familiarizar com o processo seletivo, que frequentemente inclui testes técnicos práticos na área de tecnologia.

Vale destacar que, se você praticar suas habilidades com frequência, este é um sonho bem possível – mesmo se você ainda engatinha em suas primeiras linhas de código. Afinal, todo mundo começa em algum lugar. Acesse aqui.

Leia: As linguagens de programação mais populares do momento, por indústria

TopCoder

Nível: intermediário a avançado

Quem já tem um pouco mais de experiência pode se interessar pelo TopCoder, uma plataforma de desafios de programação.

O TopCoder tem um foco ainda mais forte na competição: todos os dias, recebe novos desafios nas áreas de design, desenvolvimento e data science. E todos os dias há umas espécie de “corrida” para ver quem consegue resolver as novidades primeiro.

Além disso, o site também promove desafios de “round único” algumas vezes por mês. Esses problemas são lançados em um horário específico e acabam sendo uma corrida de fato para chegar à primeira solução aceitável. Depois disso, o desafio se encerra.

Para empresas, o TopCoder acaba sendo também uma plataforma de “crowdsourcing”, onde seus problemas são postos como desafios para os programadores da comunidade. Para quem curte essa adrenalina, é uma chance de aprender com problemas reais do mercado de trabalho – e, em alguns casos, de ganhar dinheiro.

É possível participar de todos os desafios de qualquer lugar e através do editor de texto do próprio TopCoder, o que torna as competições mais convenientes e mais igualitárias já que todo mundo está trabalhando com a mesma ferramenta.

Por esses motivos, o site acaba sendo uma ótima plataforma para quem quer ir além do básico. Se você já se sente confiante em suas habilidades e está em busca de algo mais avançado, o foco competitivo dele pode ser a ajuda de que você precisa para chegar ao próximo nível. Acesse aqui.

Leia: Android x iOS: entenda as principais diferenças em programação e desenvolvimento

HackerRank

Nível: avançado

O HackerRank, que tem seu próprio editor de texto, é voltado para programadores mais avançados: seus desafios que são mais difíceis e exigem uma base mais sólida de conhecimento de linguagens e estruturas de dados. Por outro lado, ele tem um aspecto competitivo – e potencialmente lucrativo – bem interessante.

A ideia é que as soluções colocadas pelos usuários para os desafios do site estejam visíveis para outras pessoas e, entre essas “outras pessoas”, estão potenciais recrutadores de empresas de tecnologia. Há inclusive uma plataforma específica de recrutamento que companhias do setor de TI podem usar em seus processos seletivos.

Na prática, o que acontece é o seguinte: empresas colocam desafios em sua própria página na plataforma e convidam os usuários a resolvê-los. É uma oportunidade de investir no aprendizado e na carreira ao mesmo tempo.

Os desafios em si giram em torno de assuntos de ciências da computação, como algoritmos, matemática, SQL, programação funcional, inteligência artificial e daí por diante. Cada problema tem uma tabela de classificação, o que salienta o lado competitivo da coisa, e um mural de discussões sobre as soluções possíveis.

Há também um aspecto social de destaque: mais de três milhões de programadores já estão cadastrados na plataforma, o que significa que, caso você tenha dificuldade com alguns dos problemas, muito provavelmente encontrará ajuda te ajudar.

Com tanta gente online, esta também pode ser uma boa oportunidade de receber conselhos e mentoria de profissionais mais experientes. Acesse aqui.

Leia: 5 jogos de programação para você treinar suas habilidades

Kaggle

Nível: avançado

De nível mais avançado, o Kaggle é uma plataforma de desafios voltada especificamente para ciência de dados e machine learning. Foi lá que o brasileiro Gilberto Titericz conquistou mais de US$ 60 mil em prêmios.

A ideia do Kaggle é que a maior parte dos desafios postados sejam feitos por empresas em busca de soluções que usem essas tecnologias e que, em muitos casos, estão dispostas a pagar pelas melhores criações que surjam da comunidade.

Como se trata de desafios de machine learning e data science, é preciso ter grandes conjuntos de dados para treinar as soluções. As empresas participantes disponibilizam esses dados e, dessa forma, o site acaba se tornando uma plataforma interessante para qualquer um em busca de datasets robustos com os quais trabalhar.

Também por esse motivo, o Kaggle acaba sendo uma ótima plataforma de aprendizado prático: os problemas colocados lá são de fato desafios enfrentados por companhias no mercado atual. Seus problemas de data science, portanto, são situações semelhantes àquelas que um cientista de dados poderia encontrar em seu trabalho cotidiano.

O lado relativamente negativo da plataforma acaba sendo que sua exigência por conhecimentos mais avançados. É necessário já ter um bom conhecimento de algoritmos, estruturas de dados e técnicas de aprendizagem de máquina para poder tirar o melhor do site.

Se você se encaixa nessa descrição, vale a pena entrar para dar uma olhada. No mínimo, é um campo de treinamento com situações semelhantes às que podem ser encontradas por profissionais do mercado. E, no máximo, uma interessante fonte de renda. Acesse aqui.

Conheça os cursos de programação da Udacity