# #100DaysOfCode — O que eu aprendi em 20 dias?

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1700320017977/956c7044-2b2b-4829-a437-5e57fd2fd35b.jpeg)

English version [here](https://medium.com/@RafaelSermenho/100daysofcode-what-i-learned-in-20-days-66d55194ff70#.vnt9qoamm).

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](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4#.by9tbxhwq).

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](https://square.github.io/retrofit/) e [glide](https://github.com/bumptech/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](https://github.com/RafaelSermenho/100-days-of-code/blob/master/log.md) 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](https://developer.android.com/reference/android/app/job/JobScheduler.html) e a biblioteca [Dagger2](https://google.github.io/dagger/). 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.

Momento jabá: No meu desafio #100DaysOfCode tenho trabalhado no app “Foto do Dia” que tem a proposta de baixar a foto do dia direto do site da NASA. A versão publicada na Play Store está [aqui](https://play.google.com/store/apps/details?id=br.com.android.rafaelsermenho.nasapod) e a versão em desenvolvimento está no meu [Git](https://github.com/RafaelSermenho/Nasa_PictureOfTheDay).

Gostou do texto? Clique no botão Recommend, logo abaixo. Fazendo isso, você ajuda esta história a ser encontrada por mais pessoas. Seu comentário, crítica ou sugestão também são bem-vindos.
