Artigo original: The #100DaysOfCode Challenge, its history, and why you should try it for 2021

Em junho de 2016, eu recebi um e-mail de um desenvolvedor chamado Alexander Kallaway.

Eu conhecia o Alex, pois ele criou o grupo de estudos do freeCodeCamp em Toronto. Esse foi um dos grupos de estudos mais ativos no Canadá, atraindo dezenas de desenvolvedores todas as semanas.

Mas Alex não estava me escrevendo para falar do grupo de estudos de Toronto. Ele queria me contar sobre um desafio de resistência sobre o qual ele sonhou.

O desafio era esse: Alex queria programar por pelo menos uma hora por dia todos os dias — por 100 dias seguidos.

1_gxqZjvLgyl_AQNSD17Eu2Q
Comic by Sarah Andersen.

Alex escreveu um artigo explicando as regras do desafio e sobre como se comprometer publicamente com ele. Ele esperava que algumas pessoas lessem o artigo e se unissem a ele nesse desafio.

Então, ele criou a hashtag no Twitter para acompanhar o desafio: #100DaysOfCode.

1_5UFxgU9XPZOUtvudcc0hXQ
“Ah, oi!” Um dos eventos do freeCodeCamp em Toronto, a cidade onde o desafio #100DaysOfCode nasceu. Foto de Justin Richardson.

Mal sabia ele que, meses depois, milhares de pessoas estariam enviando a hashtag pelo Twitter centenas de vezes ao dia.

Hoje, pessoas que se comprometeram com o desafio #100DaysOfCode usam a hashtag para compartilhar seu andamento, projetos e conquistas atingidas — como conseguir seu primeiro emprego como desenvolvedor.

Como o Alex se transformou de um desenvolvedor solitário que queria melhorar suas habilidades com código em líder de um movimento mundial envolvendo milhares de desenvolvedores?

E quem é esse tal de Alexander Kallaway, mesmo?

Há alguns anos, Alex era apenas outro aluno do ensino médio da Rússia. Ele era apaixonado por idiomas estrangeiros, e aprendia inglês e japonês. Suas paixões acabaram levando-o ao Japão, onde continuou seus estudos em uma universidade japonesa.

Um dia, no Japão, Alex viu uma cópia em inglês de Trabalhe 4 horas por semana em uma estante de livros. Ele diz que esse livro abriu seus olhos para o empreendedorismo e para a noção de que qualquer um poderia começar um projeto que causasse um grande impacto — não apenas os "homens e mulheres de negócios" tradicionais.

Ele achou uma maneira de se mudar para o Canadá, onde fez Administração.

Foi lá que sua futura esposa, Anna, entrou em contato com ele, querendo saber mais sobre como morar fora e como ele havia conseguido fazer isso. Hoje, ela vive em Toronto com Alex.

1_mKM0qA9LbPD8Ln-3Splt8Q
Alex e sua esposa Anna na Disneylândia de Hong Kong.

Em 2014, Alex havia concluído a Administração e começou uma carreira em marketing digital.

Mas as interações de Alex com os desenvolvedores ao redor dele no trabalho fizeram-no perceber algo importante. Faltava a ele uma habilidade importante para o empreendedorismo. Ele precisava aprender a programar.

Alex não tinha experiência real em programação. Ele não podia dedicar o tempo ou o dinheiro necessários para frequentar um bootcamp de programação — quem dirá voltar para a faculdade para fazer Ciência da Computação.

Mas ele decidiu aprender a programar de todo jeito. Todos os dias, depois do trabalho, Alex aprendia a programar usando recursos on-line gratuitos.

Enquanto usava o freeCodeCamp, ele decidiu que queria programar com outros amigos para ter mais atribuição social de responsabilidades. Ele tentou se unir a um grupo do freeCodeCamp em Toronto, mas não havia um. Foi assim que ele o criou.

O grupo de estudos de Toronto do freeCodeCamp se expandiu rapidamente por meio dos seus esforços para organizar os eventos. O grupo começou se reunindo em cafés. Depois de um tempo, já preenchiam espaços inteiros de escritório. Por fim, ele encontrou um local permanente em um espaço de trabalho conjunto próximo.

E por meio do freeCodeCamp Toronto, Alex fez amizade com dezenas de pessoas que pensavam parecido e que queriam aprender a programar.

Todo esse trabalho rendeu frutos. Graças às suas habilidades recém-adquiridas e sua grande rede de desenvolvedores, Alex conseguiu seu primeiro trabalho como desenvolvedor.

Nesse ponto, era fácil relaxar. Ele chegou lá.

Ele tinha um trabalho divertido. Estava recebendo um bom salário. Ele fez muitos amigos. Ele tinha "alcançado o sucesso". Ele era um expatriado russo encontrando o sucesso na maior e mais competitiva cidade do Canadá.

Mas Alex queria seguir expandindo suas habilidades para poder realizar suas ambições empreendedoras. Ele sentia que suas habilidades estavam estagnadas. Depois de um longo dia de trabalho, era tentador simplesmente relaxar e assistir TV ou sair com os amigos.

Alex se lembra:

"A ideia do #100DaysOfCode originalmente surgiu da frustração pessoal com minha incapacidade de aprender a programar de maneira consistente após o trabalho. Eu costumava encontrar atividades que envolviam menos esforço para passar meu tempo, como maratonas de séries de TV.

Em um dia desses, eu estava sentado em um restaurante com minha esposa, Anna, compartilhando com ela minhas frustrações. Sugeri que talvez eu fizesse um compromisso público de aprender por pelo menos uma hora por dia, e pensei em estender isso por 3 meses.

Anna me disse que era uma boa ideia e me perguntou: 'Mas por que parar nos 3 meses? Faça isso durante 100 dias! Soa ainda melhor!' "

Nasce o desafio #100DaysOfCode

1_9VTiBSaOZuTDHr0FQUc8Pw
Consegui passar um tempo com Alexander Kallaway em pessoa em Toronto.

A hashtag #100DaysOfCode serviria como um dispositivo de comprometimento, forçando Alex a programar dia após dia depois do trabalho, mesmo quando ele queria assistir TV em vez disso.

Ele precisou declarar com clareza quais eram as regras do desafio, para que ele não as quebrasse mais tarde.

Assim, ele criou a Regra nº 1: Você se compromete a programar por, no mínimo, 1 hora todos os dias pelos próximos 100 dias.

Alex tinha obsessão com produtividade e com desenvolver hábitos positivos. Ele já havia lido dezenas de artigos sobre a formação do hábito. Alguns dos livros que ele recomenda sobre o tópico são:

Alex pensou no quanto da nossa motivação vem de amigos e família. Precisamos de atribuição social de responsabilidades.

Foi aí que ele percebeu que esse desafio poderia ser social por natureza. Quanto mais pessoas ele envolvesse, maior a probabilidade de algum dos participantes terem sucesso em chegar ao 100º dia.

Ele, então, criou a Regra 2: Você se compromete a encorajar pelo menos outras 2 pessoas que estiverem fazendo o desafio todos os dias usando o Twitter.

Conforme ele descreve:

"Esse sistema poderia ajudar a contra-atacar todas as desculpas que eu inventava ao natural para eu não fazer o que devia. Foi assim que o desafio nasceu — algumas regras simples, atribuição social de responsabilidade e pronto. A atribuição de responsabilidade é um dos maiores fatores para tentar mudar algum aspecto de sua vida."

Desde o início, Alex sabia que aprender a programar era difícil. Mas nossos amigos podem nos ajudar a seguir em frente contra todas as adversidades.

"Haverá milhares de vezes em que você pensará em parar. Ou ainda sentirá que seu progresso é muito lento ou se sentirá travado e sem esperanças. Essas são todas razões suficientemente sérias para desistir. Ou, ao menos, isso é o que você pode tentar dizer a si mesmo.

Porém, se você se conecta com outros que estão no mesmo caminho, pode compartilhar o lado bom e o ruim da jornada, e juntos vocês podem vencer as dificuldades. Compartilhe suas frustrações, experiências de aprendizagem e conquistas com pessoas que pensam parecido e que também estão no mesmo caminho que você. Ao compartilhar, você passa a entender melhor que: 'Não é só comigo.' "

Por que o desafio #100DaysOfCode é um objetivo mais realista que a maioria das resoluções de fim de ano com as quais as pessoas se comprometem

O desafio #100DaysOfCode dura apenas 100 dias — é menos que um terço do ano. E você tem uma comunidade imensa de pessoas torcendo por você.

Como resultado, muitos não apenas terminam o desafio, mas se comprometem por uma segunda ou terceira vez!

Alex, então, criou o conceito de "rodadas". Esse conceito é representado ao enviar um tweet com o dia em que você está (Dia 1) e quantas vezes você já fez o desafio (Rodada 1).

Ele adotou o novo formato de andamento diário no Twitter: R1D1 — que significa Rodada 1, Dia 1.

“Há uma piada interna que nasceu desse formato: no segundo dia da segunda rodada — R2D2 — as pessoas publicavam uma imagem ou um gif do querido robô R2D2 de Star Wars no seu tweet de progresso diário.”
1_Hw7O2KfPe3OOUpt0L9W1Pg

Percorrendo a hashtag #100DaysOfCode no Twitter, você verá casos em que as pessoas já completaram várias rodadas.

Alex, no entanto recomenda começar com um único comprometimento de 100 dias e seguir a partir daí. Ele também recomenda manter tudo simples para começar.

"As resoluções de fim de ano não funcionam porque as pessoas se comprometem em excesso. Certifique-se de que esse seja o único hábito que você está tentando adquirir."

Ele também diz que não há problema se algo inesperado aparecer e você não puder programar por um dia.

"Se você estiver viajando por 2 a 3 dias e não puder programar, leve um livro sobre programação com você e leia-o em vez de programar. Se puder dispor apenas de 20 minutos por dia, faça isso. Torne seu o desafio. A única regra que eu gostaria que você mantivesse como sagrada é programar diariamente. Você pode pular um dia ou outro em função de situações não planejadas, mas não mais do que isso. O objetivo é ser consistente, não importando o que a vida lança de dificuldades em seu caminho."

Se estiver interessado em aumentar sua motivação, você deve fazer o desafio. Ele começa com você fazendo o tweet de seu comprometimento com o desafio.

Clique aqui para se comprometer publicamente com o desafio #100DaysOfCode 😇

Depois, você pode fazer o fork do repositório do #100DaysOfCode no GitHub para que ele sirva como um diário de seu progresso.

Algo muito legal sobre o desafio é o fato de que você não precisa esperar pelo Ano Novo para assumir esse comprometimento.

Há pessoas começando no desafio todos os dias, então você terá pessoas que começaram antes de você e que estarão torcendo por você.

Depois, olhe para trás e comece a torcer por aqueles que começarem depois de você.

Esses tweets encorajadores e o feedback sobre seus projetos pode ser extremamente motivador. Já falei com várias pessoas que dizem que o desafio #100DaysOfCode os ajudou a romper barreiras que faziam com que eles não conseguissem programar por meses. A atribuição social de responsabilidades faz milagres.

Onde ir para saber mais

Alex deu algumas entrevistas ótimas em podcasts onde ele fala em detalhes sobre o desafio #100DaysOfCode:

Confira também o site da web oficial: 100daysofcode.com

E leia o artigo que Alex escreveu (em inglês) sobre algumas das melhorias que vêm com o desafio.

Mesmo que você não aceite o desafio, siga programando o tempo que você puder dedicar para isso.

No fim das contas, tudo tem a ver com a prática.

"Todo dia que você programa é um dia de vitória." — Alexander Kallaway