Artigo original: How I finished the entire freeCodeCamp curriculum in 9 months while working full time

Durante o ano passado, terminei o currículo inteiro do freeCodeCamp enquanto trabalhava em tempo integral como professora. Neste artigo, vou descrever como consegui fazer isso. Particularmente, quero falar sobre como organizei meu tempo e que material complementar usei.

Histórico

Primeiro, vamos falar do que há por trás disso. Eu não era completamente nova na programação. Cresci em uma pequena empresa de tecnologia.

Meu pai fundou sua própria empresa antes de eu nascer, onde eles realizavam diferentes atividades dentro da tecnologia, como consertar computadores, configurar conexões e redes de internet para outras empresas, ministrar cursos de informática e construir aplicações administrativos para empresas. Era uma cidade pequena, então eles eram basicamente os "caras da tecnologia" para toda a cidade.

Os escritórios da empresa eram em nossa casa. Então, eu literalmente cresci entre computadores e pessoas que gostavam deles. Comecei a brincar com o Visual Basic quando criança (um dos caras da empresa me ensinou a usá-lo) e passei todo o meu tempo livre on-line, conversando com colegas nerds.

Quando eu tinha uns 12 anos, um desses nerds me enviou por e-mail um manual de desenvolvimento para web (um arquivo .txt enorme que, basicamente, tratava de HTML) e eu o usei para construir meu próprio site. Ele tinha até um daqueles contadores de visita bacanas.

Eu o hospedei na Geocities, consegui um URL curto gratuito e o listei no Yahoo e no AltaVista (esses eram os maiores na época).

Depois disso, a vida aconteceu e eu desisti completamente da ideia de ser programadora, pois as circunstâncias exigiam uma abordagem mais "realista". Não vou entrar em detalhes agora, mas tive que desistir de estudar e conseguir um emprego.

Continuei vivendo minha vida. Eu construía sites, aqui e ali, para os clientes do meu pai. No fim, decidi começar a ensinar inglês, que era algo que veio fácil para mim e esqueci tudo sobre desenvolvimento para a web. Foi quando chegou o ano de 2016.

Como decidi mudar de carreira

Adoro ensinar. É uma profissão gratificante, interessante e divertida, mas tem seus pontos negativos. No início, tudo parecia um desafio. Porém, depois de tantos anos fazendo isso, comecei a sentir que não tinha propósito, que eu não estava mais crescendo ou aprendendo.

Eu estava me sentindo presa. Era como se meu trabalho fosse exatamente o mesmo ano após ano. Eu estava apenas seguindo em frente. Também não havia muitas oportunidades para realocação, algo que se tornou muito importante para mim mais tarde.

Em 2013, conheci meu marido e, no ano seguinte, fizemos uma viagem de três meses para a Europa mochilando, mas isso vale um outro artigo totalmente diferente. Basicamente, tínhamos um orçamento extremamente baixo e tivemos uma experiência incrível. Amamos a Europa e decidimos que voltaríamos para outra longa viagem.

O tempo passou, fizemos outras coisas e eu encontrei a Codecademy e comecei a brincar com ela e com a ideia de me tornar uma desenvolvedora em tempo integral. Eu já tinha alguma experiência construindo sites apenas com HTML e CSS, mas sem JavaScript. Eu estava lendo muitas histórias de sucesso on-line, mas ainda não considerava uma carreira real, nem de longe.

Enquanto isso, estávamos planejando a próxima viagem longa, economizando dinheiro, planejando e assim por diante. Eu estava trabalhando como tradutora freelancer cada vez mais, muito envolvida com a minha carreira, traduzindo coisas legais como romances e poesias. Chegou 2017 e fomos para a Europa novamente, desta vez por dois meses.

Lá, conhecemos vários desenvolvedores. Foi uma loucura. Cada um dos couch surfers que conhecemos parecia estar em TI de alguma forma, seja como gerente de produto de software, desenvolvedor, testador e assim por diante. Todos eles nos incentivaram a entrar na tecnologia. Nessa altura, já tínhamos decidido que queríamos nos mudar para a Europa. Por isso, muitos deles diziam: "Vocês podem arranjar emprego aqui. Os desenvolvedores são procurados por aqui e precisamos de muitos deles."

Antes de a viagem terminar, tomamos a decisão de nos inscrever para um certificado técnico de 2 anos em uma universidade técnica recém-fundada perto de nossa cidade natal. O programa era principalmente Java. Então, quando voltamos, começamos um curso de Java na Cousera. O primeiro módulo era, na verdade, um curso de JavaScript. Foi como ficamos viciados em JavaScript quase que imediatamente.

Enquanto aprendíamos JavaScript, esperávamos o início do ano letivo, em março de 2018. Foram apenas 50 vagas para a Universidade, então nos dedicamos e aprendemos de antemão. Fomos, fizemos provas, passamos em cursos e depois tivemos que esperar até que eles decidissem. Obtivemos as notas mais altas entre todos os candidatos, mas essas notas não fizeram diferença. As vagas seriam atribuídas por meio de um sistema de sorteio. Meu marido entrou e eu fiquei de fora.

Ele decidiu que preferia aprender sozinho. Não estava mais tão interessado em Java porque estava viciado em JavaScript. Começamos, então, a aprender por conta própria.

Começamos com a Codecademy, mas era muito "manual" para nós (não tínhamos contas Premium). Em algum lugar, lemos sobre o freeCodeCamp. Começamos, daí, muito lentamente no início (o primeiro certificado levou meses para ser obtido – admito que, no meio do currículo, ele foi alterado e eu joguei meu laptop longe e tive que consertá-lo). Depois que as férias de verão terminaram e eu voltei a trabalhar em tempo integral, as coisas ficaram difíceis.

Trabalhando em tempo integral e fazendo os cursos do freeCodeCamp a toda velocidade

Não foi fácil, não vou mentir. Ajudou que a maioria dos meus amigos e conhecidos não mora perto de mim, e eu moro em uma cidade pequena que não oferece muitas oportunidades de entretenimento. Nesse sentido, a programação foi um salva-vidas. Eu tinha algo divertido e viciante para fazer. Assim, eu pudematar horas de tédio com isso.

Isso ajudou muito ao lidar com a quantidade de horas que eu gastava fazendo trabalho mental (ensinando e estudando).

O primeiro certificado demorou meses, em parte porque eu estava esperando para entrar na Universidade e em parte porque eu estava trabalhando 10 horas por dia nos primeiros 3 meses do ano letivo.

Infelizmente, eu não podia simplesmente largar meu emprego e estudar em tempo integral, já que eu precisava pagar as contas. Foi quando precisei ficar muito boa em 3 coisas:

  1. Gestão do tempo
  2. Disciplina
  3. Organização

Gestão do tempo

Eu começava a trabalhar às 7h. Então, comecei a levantar às 4h30 na maioria dos dias. Começava o dia com desafios freeCodeCamp e café. Às vezes, eu também lia um livro ou fazia outros tutoriais, dependendo do que eu estava trabalhando no momento. Também estudava durante o horário de almoço e depois do trabalho, mas aceitei o fato de não ser tão produtiva durante a semana por causa do trabalho. Então, durante a semana, fazia principalmente desafios curtos, leitura e assim por diante. Eu trabalhava em projetos nos finais de semana, feriados e no meu tempo livre.

Se eu tivesse 30 minutos, eu lia 30 minutos. Se eu tivesse 15, eu estudava por 15 minutos. Usei todos os momentos livres do meu dia para estudar.

Aos domingos, eu preparava a maior parte das minhas refeições da semana para não ter que gastar tempo cozinhando e não ter que acabar comendo coisas não saudáveis. Também planejei e reuni tudo o que precisava para trabalhar durante a semana, para não precisar gastar tempo extra além do horário normal de trabalho.

Felizmente, depois de junho, minha jornada de trabalho foi reduzida de 10 a 12 horas para 8. Eu estava trabalhando em um horário normal e foi aí que comecei a pegar o ritmo.

Disciplina

Você vai ter que estudar mesmo nos dias em que não tiver vontade. Aqui é onde a motivação também desempenha um grande papel, mas a disciplina é importante – especialmente se você é como eu e se distrai muito com mídias sociais e vídeos de gatos.

A melhor dica que posso dar para você para combater a tentação de ler artigos on-line é esta: se você vier com uma pergunta em sua cabeça como "como os aviões voam?" (que geralmente é o tipo de pergunta que me deixa levar e me suga por 30 minutos), anote em algum lugar e prometa a si mesmo que você pode ler tudo sobre isso depois de terminar o que está fazendo.

Em 99% das vezes, você não vai se importar mais, porque essas perguntas só aparecem em seu cérebro porque ele quer se distrair. Siga em frente e você vai vencer as distrações.

Outro aspecto da disciplina é ter que escolher o estudo em detrimento de outras coisas. Essa é a parte não tão divertida. Tive que desistir de muitas, muitas coisas que gostava para favorecer os estudos, e mal posso esperar para poder voltar a elas. Eu fiz isso apenas porque eu queria me tornar uma desenvolvedora o mais rápido possível (veja Motivação abaixo), mas mesmo que você não esteja com pressa como eu, você pode achar que gasta muito tempo fazendo coisas que, mesmo que sejam gostosas e agradáveis, ocupam muito do seu tempo.

Você terá de priorizar e fará escolhas difíceis.

Motivação

Eu tinha um motivador muito forte que era me tornar um desenvolvedor e me mudar para a Europa. Esse foi meu objetivo por muito, muito tempo. Cheguei ao ponto de ficar frustrada por não estar conseguindo. Todos os meus amigos saíram da cidade, praticamente não tenho família aqui, me senti isolada e queria ir embora.

Foi isso que me impulsionou. Parecia um fogo debaixo dos meus pés, eu sentia que não tinha escolha. Você precisa de uma forte motivação para fazer mudanças radicais. Eu não sei vocês, mas eu sou uma pessoa do tipo "não conserte o que não está quebrado". Então, é muito difícil me fazer fazer as coisas apenas por fazê-las.

Meus hobbies são todos muito práticos e produtivos: jardinagem, yoga, culinária. Eu preciso ter um motivo para fazê-los (eu quero vegetais grátis, minhas costas doem, estou com fome). Se você é parecido ou parecida comigo, vai precisar encontrar uma motivo para seguir em frente.

Passe algum tempo pensando sobre isso, o que exatamente você quer realizar terminando o freeCodeCamp? O que você quer mudar ou obter em sua vida pessoal através disso?

O currículo e os recursos complementares

A seguir estão alguns dos recursos suplementares que usei na minha jornada com o freeCodeCamp. Tenha em mente que esta não é uma lista exaustiva porque eu consultei demais o Google – e que alguns dos cursos que eu menciono não são gratuitos.

Design responsivo para a Web: essa era a parte com a qual eu já tinha alguma experiência, então foi fácil e divertido. Utilizei alguns recursos complementares, especialmente para o Flexbox. Meu lugar favorito para isso é o Interneting is hard (em inglês).

Algoritmos e estruturas de dados em JavaScript: uma vez que cheguei aos módulos de JavaScript fiquei viciada. Foi tudo muito divertido, aprendi muito e estava ansiosa para colocar tudo isso em prática.

Para essa seção usei livros, principalmente. Eu já tinha feito muitos exercícios com o freeCodeCamp, mas eu precisava de mais no formato de explicações. O livro Beginning JavaScript traz toneladas de exercícios também.

Quando cheguei a essa seção, também entrei no programa Summer of Code do 1 Million Women to Tech (1MWTT). Aprendi Python básico e JavaScript do básico ao avançado, o que ajudou muito, principalmente com Promises.

Aprender Python também me ajudou a reforçar alguns conceitos básicos de programação. Eu recomendo seriamente que, quando você se sentir confiante com JavaScript, tente uma nova linguagem, apenas seus conceitos básicos. Você ficará muito mais confortável depois de saber como fazer a mesma coisa com ferramentas diferentes.

Frameworks do JavaScript: esta seção também foi ótima, pois me deu uma base em React e Redux. Eu já estava fazendo um curso de React na Udemy, chamado React 16.6 - The Complete Guide (including React Router & Redux) (curso em inglês).

Recomendo esse curso e outros cursos do mesmo autor. Ele é incrivelmente minucioso e suas explicações são incríveis. Esse foi um dos poucos cursos da Udemy em que eu realmente acompanhei o projeto que ele faz: normalmente assisto os vídeos e aplico os princípios em tudo o que estou trabalhando.

Na 1millionwomentotech, tivemos uma semana do React, que usava principalmente o React Native, então comecei a brincar com isso. Nessa altura também comecei a trabalhar no meu projeto paralelo com o meu marido, que decidimos que seria um PWA com o React.

Não posso enfatizar o quanto é importante construir algo próprio do zero. Aprendi muito mais em algumas semanas construindo nossa aplicação do que aprendi com qualquer curso ou tutorial.

APIs e microsserviços: esta seção foi uma grande revelação para mim e mudou tudo. Até esse módulo, eu tinha certeza de que queria ser uma desenvolvedora de front-end, mas, depois de aprender Node.js, comecei a pensar em ser uma desenvolvedora back-end ou Full Stack. Criar APIs é muito divertido – e você vê os resultados rapidamente. Comecei a construir meus primeiros pequenos projetos Full Stack e fiquei muito animada.

Alguns dos recursos que utilizei (em inglês):

Durante esse tempo, eu também estava me voluntariando para a "1MWTT" e me pediram para construir uma aplicação de Probot para a integração de voluntários com o Node. Isso também me deu um pouco de prática com o Node, o que foi muito divertido.

QA e segurança da informação: este módulo também ajudou a abrir meus olhos. Até então, eu nunca tinha escrito um único teste na minha vida. Agora, eu adoro escrever testes e até fiquei muito interessada em Test Driven Development.

Eu usei, principalmente, as documentações para essa seção, mas então decidi testar meu front-end também, e encontrei este curso incrível na Udemy que não posso recomendar o suficiente. A instrutora é de longe a melhor instrutora que já vi na Udemy. Mal posso esperar para consumir quaisquer outros cursos que ela lance no futuro.

- Documentação do Chai

- React Testing with Jest and Enzyme

Visualização de dados com o D3: este foi o certificado mais difícil, com certeza. As explicações foram boas, mas uma vez que você chega aos projetos, descobre que os desafios cobrem apenas o primeiro projeto, e você está meio sozinho para o resto. Não há muitos bons recursos on-line. Li principalmente as documentações e usei tutoriais. Aqui estão os recursos que finalmente me fizeram passar por essa certificação:

DTutoriais de D3.js, por d3Vienno

- Documentação do D3

Dicas para terminar o currículo

Resumindo, essas são as coisas que mais me ajudaram a cumprir meu objetivo de terminar o currículo:

  • Use o currículo como um roteiro, mas complemente com outros recursos
  • Não fique preso por muito tempo: faça perguntas, consulte o Google, programe com seus pares.
  • Estabeleça metas realistas para cada dia e semana. Não sofra se em uma semana você estiver mais lenta: a vida acontece. Não deixe que isso tire você do rumo.
  • Tenha sua motivação em mente: é o que vai garantir que você siga, mesmo nos dias difíceis.
  • Priorize: você terá que reduzir o tempo que gasta fazendo outras coisas.
  • Não se esqueça de tirar dias de folga. Eles são vitais para o processo de aprendizagem. Não se esqueça, também, de dormir o suficiente!

Depois do freeCodeCamp, me senti um pouco perdida. Esse foi o roteiro que me guiou através da minha jornada de professora a desenvolvedora.

Depois de alguns dias de reflexão e planejamento, me dediquei ao meu projeto paralelo que estou construindo com meu marido. Estamos aprendendo e nos divertindo e estamos muito animados com isso.

Sim, eu recebi uma oferta de emprego logo após terminar o currículo, mas falarei mais sobre isso em um próximo artigo.

Em resumo, eu não poderia ter aprendido tudo o que aprendi tão rapidamente se não fosse pelo freeCodeCamp e sou extremamente grata a todos que tornam possível um projeto tão maravilhoso.

Se você sente o mesmo e é capaz de retribuir, considere fazer uma doação para o freeCodeCamp aqui.