Como terminei todo o currículo do freeCodeCamp em 9 meses enquanto trabalhava em tempo integral

Durante o ano passado, concluí todo o currículo do freeCodeCamp enquanto trabalhava em tempo integral como professor. Neste artigo, vou descrever como consegui fazer isso. Particularmente como organizei meu tempo e que material suplementar usei.

fundo

Primeiro, a história por trás. Eu não era completamente novo em programação. Eu cresci em uma pequena empresa de tecnologia.

Meu pai fundou sua própria empresa antes de eu nascer, onde desenvolviam diversas atividades dentro da tecnologia, como consertar computadores, configurar conexões e redes de Internet para outras empresas, ministrar cursos de informática e construir aplicativos 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 ficavam em nossa casa, então, literalmente, cresci entre computadores e pessoas que gostavam deles. Comecei a brincar com Visual Basic quando era criança (um dos caras da empresa me ensinou como usá-lo) e passava todo o meu tempo livre online, batendo papo com outros nerds.

Quando eu tinha cerca de 12 anos, um daqueles nerds me enviou um manual de desenvolvimento web (um enorme arquivo .txt que basicamente lida com HTML) e eu o usei para construir meu próprio fan site. Ele até tinha um daqueles contadores de visita legais.

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

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

Continuei vivendo minha vida. Eu construí um site ocasional para os clientes do meu pai e, finalmente, decidi começar a ensinar inglês, que era algo que era fácil para mim e basicamente esquecia tudo sobre desenvolvimento web. Até 2016, é isso.

Como decidi mudar de carreira

Eu amo ensinar. É uma profissão gratificante, interessante e divertida. Mas tem suas desvantagens. No início, tudo parecia um desafio, mas 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 preso. Como se meu trabalho fosse exatamente o mesmo ano após ano. Eu estava apenas seguindo os procedimentos. Também não ofereceu muitas oportunidades de mudança, algo que se tornou muito importante para mim mais tarde.

Em 2013, conheci meu marido e, no ano seguinte, fizemos uma viagem de mochila às costas de três meses pela Europa, que é um post de blog totalmente diferente, mas basicamente com 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 então encontrei Codecademy e comecei a brincar com ele e a brincar com a ideia de me tornar um desenvolvedor em tempo integral. Já tive alguma experiência em construir sites apenas com HTML e CSS, mas sem JavaScript. Eu estava lendo muitas histórias de sucesso online, mas ainda não considerava uma carreira de verdade, nem de longe.

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

Lá nós conhecemos um monte de desenvolvedores. Foi louco. Cada surfista de sofá 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 encorajaram a entrar em tecnologia. Naquela época, já havíamos decidido que queríamos nos mudar para a Europa, então muitos deles nos disseram: “Você poderia encontrar um emprego aqui. Os desenvolvedores são procurados aqui, precisamos de muitos deles. ”

Antes do final da viagem, 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, iniciamos um curso de Java em Cousera. O primeiro módulo era na verdade um curso de JavaScript, então, na verdade, nos viciamos no JavaScript imediatamente.

Enquanto aprendíamos JavaScript, esperávamos o início do ano letivo em março de 2018. Havia apenas 50 vagas para a Uni, então nos dedicamos muito e aprendemos de antemão. Fomos, fizemos testes, passamos em cursos e então 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 loteria. Meu marido entrou e eu fiquei de fora.

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

Começamos com Codecademy, mas era muito portátil para nós (não tínhamos contas Premium). Em algum lugar, lemos sobre freeCodeCamp. E começamos, bem devagar no início (o primeiro certificado levei meses para conseguir, reconhecidamente no meio o currículo foi alterado e eu deixei cair meu laptop 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 freeCodeCamp em alta velocidade

Não foi fácil, não vou mentir. Ajudou o fato de a maioria dos meus amigos e conhecidos não morar perto de mim e eu morar 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 para fazer e era viciante, então eu poderia matar horas de tédio com isso.

Então isso ajudou muito ao lidar com a quantidade de horas que gastei fazendo trabalho mental (ensinando e estudando).

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

Infelizmente, não pude simplesmente largar meu emprego e estudar em tempo integral, já que precisava pagar as contas, então tive que me tornar realmente bom em 3 coisas:

  1. Gerenciamento de tempo
  2. Disciplina
  3. Organização

Gerenciamento de tempo

Comecei a trabalhar às 7h, então comecei a acordar às 4h30 na maioria dos dias. Comecei 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 estudei no intervalo do almoço e depois do trabalho, mas aceitei o fato de que não era tão produtivo durante a semana por causa do trabalho. Portanto, durante a semana, fiz principalmente pequenos desafios, leitura e assim por diante. E trabalhei em projetos nos finais de semana, feriados e tempo livre.

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

Aos domingos, eu preparava a maior parte das refeições da semana para não perder tempo cozinhando e não precisava acabar comendo coisas prejudiciais à saúde. Também planejei e juntei tudo o que precisava para o trabalho da semana, então não precisei gastar tempo extra além do horário normal de trabalho.

Felizmente, depois de junho, minhas horas de trabalho foram reduzidas de 10-12 para 8, então agora eu estava trabalhando em um horário normal e comecei a acelerar o ritmo.

Disciplina

Você terá que estudar mesmo nos dias em que não estiver com vontade. É aqui que a motivação também desempenha um grande papel, mas a disciplina é importante - especialmente se você for como eu e se distrair muito com mídias sociais e vídeos de gatos.

A melhor dica que posso dar a você para lutar contra a tentação de ler artigos online é 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 empolga e me suga por 30 minutos), escreva em algum lugar e prometa a si mesmo que poderá ler tudo a respeito depois de terminar o que está fazendo.

99% das vezes você não vai se importar mais, porque essas perguntas simplesmente surgem em seu cérebro porque ele quer se distrair. Empurre e você vai vencê-lo.

Outro aspecto da disciplina é ter que escolher o estudo em vez de outras coisas. Essa é a parte não tão divertida. Tive de desistir de muitas, muitas coisas de que gostava para favorecer o estudo e mal posso esperar para voltar a estudá-las. Fiz isso só porque queria me tornar um desenvolvedor o mais rápido possível (veja a Motivação abaixo), mas mesmo que você não esteja com pressa como eu, você pode descobrir que passa muito tempo fazendo coisas que, até embora sejam agradáveis ​​e agradáveis, ocupam muito do seu tempo.

Você terá que priorizar e fazer 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 e cheguei a um ponto em que estava ficando frustrado 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 empurrou. Parecia um fogo sob meus pés, senti que não tinha escolha. Você precisa de uma forte motivação para fazer mudanças radicais. Eu não sei sobre você, mas eu sou um tipo de pessoa do tipo “não conserte o que não está quebrado”, então é realmente difícil me fazer fazer as coisas só por fazê-las.

Meus hobbies são todos muito práticos e produtivos: jardinagem, ioga, culinária. Preciso ter um motivo para fazê-los (quero vegetais de graça, minhas costas doem, estou com fome). Se você for como eu, precisará encontrar uma cenoura para continuar.

Passe algum tempo pensando nisso, o que exatamente você deseja realizar ao terminar o freeCodeCamp? O que você deseja mudar ou obter em sua vida pessoal por meio disso?

O currículo + recursos suplementares

A seguir estão alguns dos recursos suplementares que usei em minha jornada freeCodeCamp. Tenha em mente que esta lista não é exaustiva porque eu pesquisei muito no Google e alguns desses cursos não são gratuitos.

Web Design Responsivo: Essa era a parte com a qual eu já tinha alguma experiência, então foi fácil e divertido. Usei alguns recursos suplementares, especialmente para Flexbox. Meu lugar favorito para isso é a Internet é difícil.

Algoritmos JavaScript e estruturas de dados: Assim que cheguei aos módulos JavaScript, fiquei viciado. Foi tudo super divertido, aprendi muito e fiquei com muita vontade de colocar em prática.

Para esta seção, usei livros, principalmente. Já tinha exercícios suficientes com o freeCodeCamp, mas precisava de mais na forma de explicações. Beginning JS também tem muitos exercícios.

  • Iniciando JavaScript 5ª edição
  • Você não conhece JS
  • Fundamentos de programação com JavaScript, HTML e CSS
  • Documentação JavaScript

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

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

Frameworks de JavaScript: Esta seção também foi ótima, pois me deu uma base em React e Redux. Eu já estava seguindo um curso React no Udemy, React 16.6 - O Guia Completo (incl. React Router & Redux).

Recomendo vivamente este curso e outros do mesmo autor. Ele é incrivelmente minucioso e suas explicações são fantásticas. Este foi um dos poucos cursos da Udemy em que realmente acompanhei o projeto que ele faz: normalmente assisto aos vídeos e aplico os princípios em tudo o que estou trabalhando.

Em 1millionwomentotech tivemos uma semana do React que era principalmente do React nativo e então comecei a brincar com ele. Naquela época, eu também comecei a trabalhar em meu projeto paralelo com meu marido, que decidimos ser um PWA com React.

Eu não posso enfatizar o quão importante é construir algo próprio a partir do zero. Aprendi muito mais em algumas semanas construindo nosso aplicativo do que em qualquer curso ou tutorial.

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

Alguns dos recursos que usei:

  • O curso completo de desenvolvedor Node.js (2ª edição)
  • Node Girls - Introdução ao desenvolvimento de back-end com Express
  • Node Docs
  • Express Docs
  • NodeSchool
  • Introdução ao Node.js
  • Design de API REST e GraphQL em Node.js, v2 (usando Express e MongoDB)

Durante esse tempo, também fui voluntário para “1MWTT” e fui solicitado a construir um aplicativo Probot para voluntários de integração com o Node. Isso também me deu um pouco de prática com o Node, o que foi muito divertido.

Controle de qualidade e segurança da informação: este módulo também abriu os olhos. Até então, eu nunca havia escrito um único teste na minha vida. Agora eu adoro escrever testes e até me interessei muito por Desenvolvimento Orientado a Testes.

Usei principalmente os documentos para esta seção, mas decidi testar meu front-end também e achei esse curso incrível na Udemy que não posso recomendar o suficiente. O instrutor é de longe o melhor instrutor que já vi na Udemy. Eu não posso esperar para consumir quaisquer outros cursos que ela lançar no futuro.

- Chai docs

- Teste de Reação com Jest e Enzyme

Visualização de dados com D3: este foi o certificado mais difícil, sem dúvida. As explicações foram boas, mas quando você chega nos projetos, descobre que os desafios cobrem apenas o primeiro projeto, e você fica por conta própria para o resto. E não há muitos recursos bons online. Eu leio principalmente os documentos e tutoriais usados. Aqui estão os recursos que finalmente conseguiram obter esta certificação:

- Tutoriais D3.js por d3Vienno

- documentação D3

Dicas para terminar o currículo

Resumindo, estas 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 parado por muito tempo: faça perguntas, Google, programe em pares.
  • Estabeleça metas realistas para cada dia e semana. Não se culpe se uma semana for mais lento: a vida acontece. Não deixe que isso o tire do curso.
  • Lembre-se da sua motivação: ela é o que o ajudará 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. E durma o suficiente!

Depois do freeCodeCamp, me senti um pouco perdido. Este foi o roteiro que me guiou em minha jornada de professor a desenvolvedor.

Após 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.

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

Resumindo, eu não poderia ter aprendido tudo o que aprendi tão rapidamente se não fosse pelo freeCodeCamp e sou extremamente grato 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.