O problema
Uma das perguntas mais comuns entre desenvolvedores iniciantes ou que estão estudando alguma ferramenta nova, é: “Certo, estudei um monte de coisa legal, tudo parece muito útil e totalmente incrível! Mas… como testar isso na prática?”
E realmente não é pouca coisa. Pode ser desmotivador você ficar um tempão estudando, aprendendo um monte de coisas legais e não conseguir colocar aquilo em prática no seu dia-a-dia.
Ou pior, você pode estar procurando seu primeiro emprego, ou uma nova oportunidade e fica com receio que seus conhecimentos não sejam o suficiente para alcançar o objetivo.
As soluções
Quer fazer uma demo ou testar alguma coisa rapidamente?
Nesse caso é desnecessário criar repositórios, teste rapidamente usando ferramentas como:
Assim fica mais fácil para você ou outros desenvolvedores estudarem o código e fazer modificações caso queiram.
Costumo usar o Codepen para pequenos projetos ou brincadeiras (olha algumas aqui) e o JSFiddle para testes mais simples ou pedaços de código que quero deixar guardado. Veja o que se adapta melhor as suas necessidades.
Quer testar uma solução com alguma finalidade definida?
Esse é o caso de literalmente transformar seu estudo em um projeto e criar uma solução mais completa. Eu costumo usar:
Uso o o Github para repositórios públicos e o Bitbucket para repositórios privados ou que ainda não quero deixar aberto.
Quando colocar seu projeto no Github, outros desenvolvedores terão a possibilidade de estudar e ajudar no seu projeto. E claro, ele vai poder ser usado por outras pessoas, que podem achar bugs e problemas. Isso gera um ciclo super efetivo.
Quer testar seus conhecimentos?
Uma boa ideia nesse caso é procurar projetos que já existem e usem alguma técnica que você estava estudando (acredite, existe projeto de tudo!) e contribuir de alguma forma, seja propondo melhorias, seja arrumando issues que estavam abertas.
Além de contribuir para um projeto aberto (isso faz a você e a comunidade crescer) e testar suas habilidades, também vai precisar seguir documentações, criar branchs e trabalhar em equipe. Vale muito a pena em todos os sentidos.
E não se intimide. Todos gostam de receber contribuições.
Front-end Challenges
Em 2017, criei um repositório no Github chamado frontend-challenges, que é um compiladão com testes de contratação de várias empresas do Brasil e do Exterior.
A vantagem aqui é que você vai testar seus conhecimentos com desafios reais que algumas das principais empresas do mundo utilizam para contratar e ainda é possível ter um overview do nível de exigência e técnologias que essas empresas estão buscando.
Como deixar tudo mais real…
O único problema dessas técnicas é que existe uma diferença muito grande entre contribuir para projetos open source, com todo tempo e tranquilidade, e estar em uma empresa, desenvolvendo com prazos apertados e pressão do gerente de projetos ou do cliente.
Uma solução que parece ser a melhor tecnicamente mas que leva muito tempo para ser aplicada, pode não ser a melhor solução para projetos com prazo apertados. Isso pode criar pressões desnecessárias caso não esteja preparado.
Então a dica para deixar os seus estudos ainda mais próximos do “mundo real” - Seja você mesmo o seu gerente de projetos:
- Defina um dia para a “entrega”
- Faça uma estimativa de quantas horas vai gastar no desenvolvimento
- Quais os problemas e dificuldades que imagina encontrar
- Cumpra o prazo!
Em uma empresa, vai existir muita pressão caso o prazo não seja cumprido, então siga a risca o que você definiu.
Ao final do projeto, analise:
- Você conseguiu entrar o projeto no prazo?
- Sua estimativa de horas foi condizente com o tempo gasto? Foi mais ou foi menos?
- Teve mais dificuldades do que imaginou ou conseguiu se sair melhor do que achava?
- Conseguiu se manter focado durante o desenvolvimento? Alguma coisa atrapalhou?
Essa abordagem é especialmente util para desenvolvedores que ainda não iniciaram no mercado de trabalho e assim podem se sentir mais confortáveis com pressão na entrega dos projetos. Mas pode ser utilizada facilmente por qualquer profissional, experiente ou não.
Espero que tenham gostado ;)