Ler e assistir aulas ensina a teoria. É no projeto que o conhecimento vira habilidade. Só que muita gente trava na hora de decidir o que construir. Aqui vai uma lista organizada por nível, com um método para tirar o máximo de cada exercício.
Como escolher um projeto
Antes de qualquer lista, três critérios:
- Que você tenha interesse. Se o projeto ajuda no seu hobby, no trabalho ou numa tarefa chata, a motivação vem de graça.
- Que seja um pouco mais difícil do que você já sabe, mas não impossível. Se tudo for conhecido, você não aprende; se nada for, você desiste.
- Que possa ser dividido em etapas pequenas, cada uma funcionando antes de seguir para a próxima.
Nível iniciante: fixando a base
Servem para praticar variáveis, condições, laços, funções e entrada e saída. Funcionam em qualquer linguagem, como Python ou JavaScript.
- Calculadora: começa com quatro operações e depois ganha porcentagem e histórico.
- Jogo de adivinhar o número: o programa sorteia, o jogador chuta e recebe dicas de maior ou menor.
- Conversor de unidades: temperatura, distância, moeda com taxa digitada.
- Contador de palavras: conta palavras, letras e frases de um texto colado.
- Lista de tarefas: adicionar, marcar como feita e remover itens.
- Gerador de senhas aleatórias: com opções de tamanho e tipos de caracteres.
- Quiz de perguntas e respostas: com pontuação ao final.
- Cronômetro ou relógio: funções de tempo e atualização da tela.
- Página de apresentação pessoal em HTML e CSS, praticando HTML e CSS.
Nível intermediário: juntando as peças
Aqui entram arquivos, APIs, bancos de dados e organização de código.
- Aplicativo de clima ou cotações: consome uma API pública e mostra os dados formatados.
- Controle de gastos: cadastra despesas, soma por categoria e guarda em arquivo ou banco.
- Encurtador de links: recebe um endereço longo e devolve um curto que redireciona.
- Agenda de contatos: com cadastro, busca, edição e exclusão (o famoso CRUD).
- Blog simples: com banco de dados, páginas de artigo e painel para publicar.
- Clone de uma página que você admira, focando em layout responsivo.
- Jogo da velha ou da forca com interface gráfica ou web.
- Automação do dia a dia: um script que organiza arquivos por tipo, renomeia fotos ou lê planilhas e gera relatório.
- Bot de mensagens para plataformas que oferecem interface oficial para isso, como o Telegram.
Nível avançado: parecido com o mundo real
- Loja virtual simplificada: produtos, carrinho, login e pedido, com pagamento em modo de teste.
- Sistema com autenticação e permissões: usuários comuns e administradores.
- API documentada, com testes automáticos e publicação na internet.
- Aplicativo em tempo real, como um chat.
- Painel de dados com gráficos a partir de um conjunto de dados real.
- Projeto com publicação automatizada, que roda testes e publica ao enviar o código ao repositório.
- Contribuição a um projeto aberto.
Como transformar um exercício em aprendizado
- Defina a versão mínima que já funciona e comece por ela.
- Planeje no papel: liste as telas, os dados e os passos.
- Construa em etapas, testando a cada uma.
- Use o Git desde o início, com commits pequenos. Veja Git e GitHub para iniciantes.
- Quando travar, reduza o problema, leia a documentação, pesquise e só então peça ajuda.
- Refatore: depois de funcionar, reveja nomes, repetições e organização.
- Acrescente uma melhoria: um recurso novo, testes ou um visual melhor.
- Escreva um README e publique.
Como evoluir um projeto: o exemplo da lista de tarefas
Um único projeto pode render meses de aprendizado se você o fizer crescer por versões:
- Versão 1: adiciona e mostra tarefas no terminal ou na tela, sem salvar.
- Versão 2: guarda as tarefas em um arquivo para não perder ao fechar.
- Versão 3: ganha interface web bonita e responsiva.
- Versão 4: passa a usar um banco de dados.
- Versão 5: cria contas de usuário, com login seguro.
- Versão 6: ganha testes automáticos e é publicada na internet.
Cada etapa ensina um assunto novo com um problema que você já conhece.
Ideias para sair do bloqueio
- Olhe seus próprios problemas: o que você faz toda semana de forma manual?
- Pergunte a familiares e amigos o que os incomoda; um site simples para a barraca de um conhecido é um ótimo projeto, desde que você combine com clareza o escopo.
- Recrie ferramentas que você usa, em versão enxuta.
- Participe de desafios online de programação e de eventos de criação de jogos e aplicativos, que dão prazo e tema.
Erros comuns
- Projeto grande demais no início, que nunca termina.
- Copiar sem entender e não conseguir explicar o que fez.
- Começar vários e não terminar nenhum.
- Esperar o projeto perfeito antes de publicar.
- Não registrar o aprendizado. Anote o que deu certo e o que travou.
O que fazer agora
Escolha um projeto da lista, escreva em três linhas o que ele faz e qual é a versão mínima, e dê o primeiro commit hoje. Quando ele estiver pronto, vá para o próximo nível e leve os melhores para o seu portfólio de programador.