Categorias

Como construir um plano para aprender a codificar com sucesso: um guia passo a passo

Toda jornada começa pelo primeiro passo e aprender a programar não seria diferente. Se você nunca enveredou por esse caminho e deseja recuperar o tempo perdido, seja bem-vindo. Se você já conhece uma linguagem e quer aprender outra diferente, também já passamos por isso. Pode parecer complexo ou exaustivo dominar uma nova técnica, mas pode contar conosco.

O aprendizado pode ser mais suave se nos planejarmos para isso, se houver método. Os melhores autodidatas conhecem os obstáculos e sabem como contorná-los. Então, o sucesso de sua jornada se inicia, na verdade, antes mesmo do primeiro passo. É a hora de montar seu próprio guia para o que virá a seguir.

Peter Lynch é um desenvolvedor australiano full stack com múltiplos interesses: produtividade, programação, empreendedorismo, marketing, desenvolvimento web, autodidatismo, finanças e aperfeiçoamento pessoal. Ele é o autor de “Como planejar e construir um projeto de programação“, já republicado por nós. Em um novo artigo publicado na internet, ele revela seu método pessoal de aprendizado de programação, desde os primeiros passos.

Com sua autorização, traduzimos e reproduzimos o artigo na íntegra:

“O pior professor que tive na universidade uma vez deu um ótimo conselho ‘ao falhar em se preparar, você está se preparando para falhar’. Entretanto, eu acho que ele roubou esse conselho de Benjamin Franklin, então eu ainda vou dizer que eles são os piores. Mas, o conselho foi sólido e será a mensagem central para este post.

Para me preparar e (espero) preparar outros para o sucesso, vou mostrar a você como construir um plano para aprender a codificar. Vou te mostrar o que estou fazendo para me manter motivado, quais recursos estou usando, as barreiras que sei que preciso superar e a estrutura do meu plano.

Antes de detalhar meu plano para aprender a codificar, acho que isso ajudará você a entender minha jornada. Então você pode ver que qualquer um pode começar sua jornada, não importa seu passado. Por quê? Porque meu passado é diverso e não vou deixar que isso me impeça de ser quem eu quero ser. Então você também não deveria.

Minha história

Dez anos atrás: sentado em uma sala de aula aprendendo sobre escrita criativa, ouvindo o mesmo professor.

Oito anos atrás: sentado em um escritório monótono, digitando dados em planilhas para uma empresa da Fortune 500.

Seis anos atrás: primeira mudança de carreira. Voltei para a Universidade para fazer meu mestrado em Marketing.

Quatro anos atrás: passando 12 horas por dia no trabalho de consultoria para grandes empresas e clientes. Eu realmente gostei disso, mas eu estava me consumindo.

Dois anos atrás: comecei em outra empresa da Fortune 500 comercializando algumas das maiores marcas do mundo. Menos Excel mais Powerpoint. Comecei a mexer em Python.

Um mês atrás: decidi que era hora de levar a sério o aprendizado de programação.

Como você pode ver, eu tive uma carreira menos que linear. Eu estive em 3 setores diferentes. Fui para a universidade duas vezes (para graus muito diferentes). E ainda não tenho 100% de certeza do que quero. Mas o que eu sei é que quero abordar o aprendizado de código com seriedade.

Eu decidi, por enquanto, seguir o caminho da autoaprendizagem, pois só exige que eu invista tempo, não dinheiro e me permite testar se eu gosto de codificar. Eu fiz algumas pesquisas sobre Bootcamps, e vale a pena investigar se você sabe que quer fazer disso sua carreira. Eu ainda posso seguir este caminho.

Com tudo isso em mente, vamos começar a analisar como criar um plano para ajudá-lo a aprender a codificar com sucesso.

Passo 1: Comece com o porquê

Eu falei sobre por que estou aprendendo a codificar e as razões pelas quais você deveria também. Se você está em dúvida sobre o aprendizado, sugiro que leia. Além disso, veja o blog freecodecamps que tem toneladas de histórias sobre por que as pessoas aprenderam a codificar.

A primeira vez que tentei aprender a codificar, não tinha um motivo sólido. Aprendi da maneira mais difícil que não ter um porquê pode atrapalhar seu progresso. Seu motivo pode ser conseguir um emprego de desenvolvedor, fazer jogos ou automatizar tarefas no trabalho, mas certifique-se de começar o porquê e depois criar um plano. Como aprender a codificar levará tempo, você passará por períodos de baixa motivação e, se não tiver um motivo sólido, parará.

Não há respostas corretas para por que você quer aprender a codificar. Todos são diferentes. Portanto, identifique sua própria razão específica que o motivará a continuar. Uma razão que o força a se perguntar se as ações que você está realizando estão empurrando você em direção ao seu objetivo.

Minha razão é por que eu quero construir produtos. Eu quero ser capaz de construir produtos de forma rápida e barata que eu possa testar, falhar e aprender enquanto trabalho para criar uma renda passiva. Então me fiz as seguintes perguntas:

  • Que tecnologia preciso aprender para construir esses produtos?
  • Essas habilidades têm longevidade (elas me permitirão acompanhar as últimas tendências)?
  • Quero fazer parte desta comunidade daqui para frente?

Depois de responder a essas perguntas, posso começar a planejar meu caminho de aprendizado, para que eu possa passar de tutoriais e cursos manuais para a criação de meus próprios produtos.

Portanto, certifique-se de ter uma boa razão pela qual deseja aprender a codificar.

Passo 2: Identifique seus potenciais bloqueios para o aprendizado

Se há uma coisa que aprendi em minha primeira tentativa de aprender a codificar, é que posso ser meu maior bloqueador.

Eu nunca me senti como “eu poderia fazer codificação”. Achei que essa parte do mundo estava reservada para pessoas especiais com cérebros diferentes do meu. Se você estiver em um lugar semelhante, espero que este artigo o ajude a superar essa barreira e iniciar sua própria jornada de codificação.

A literatura popular nos diz que existem dois tipos de mentalidade, fixa e de crescimento. Quando você acredita que pode ficar mais inteligente e entende que dedicar mais tempo e esforço pode levar a uma maior realização, você tem uma mentalidade de crescimento. Enquanto mentalidade fixa é o oposto.

Anteriormente, eu tinha uma mentalidade fixa quando se tratava de codificação. Eu tinha construído uma narrativa na minha cabeça. Eu estava dando desculpas sobre como não sou inteligente o suficiente ou que já havia me comprometido com uma mudança de carreira, uma segunda mudança me colocaria de volta na rodinha dos ratos. Agora, embora alguns desses pensamentos possam ter sido verdadeiros, a maioria das suposições que eu estava fazendo não era baseada em fatos.

O que percebi sobre ser meu maior bloqueador foi que estava me preocupando com todas as coisas erradas. Coisas como este post intimidante sobre como se tornar um desenvolvedor web. Ou questionando se minhas ideias eram boas. Quando o que eu deveria estar fazendo é começar e descobrir por mim mesmo.

Eu precisava bloquear meus bloqueadores. Às vezes isso significava que eu não tinha que ouvir meus pais que queriam que eu seguisse o caminho seguro. Eu tive que vetar minhas suposições e também tive que perceber que outros estavam fazendo isso sem experiência.

Em última análise, o que mudou minha mentalidade foi o livro ‘A mind for Numbers’ (disponível em Português como ‘Aprendendo a Aprender: Como Ter Sucesso em Matemática, Ciências e Qualquer Outra Matéria‘). A autora deste livro, Dra. Oakley, passou de uma mentalidade fixa de que não podia fazer matemática para uma mentalidade de crescimento de que, se ela resolvesse os problemas e levasse seu tempo, poderia fazer matemática. Agora ela tem um PhD em Matemática. Oakley usou diferentes técnicas e táticas sobre as quais escreverei mais tarde, que a ajudaram a superar sua mentalidade fixa e me ajudarão também. A principal conclusão é que, com a mentalidade certa, você pode alcançar o que quiser.

Para mim, a lição aprendida foi que não existe uma maneira perfeita de aprender. Não há codificadores prototípicos. A maioria das coisas que eu estava dizendo a mim mesmo eram mitos. O que você precisa são apenas duas coisas: começar e ter um plano. Com isso em mente, vou detalhar como estou começando e os passos que estou tomando para alcançar meu objetivo de lançar um produto.

Passo 3: O Plano

Meu objetivo de aprender a codificar é construir coisas. Especificamente, quero construir uma extensão do Chrome, um jogo de simulação baseado na web e uma calculadora de pista para pessoas explorando a codificação de Bootcamps. Esses são meus grandes objetivos. Acredito que é importante ter grandes objetivos para que você possa acompanhar como está progredindo em direção a eles.

Ao conhecer meus objetivos, sei que antes de lançar esses produtos, preciso construir os produtos. Antes que eu possa construí-los eu preciso aprender a construí-los.

Quebrando seu objetivo em blocos

Conheço meu objetivo final, o que preciso fazer é dividir esse objetivo em pedaços menores. Então eu tenho mini-objetivos que eu posso trabalhar. Então eu fiz minha pesquisa para saber o que eu precisava aprender para atingir minha meta final. Uma simples pesquisa no google e algumas leituras me ajudaram a descobrir isso.

Minha pesquisa me levou a dividir meus objetivos em pedaços de tecnologia que eu preciso aprender para alcançar meus grandes objetivos.

Portanto, se o seu objetivo para a codificação é fazer um jogo, você deve pesquisar a linguagem que precisa aprender para fazer um jogo e o que mais precisa entender. Então você pode precisar aprender C#, como animar sprites, como adicionar música e como testar seu jogo antes de publicar.

Para meu grande objetivo, essas tecnologias são meus mini-objetivos. Dentro das minhas mini-metas, estabeleci mini-mini metas para construir projetos para reforçar meu aprendizado. Esses pequenos projetos, acabei de tirar do que li sobre as jornadas de codificação de outras pessoas. Por exemplo, eu tive a ideia de fazer animações de inscrição de e-mail na pilha CSS deste post nodev.to.

Os projetos são uma maneira fantástica de aprender. Eles funcionam por alguns motivos.

  1. Eles testam o que você realmente sabe versus o que você acha que sabe.
  2. Eles o forçam a combinar o que você aprendeu e juntar tudo.
  3. Ninguém está segurando sua mão, você tem que pensar por si mesmo.
  4. Eles levam você do aprendizado passivo ao aprendizado ativo.

Então, antes que eu possa fazer meus mini-projetos eu preciso aprender o básico das tecnologias. Então deixe-me dizer-lhe onde eu estarei planejando aprendê-las.

Recursos

Depois de muita exploração e pesquisa (que inicialmente era um bloqueador, não caia nessa armadilha, apenas escolha algo e comece), vou usar o currículo do freecodecamp para HTML e CSS. É perfeito porque tem todas as tecnologias que eu quero aprender. Também é um dos recursos mais recomendados e é gratuito.

Para JavaScript, combinarei o currículo do freecodecamps que tem um forte foco em estruturas de dados e algoritmos (importante para entrevistas de emprego). O outro recurso é o curso de JavaScript para iniciantes de Wes Bos, pois ele é incrível em explicar conceitos para iniciantes e seu curso é muito prático, você cria projetos por toda parte.

Outro recurso que estarei usando é o livro JavaScript 30, de Wes Bos, que são 30 projetos JavaScript em 30 dias e é gratuito. Não vou fazer todos eles e selecionei alguns que me interessam.

Se você não conseguir encontrar um site linear como o freecodecamp, confira na Udemy um curso que pode ensiná-lo a fazer o produto desejado.

Agora eu tenho um plano e ter um plano é ótimo. Mas, em última análise, tudo se resume a um esforço contínuo.

Passo 4: Encontrar tempo para aprender continuamente (500 horas…)

James Clear, autor de Atomic Habits (disponível em Português como ‘Hábitos Atômicos’), acredita que os objetivos são ótimos, mas sem um sistema para alcançá-los, eles provavelmente não serão alcançados. Então, vou orientá-lo sobre como vou construir um sistema para alcançar meus objetivos.

Por ter que aprender, à medida que mudei de carreira, organizações e Python, aprendi que o melhor sistema é geralmente o mais simples. Portanto, o melhor sistema é acompanhar seu progresso ao longo do tempo. Portanto, o sistema que usarei para rastrear se estou aprendendo desenvolvimento todos os dias são horas gastas aprendendo. O motivo pelo qual estou monitorando as horas é que ele me permite medir facilmente a entrada.

Acompanhar a entrada (tempo) em vez das saídas (projetos, conseguir um emprego etc.) também me permite ver quanta entrada leva você a alcançar suas saídas. Em vez de apenas medir minha produção sem entender quanto esforço foi necessário para alcançá-la.

Especificamente, as duas áreas que vou medir serão o total de horas (~500) e dias de codificação. Agora, esse número será diferente de pessoa para pessoa, então encorajo você a definir o seu próprio. Você pode usar minha planilha de acompanhamento aqui, para controlar suas próprias horas. Ao colocar essa meta, você percebe o nível de comprometimento necessário para chegar lá.

O que quero dizer com compromisso é o número de horas que você precisará dedicar para atingir seu objetivo. Por exemplo, digamos que sua meta sejam 500 horas e você esteja planejando codificar 1 hora por dia, então levaria 500 dias para atingir sua meta. Por experiência, sei que a consistência é a chave. Isso é tentar codificar diariamente, é mais eficaz do que grandes blocos de, digamos, 10 horas, 1 dia por semana. Daí porque eu estarei rastreando dias consecutivos também.

Abaixo está uma tabela útil que ajuda você a visualizar e entender como o tempo que você dedica afeta o tempo para alcançar seus objetivos.

Vamos começar com o motivo das 500 horas. Eu decidi por esse número porque o Bootcamp médio dura 12 semanas. Eu assumi 8 horas por dia (7 dias por semana). Isso significa que você estará codificando por 672 horas ao longo de 12 semanas. Como tenho alguma experiência em codificação e não preciso das partes de busca de emprego de um Bootcamp, reduzi o tempo total para uma boa rodada de 500 horas.

Tenho certeza de que muitas pessoas que estão lendo isso podem estar pensando que isso soa incorreto e que você não precisa de tanto tempo. Isso pode ser verdade para alguns. Mas, o que aprendi com a experiência é que a entrada é igual à saída. Não há atalhos ao aprender a codificar. Apesar do que as pesquisas do Google podem lhe dizer. Há uma razão pela qual Obama tinha uma placa em sua mesa dizendo “coisas difíceis são difíceis”. Este processo exigirá um investimento substancial de tempo.

Agora meus números podem não ser precisos, posso chegar ao lançamento do produto em menos ou mais horas. Independentemente disso, é importante observar que definimos KPIs em nossas vidas profissionais o tempo todo. No entanto, não costumamos defini-los em nossas vidas diárias. Fazemos declarações soltas como, vou começar a correr mais ou vou comer mais saudável. Ao definir um KPI e medir quanto tempo estou gastando codificando, terei uma visão objetiva do meu progresso.

Assim, estou adotando a opção de 18 horas por semana, especialmente porque no momento em que escrevo isso estamos em quarentena devido ao coronavírus. Então eu tenho muito tempo dentro de casa nas próximas semanas. Eu estarei fazendo 2 horas por noite de segunda a sexta e 4 horas por dia nos finais de semana. Criei um rastreador de hábitos no qual posso registrar meus horários de início e término e algumas notas sobre como me senti durante esse período.

O que isso significa, em última análise, é que estarei transformando o ‘tempo para mim’ de relaxamento com Netflix em tempo para trabalhar no desenvolvimento de mim mesmo exatamente como soa ‘tempo para mim’.

Passo 5: Construa seu próprio plano

Espero que minha história tenha ajudado a fornecer alguma inspiração para você também aprender a codificar por conta própria. No entanto, eu encorajo você a construir seu próprio plano. Defina seus próprios objetivos e vá atrás do seu porquê. Não caia na armadilha de seguir os outros como eu fiz da primeira vez. Só porque alguém está dizendo a você que blockchain é a próxima grande novidade ou você vê um artigo divulgando a ciência de dados não significa que você precisa seguir esse caminho. Você terá mais sucesso em perseguir seu porquê, do que perseguir dinheiro. Como aprendi, o dinheiro não me motiva a estudar depois de um dia inteiro de trabalho das 9 às 5.

Tenha uma mentalidade de crescimento, saiba que você pode fazer isso. Se você se esforçar. Esqueça o que você sabe agora, concentre-se no que você aprenderá para ser a pessoa que deseja ser no futuro. Divida seu objetivo, para que não seja tão distante ou ambíguo. 500 horas parece muito, mas 18 horas por semana soa melhor. Ser um desenvolvedor da Web é abstrato, mas aprender HTML, CSS e JavaScript é muito mais gerenciável.

Foco no investimento contínuo e no esforço contínuo. Saiba que às vezes será difícil, mas também saiba que você pode passar por isso com muito trabalho. Continue se lembrando do motivo pelo qual você está fazendo isso e comemore os sucessos ao longo do caminho.

Por fim, é só começar. Esta jornada será uma maratona, não cem metros rasos. Estou abordando isso com a mentalidade de que esse esforço me trará oportunidade e felicidade.

Uma lista de verificação para criar seu próprio plano

Para resumir os passos que dei, para ajudá-lo a montar seu próprio plano.

  1. Encontre o seu porquê
  2. Identifique seus bloqueadores – examine-os
  3. Defina seus grandes objetivos
  4. Divida seu aprendizado em partes que funcionem para você chegar nos grandes objetivos
  5. Defina um plano de aprendizado para desbloquear o esforço contínuo
  6. Comece

Pensamentos finais

Pode parecer muito trabalho montar seu plano, mas como meu professor disse “ao falhar em se preparar, você está se preparando para falhar”. Portanto, reserve um tempo e prepare-se seguindo estas etapas para definir um plano para o sucesso. Você estará melhor a longo prazo.

Estou ansioso para compartilhar meus sucessos com você. Se você optar por seguir estas etapas na criação do seu plano e tiver alguma dúvida, converse comigo sobre isso aqui. Eu adoraria ver os planos dos outros para ver como eu poderia melhorar o meu.”

Publicado originalmente como “How to Build a Plan to Successfully Learn to Code: A Step-by-Step Guide” em 3 de maio de 2021. Traduzido e republicado com autorização do autor.