No final de janeiro desse ano resolvi abandonar um curso que estava fazendo e partir para uma coisa mais objetiva e rápida. Acabei reencontrando um artigo no medium que falava sobre o desafio dos #100DaysOfCode.
A proposta do desafio é simples: Programar por pelo menos 1 hora durante 100 dias.
Depois de entender as regras do desafio, pensei em projetos que poderia começar e acabei decidindo por um projeto que eu tinha feito para testar bibliotecas como retrofit e glide. A minha tática foi reescrever esse projeto usando outros padrões de arquitetura e técnicas que eu não domino.
Como manda a regra, todos os dias tem um item novo no meu log e lá podemos ver que tive dias muito produtivos, dias que eu contava os minutos para dar 1 hora de código e largar tudo, dias que eu lutava com bugs e dias que eu era derrotado por eles.
Today was a good dev night!
The night was not productive.
Just one hour coding, cause my mother is here.
JobScheduler is a gift from heaven!
Stupid receiver!!! I wanna kill you!!!
Mas, o que há por trás disso tudo? Tudo que eu citei acima faz parte da vida de qualquer pessoa…altos e baixos, momentos bons e outros nem tanto. Mas o que eu fui capaz de tirar de lição disso tudo?
- É mais fácil do que parece: Apesar de parecer muito tempo, 1 hora passa voando.
- É mais difícil do que você imagina: A preguiça e a procrastinação vão ser inimigos cruéis. A parte mais difícil é conseguir vencer essas barreiras.
- A vida vai tentar te atrasar: Hora extra, festa, cinema, viagens, visita de parentes. Tente lidar com isso e não cair no próximo item.
- Não deixe para fazer tudo com sono: A produtividade cai muito, os erros aumentam e você vai pagar por isso no dia seguinte.
- Muitas pessoas vão interagir com você: Seu git vai ficar movimentado e seus tweets serão notados.
- Muitas pessoas vão rir de você: Afinal de contas, quem em sã consciência perderia 1 hora por dia escrevendo código e postando sobre isso?
- Algumas pessoas vão te apoiar… e falar que sim, é legal perder (só!) 1 hora por dia escrevendo código.
- Testes são fundamentais: Não faça como eu e inicie o projeto sem testes. Apenas não faça isso!
- Crie projetos menores para entender melhor alguns conceitos: Estava com dificuldades para entender o uso de JobScheduler e a biblioteca Dagger2. A melhor maneira de compreendê-los, foi fazendo um projeto separado só para validar conceitos.
- Leia: Documentação, posts, artigos, fóruns. O conhecimento está aí para quem quiser e souber buscar.
- Escreva: Não encontrou informação disponível sobre algo que procurava, mas descobriu como fazer? Compartilhe! Escreva você mesmo e ajude o próximo.
Bom, essas foram algumas coisas que eu percebi durante os primeiros 20 dias de desafio. Vamos ver se mais pra frente alguma coisa muda.