Pratique a habilidade que os tutoriais deixam de lado

Aprenda a encontrar bugs — não apenas a escrever código.

Escolha uma linguagem, investigue uma falha realista, cheque sua correção e entenda exatamente por que ela funciona. Comece grátis pelo ciclo principal de desafios.

Do código ao aprendizado

Escolha sua primeira linguagem

Nove linguagens de programação verificadas. A interface e o feedback estão disponíveis em cinco idiomas, enquanto a documentação editorial começa em inglês e português do Brasil.

  1. 1Escolha uma linguagem
  2. 2Investigue o bug
  3. 3Cheque a solução
  4. 4Leia feedback explicável
  5. 5Acompanhe sua evolução

Interface e feedback: English, Português, Español, العربية, 한국어. Docs publicadas: EN / PT-BR.

Experimente o movimento central

Encontre a falha antes de ela ir para produção

Um padrão real da biblioteca de prática. Neste exemplo, fetchUser(id) retorna uma Promise que resolve para um objeto de usuário com a propriedade name.

Por que o resultado de loadUser é undefined?

async function loadUser(id) {  const user = fetchUser(id);  return user.name;}
Por que o resultado de loadUser é undefined?

Ver a explicação

fetchUser retorna uma Promise que resolve para o objeto do usuário. Sem await, user guarda essa Promise, por isso user.name é undefined. Use const user = await fetchUser(id) antes de ler user.name. O desafio público explica essa ordem de execução passo a passo.

Praticar este desafio grátis

Bugs com cara de trabalho real

Desenvolva raciocínio de depuração com padrões de falha reconhecíveis em Python, JavaScript, SQL e mais seis linguagens — não com charadas disfarçadas de engenharia.

Um veredito que ensina

Cheque sua solução e receba feedback contextual sobre o bug, o comportamento esperado e os casos-limite que importam.

Progresso que você entende

Veja tentativas e soluções separadamente, acompanhe a evolução das habilidades praticadas e deixe a dificuldade responder aos seus resultados.

Um Perfil de Aprendizado criado pela prática

Revise padrões de edição, uso de dicas e sinais das sessões como observações verificáveis — não como uma pontuação oculta que controla sua classificação ou dificuldade.