As palavras 'theory' e 'practice' escritas em um quadro

Aproximando seus estudos de cenários reais

Sobre aquela velha questão de Teoria x Prática e como solucionar isso.

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 desmotivante 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 aé 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.

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:

  1. Defina um dia para a "entrega"
  2. Faça uma estimativa de quantas horas vai gastar no desenvolvimento
  3. Quais os problemas e dificuldades que imagina encontrar
  4. 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:

  1. Você conseguiu entrar o projeto no prazo?
  2. Sua estimativa de horas foi condizente com o tempo gasto? Foi mais ou foi menos?
  3. Teve mais dificuldades do que imaginou ou conseguiu se sair melhor do que achava?
  4. 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 ;)