Projeto real ensina mais que qualquer curso, e eu te provo.
Tô fazendo um projetinho em Haskell chamado Frank e basicamente um "Commit Butler".
A ideia surgiu enquanto eu tava codando projetos aleatórios: o projeto basicamente pega as mudanças que tão na área de staging (git add) e gera mensagens de commit automáticas seguindo um padrão. E ainda me zoa pelo meu código.
A intenção era só brincar, fazer algo divertido e fugir desses projetos genéricos de "to-do list com React". Mas aí veio a surpresa: comecei a aprender coisa pra caramba.
- Comecei a ter que entender mais como o git funciona por baixo dos panos, o seu fluxo e aprender alguns comandos mais avançados
- Aprendi uma linguagem nova, Haskell (e apanhei demais e ainda estou)
- E principalmente: aprendi a parar de depender de tutorial pronto
Escolhi Haskell principalmente por não ter tanto tutorial e coisas prontas por aí, fora que em haskell as coisas funcionam bem diferente de um js da vida.
Esqueceu uma indentação?
Toma erro na cara.
Tentou juntar dois valores de tipos diferentes?
Aqui não, irmão, erro na cara.
"Ah quero só pegar esse dado aqui e juntar com aquele outro rapidão..."
Tipos diferentes? Efeito colateral?
Toma mais erro na cara.
E sabe o que é mais doido? Isso é maravilhoso.
Porque aí você tem que entender.
Não tem biblioteca milagrosa. Não tem Stack Overflow resolvendo tudo com um copia-e-cola. Você precisa parar, respirar fundo e descobrir por que caralhos aquilo tá dando erro.
E pela primeira vez eu me senti programador de verdade.
Não tive aquela sensação de que eu só estou pegando um código de um tutorial e basicamente replicando sem nem ao menos entender oq ele tá fazendo.
Então se você quer aprender de verdade, meu conselho é:
Para de fazer projetinho de curso. Cria o seu. Mesmo que pareça bobo. Mesmo que não vá pra produção.
Porque quando o projeto é seu, a dor é sua – e o aprendizado também.