1. Aprendizagem baseada na prática

Aprendizado de Java baseado na prática

Há pessoas que amam o CodeGym de todo o coração e há pessoas que o odeiam de todo o coração. Mas mesmo o crítico mais cruel do CodeGym concordará prontamente que ele tem um número impressionantemente grande de tarefas. E a razão pela qual existem tantos deles é porque todo treinamento CodeGym tem a prática como base .

Programar é uma habilidade. Ninguém diz: "Eu sei programar". Todo programador diz: "Eu posso programar". É uma habilidade prática, como nadar ou jogar xadrez. E você só pode cultivar a habilidade por meio da prática constante.

É por isso que todo o curso CodeGym é uma sequência de tarefas cada vez mais difíceis. Você começa com tarefas muito fáceis e primitivas e termina com as mais difíceis e interessantes. A dificuldade cresce um pouco a cada nível. Esse é justamente o caminho que o levará ao seu objetivo de se tornar um programador.


2. Tipos de tarefas

Um monte de diferentes tipos de tarefas esperam por você no CodeGym. Vamos listar os principais:

Tarefas em que você escreve um programa

Estas são as tarefas mais importantes do curso. Seu nível de dificuldade varia muito: desde as tarefas mais simples até aquelas nas quais você terá que pensar muito.

O objetivo dessas tarefas é escrever um programa que atenda às condições e requisitos especificados. A maioria das tarefas se enquadra nessa categoria. Para comodidade dos alunos do CodeGym, marcamos essas tarefas de acordo com seu nível de dificuldade: FÁCIL , MÉDIO , DIFÍCIL e ÉPICO .

As tarefas EPIC geralmente são baseadas em material de aprendizado futuro em lições que você ainda não desbloqueou. Eles são populares entre os alunos do CodeGym que acham que o curso é muito fácil para eles. Outros podem simplesmente pular essas tarefas e retornar a elas mais tarde, quando já estiverem familiarizados com a teoria relevante.

Projetos

A desvantagem das tarefas comuns é que elas são pequenas. Feito e esquecido, como dizem. Portanto, raramente é possível torná-los altamente interessantes. Mas um programa grande é difícil de testar: simplesmente existem muitas maneiras de implementá-lo.

É por isso que o CodeGym introduziu tarefas de projeto — grandes tarefas divididas em 5 a 35 subtarefas comuns. Você executa todas as subtarefas sequencialmente e acaba com um programa grande.

No final de cada nível após o nível 20, há uma grande tarefa de projeto, que é dividida em vinte subtarefas. Existem também outras 6 tarefas de jogo, que também são projetos. E há uma tarefa de projeto para ser aceito em um estágio online. No total, são 27 tarefas de projeto em todo o curso.

Testes

Por muito tempo, o CodeGym não teve testes ou questionários. O criador do CodeGym acredita que os testes aprovados criam a "ilusão de conhecimento" nas pessoas. As pessoas realmente não sabem programar, mas estão totalmente convencidas do contrário, pois passaram nos testes. Essas pessoas param de aprender, pois "já sabem tudo".

Posteriormente, questionários foram adicionados para permitir que os alunos do CodeGym identificassem facilmente as lacunas em seu aprendizado. É útil para os programadores conhecerem as nuances das coisas com as quais trabalham diariamente em sua profissão.


3. Status da tarefa

Cada tarefa no CodeGym tem um status especial. O status pode mudar conforme você resolve as tarefas.

Cada tarefa do CodeGym está associada a uma lição. Inicialmente, você não terá acesso a nenhuma tarefa, o que significa que não poderá resolvê-las.

Ao abrir a próxima lição, todas as tarefas da lição ficam disponíveis para resolução, ou seja, seu status muda para "Disponível".

Se você enviou uma tarefa para verificação pelo menos uma vez, seu status muda de "Disponível" para "Em andamento".

Por fim, quando você cumprir todos os requisitos com sucesso e o validador aceitar seu envio, o status da tarefa mudará para "Concluída".

Os usuários com uma assinatura Premium Mentor têm mais 3 dias para tentar escrever outras soluções para a tarefa. Depois que essa janela de tempo adicional expirar, a tarefa passará para o status "Fechada" e esse status não será mais alterado.


4. Requisitos

Nos primeiros anos do CodeGym, quando você verificava cada tarefa, obtinha um resultado simples: sim ou não. O programa passou em todos os testes ou não. Super simples, mas não super útil.

À medida que as pessoas aprendem, é muito importante que entendam o que estão fazendo de errado e como começar a fazer certo. Portanto, faz todo o sentido que, se o servidor não aceitar sua solução, você pergunte, bem, o que há de errado com isso?

Para obter uma resposta a esta pergunta, você precisa de alguém para mergulhar em sua solução, analisá-la e dizer o que há de errado com ela. Isso levaria muito tempo e seria caro. A beleza da verificação instantânea de tarefas é que você pode se sentar para estudar às 2 da manhã e tudo funcionará como em qualquer outro momento.

É por isso que reescrevemos todas as tarefas no CodeGym. Agora, cada tarefa não tem apenas condições de tarefa, mas também uma lista de 5 a 10 requisitos que complementam as condições. Mais importante ainda, cada requisito é verificado separadamente.

Isso significa que, ao enviar uma tarefa para verificação hoje, você receberá uma resposta estendida: ao lado de cada requisito de tarefa, você verá um ícone especial indicando se seu programa atende a esse requisito ou não. Exemplo:

Requisitos

Essa abordagem simplifica muito a vida enquanto você trabalha em tarefas que exigem que você escreva várias classes ou métodos. Você sempre poderá ver quais métodos ou classes escreveu corretamente e quais não.


5. Recomendações

É possível tornar as tarefas ainda melhores de alguma forma? Não seria ótimo se, após cada verificação, você soubesse exatamente o que está errado em seu programa e recebesse dicas sobre como corrigi-lo? Sim, isso seria legal! Bem, adivinhe? Fazemos exatamente isso no CodeGym 🙂

Detectamos dezenas de erros comuns verificando cada requisito de tarefa. Se o seu programa cometer um erro que o validador conheça, ele fará uma recomendação — uma dica de como você pode corrigir sua solução para que ela satisfaça todos os requisitos.

Pense nisso. Existem agora cerca de 1.200 tarefas no CodeGym, com um total de aproximadamente 10.000 requisitos. E há várias recomendações associadas a cada requisito. Alguns requisitos têm dezenas deles. O validador do CodeGym está pronto para fazer mais de 50.000 recomendações para soluções de usuário.

Além disso, tudo isso acontece à medida que sua solução é validada, o que na maioria dos casos leva menos de um segundo. Nenhuma pessoa poderia fazer isso. Este é um verdadeiro mentor virtual.

Recomendações

6. Comunidade

O CodeGym se concentra em muita prática , que representa mais de 80% de todo o processo de aprendizado. Transformamos o aprendizado em uma missão grande e envolvente (na verdade, uma série de missões).

Mas todo mundo é diferente: algumas pessoas aprendem rapidamente e outras aprendem mais devagar. Algumas pessoas acham o novo material fácil, enquanto outras acham mais difícil. Mas nosso trabalho é que cada um de nossos alunos chegue à linha de chegada. Pelo menos é isso que estamos buscando.

Neste mundo, os programadores não são apenas alguns milhões de pessoas que escrevem códigos em várias linguagens e criam startups em seu tempo livre. Eles formam uma rede global, constantemente compartilhando seus conhecimentos com outras pessoas, prontos para responder a perguntas e ajudá-lo a entender tópicos complexos.

A maior comunidade de desenvolvedores do mundo — o site StackOverflow — nasceu da necessidade de os programadores aprenderem uns com os outros. Seu conceito é simples: você faz uma pergunta e qualquer programador do mundo pode responder. Conveniente, certo? 🙂

Na CodeGym, acreditamos que a troca de conhecimento entre os alunos é extremamente valiosa. À medida que os programadores ajudam os outros, eles próprios crescem . E não há melhor maneira de entender algo do que explicá-lo a outra pessoa. É por isso que criamos seções especiais em nosso site, projetadas para dar a todos os nossos alunos a oportunidade de compartilhar seus conhecimentos e ajudar uns aos outros a aprender.

Então, o que você faz se ficar preso na última tarefa? Procurar uma solução pronta na Internet é uma má ideia. Claro, você receberá crédito pela tarefa se apenas copiar a solução de outra pessoa ou usar nossa solução correta. Mas você não fechará sua lacuna de conhecimento e isso certamente voltará para mordê-lo no futuro.


7. Dúvidas sobre tarefas

Os requisitos , recomendações e mentor virtual são super legais. Mas e se o validador ainda não aceitar sua solução e você não tiver certeza de qual é o problema?

Mesmo neste caso, ainda há uma saída. Conheça a seção de Ajuda . Nesta seção do site, os alunos do CodeGym podem fazer perguntas sobre as tarefas, explorar as soluções uns dos outros e também dar conselhos e dicas. Não é permitido postar soluções completas!

Parece muito simples e básico, mas na verdade é bastante sofisticado.

Primeiro, cada questão pode ter uma tarefa associada . Isso significa que não há sentido em percorrer todas as perguntas, se você estiver interessado em perguntas sobre uma tarefa específica. Você sempre pode usar um filtro para ver facilmente apenas as perguntas relacionadas à tarefa que lhe interessa. Basta digitar o nome da tarefa na barra de pesquisa:

Dúvidas sobre tarefas

Em segundo lugar, se você clicar no botão "Ajuda da comunidade" enquanto resolve uma tarefa, você será levado imediatamente para a seção de Ajuda, onde verá apenas perguntas sobre a tarefa em que está trabalhando. Se sua solução falhar na verificação da tarefa, as perguntas serão classificadas de maneira útil: as principais perguntas serão sobre os requisitos não satisfeitos que causaram a falha de sua solução.

Botão de ajuda

Em terceiro lugar, o plug-in IntelliJ IDEA oferece funcionalidade semelhante. Você pode clicar no botão "Ajuda" ou pressionar a combinação de teclas Ctrl+Alt+W, que abrirá imediatamente a seção de Ajuda em seu navegador. E, claro, o filtro exibirá apenas perguntas sobre a tarefa que você está resolvendo no IntelliJ IDEA .

Ajuda do IntelliJ IDEA

8. Criando uma pergunta

Se você não encontrar uma boa análise do seu erro na seção de Ajuda, sempre poderá criar sua própria pergunta. Isso é muito fácil de fazer - você só precisa clicar no botão "Fazer uma pergunta" e preencher os campos obrigatórios:

Criando uma pergunta

Ao contrário de muitos outros serviços, como StackOverflow, Code Ranch, etc., o CodeGym não exige que você coloque todas as informações importantes no título da pergunta. Escreva sua pergunta como quiser.

A propósito, você não precisa copiar seu código do WebIDE ou do IntelliJ IDEA e adicioná-lo à sua pergunta. Quando você cria uma pergunta sobre uma tarefa, o código da sua solução junto com os status dos vários requisitos da tarefa são automaticamente adicionados a ela , ou seja, quais requisitos sua solução atende atualmente e quais não.

Criando uma pergunta 2

Isso significa que outros alunos do CodeGym veem imediatamente todas as informações relevantes sobre a solução do solicitante, o que torna muito mais fácil fornecer bons conselhos.


9. Código da solução

Em muitos sites, ao criar uma pergunta sobre código, você precisa anexar um arquivo com arquivos de programa à pergunta ou adicionar todos esses arquivos ao texto da própria pergunta. O resultado é uma grande bagunça que as pessoas não querem ou não conseguem cavar.

Fazer uma pergunta de forma rápida e eficiente é toda uma forma de arte. Em sites comuns, você terá que gastar meia hora formulando sua pergunta ou aceitar o fato de que ninguém vai responder. Uma boa pergunta sobre uma tarefa deve conter absolutamente as seguintes informações:

  • Link para a tarefa que o solicitante está resolvendo
  • As condições da tarefa para que outros não precisem caçá-los em qualquer lugar
  • Código da solução — isso pode incluir muitos arquivos
  • Status de cada requisito de tarefa, ou seja, o que funciona atualmente e o que não funciona.
  • Texto da pergunta: isso geralmente é bastante claro - minha solução não funciona e não sei por quê.

O CodeGym exibe essas informações usando um widget especial muito semelhante ao widget WebIDE . Afinal, ele já foi projetado para exibir todas essas informações. Bem, talvez com exceção da própria pergunta.

Código da solução

Na verdade, escrevemos um widget especial apenas para facilitar o estudo das soluções de outros usuários. E para tornar fácil e agradável para outros usuários examinar suas soluções nas perguntas que você faz.