4 dicas para melhorar sua jornada como programador!
Começar a programar hoje em dia é algo fácil. Em menos de 10 minutos e com apenas alguns cliques voce consegue baixar uma ide, um Node.Js ou um Python e ter um ambiente prontinho para começar. Com uma rápida busca no youtube voce também encontra tutoriais muito bem estruturados te ensinando a fazer websites do zero em praticamente qualquer linguagem que você tenha interesse. Mas ao mesmo tempo que programar é fácil, também pode ser extremamente difícil e confuso, neste artigo irei compartilhar algumas dicas e técnicas que adotei ao longo do tempo para me tornar um melhor programador. Alguma delas são coisas que utilizei ao longo do tempo e acredito que tiveram/tem grande impacto em minha jornada, outras são apenas coisas que aprendi na prática, mas que gostaria que tivessem me dito quando comecei. Então sem mais delongas, vamos lá.
1 - Se divirta enquanto aprende
Escrever algoritmos, aprender sintaxe e compreender conceitos como arrays, concatenações e condicionais são tarefas que podem ser muito frustrantes ao primeiro contato. E assim como outros assuntos da área de exatas, requerem que você queime alguns neurônios para poder compreendê-los de maneira satisfatória. Mas tirando algumas poucas exceções, ninguém gosta de queimar neurônios. Especialmente quando você está queimando neurônios para inserir uma lista de frutas imaginarias em uma lista virtual que não faz nenhum sentido para você. Ou quando está comparando se 1 é maior do que 2 para printar "1 é maior do que 2" em uma tela preta. Ao fazer coisas desse tipo, você desempenha uma tarefa "chata" para ter um resultado "chato" e totalmente desconexo, e por mais que muitas vezes isso seja uma falha por parte de quem ensina, não significa que você não possa fazer nada para melhorar isso.
Ao invés de seguir os exemplos do seu professor/tutorial a risca, brinque um pouco com as coisas, não faça uma array com frutas, faça uma array com os filmes que você mais gosta e chame ela de melhoresFilmesDeTodosOsTempos, não cheque se 1 é maior do que 2 para printar o óbvio no cmd, transforme 1 no numero de vezes que o usuario tomou um fora e compare com 5 para dar o status da vida amorosa dele, faça um programa que xingue qualquer um que coloque um nome que nao seja igual ao seu, enfim, faça algo divertido, algo que faça sentido e algo que você se interesse. Isso pode parecer besteira, mas além de tornar o processo mais divertido para você, lhe ajuda a lembrar das coisas mais facilmente. Existem livros inteiros que falam exatamente sobre isso. Nosso cérebro se lembra mais facilmente de coisas ridiculas e exageradas do que de coisas "normais" do dia a dia.
Você não vai poder aplicar isso em todos os conteúdos que estuda sobre programação, alguns deles realmente vão te fazer queimar ums neurônios e se perguntar se é realmente isso que você quer pro resto da sua vida, mas deixe para fazer isso quando realmente for necessário, até lá se divirta o máximo que puder enquanto aprende.
2 - Se foque em apenas uma tecnologia
Eu sei, eu sei. O mercado, principalmente o brasileiro geralmente procura profissionais que saibam "um pouco de tudo" e eu não vou entrar em detalhes a respeito disso, pois o ponto aqui não é discutir se o mercado está certo ou não (spoilers: ele sempre está). O ponto é que, se você ficar trocando de linguagem/framework/plataforma sempre que a outra opção parecer mais atraente, vai ser mais difícil se sentir confortável trabalhando com alguma ferramenta. A verdade é que cada ferramenta tem seus pontos fortes e fracos e é seu dever de casa se informar sobre eles antes de decidir se dedicar a ela, isso inclui o mercado disponivel. Isso não significa que você não possa aprender outras linguagens, que você não possa mudar o seu foco com o tempo, ou até mesmo que voce nao possa se tornar um bom profissional aprendendo várias, pois você pode. Não tem nada de errado em tirar um fim de semana para testar um Vue.Js ou seguir um tutorial interessante de python que apareceu pra você no youtube, mas mudar totalmente o foco da linguagem que você está aprendendo é algo que pode te "atrasar" muito mais do que ajudar em sua entrada no mercado de trabalho e não é algo que eu recomendo fazer constantemente. Principalmente se você está iniciando.
3 - Não se frustre com a ignorancia
Me lembro do quão perdido e sem rumo eu me senti quando li sobre "Programação Orientada a Objetos" pela primeira vez. "Como assim eu tenho que abstrair uma cadeira?", "Uma classe de pessoa?", "O sofá herda de uma classe objeto?" pra mim foi como se todo o mundinho lógico e divertido que eu conhecia de repente tivesse desmoronado em um monte de conceitos que pareciam algo de outro mundo e que não faziam sentido algum pro meu ingênuo cérebro procedural.
E eu tentei aprender: Peguei alguns livros na biblioteca da minha faculdade, li alguns artigos online, mas parecia que a cada 4 palavras que eu lia desses artigos e livros eu entendia apenas 2 ou 3. A verdade é que eu simplesmente não tinha experiencia o suficiente para entender o que a Programação Orientada a Objetos resolvia ou porque utilizá-la, mas isso não me impediu de ficar frustrado e me sentir um "programador ruim".
Algum tempo depois eu quase fiquei louco fazendo um projeto de agendamento de consultas em Windows Forms, re escrevendo o mesmo codigo em 30 lugares diferentes e procurando uma variável global em toda a aplicação pra saber porque o agendamento estava saindo para 3 anos atrás. E foi então que a POO finalmente fez sentido. De repente ficava mais fácil entender porque fazia sentido o médico e o cliente herdarem de uma classe pessoa, ou o que a frase "abstrair uma consulta" significava.
Mas apesar desta maravilhosa e aterrorizante experiencia ter praticamente gritado na minha cara "É NORMAL NÃO ENTENDER AINDA MEU FILHO" eu continuei me sentindo frustrado nos anos seguintes quando me deparei com MVC, SPA's, Bancos Não-Relacionais etc.
Eventualmente eu aprendi que nem tudo que você vê por aí merece a tua atenção, e que as vezes tentar compreender algo pode te fazer mais mal do que bem. Aprender um conteúdo novo sempre vai te fazer algum bem, mas aprender Docker enquanto você está estudando HTML é algo que vai ser doloroso, sem aplicação e sem sentido para você neste momento. Eventualmente você vai se perguntar se não tem uma maneira mais fácil de fazer um deploy quando tiver que repetir os 300 passos do seu deploy porque errou o valor de uma envvar em algum lugar, mas até lá, se foque em saber centralizar alguma coisa na sua página sem precisar pesquisar no google.
4 - Aprenda a programar sozinho
Nós estamos em uma era onde a informação é abundante. É muito dificil que algo que voce tenha duvida ainda não tenha sido respondido num StackOverFlow da vida e é muito fácil pegar a solução de lá. Na verdade, é tão fácil, que as vezes pode ser que você nem tente fazer antes de pesquisar a solução, afinal, porque reinventar a roda não é mesmo?
Essa mentalidade não está de toda errada. E em alguns casos ela é completamente aceitável, no entanto, o uso dela pode acabar te levando a ficar acomodado com soluções prontas e te limitando a ser apenas um "minerador" do stackoverflow/udemy/youtube ao invés de um programador que cria soluções.
Digo isto porque até um tempo atrás eu estava nessa exata posição. Condenava frameworks/linguagens inteiras porque não achava tutoriais ou respostas no stackoverflow que me ensinassem como fazer alguma coisa que eu precisava. Qualquer funcionalidade que eu precisasse no node eu já pesquisava logo por um pacote no NPM ou um tutorial no Youtube. Até que um belo dia eu tomei um tapa na cara com a força de 300 cavalos vendo um video do Fábio Akita e decidi tomar vergonha na cara e fazer jus ao tempo que fiquei estudando Algoritmos. E foi nessa época que publiquei meu primeiro pacote no NPM, o Marcellus, assim como uma imagem no Dockerhub para fazer uma integração customizada entre o Kubernetes e o Gitlab que eu precisava.
Você consegue programar praticamente qualquer coisa na linguagem que você utiliza, é só uma questão de identificar os algoritmos necessários e entender/estudar as dependencias externas daquilo (isso inclui a documentação do seu framework). Eventualmente voce pode pesquisar num stackoverflow alguma maneira de otimizar o que voce quis fazer, ou até mesmo procurar uma soluçao quando se sentir num "beco sem saida" ou sem tempo.
Este ponto é um ponto delicado, pois como eu disse anteriormente as vezes realmente não tem porque reinventar a roda. É muito improvavel que a API que você queira fazer no Node não seja melhor implementada num Express ou Meteor da vida. Então é importante saber diferenciar independencia de arrogancia também, mas isso é algo que eu posso tratar em outro artigo.
E com isso eu concluo minha pequena lista. Apesar das coisas descritas aqui terem me ajudado bastante ate agora, não gostaria que você as visse como regras, ou que pense que voce está "errado" por não seguir algo que eu digo pois cada um tem sua propria jornada em sua ascenção como programador e tem coisas que você realmente so vai aprender na prática. Eventualmente alguns pontos na sua jornada podem bater com a minha, e outros não. E caso não batam, te encorajo a fazer o mesmo que eu e compartilhar a sua experiencia como programador pois podem ser que existam outras pessoas passando pelo mesmo sufoco que você por aí e a disposição em ajudar um ao outro é uma das coisas que eu mais gosto e admiro em nossa área.
CEO & Fundador na Elevatte | HR Executive | Pessoas | Produto | Tecnologia | Growth 🔵 Te ajudo a sair da invisibilidade dos processos seletivos. 🚀 Former: Ambev, Americanas.com and Gupy
4 aGrande passo! Parabéns
Founder & CTO @ elevatte.me
4 aExcelente artigo Thiago, são coisas óbvias que ninguém nunca me disse e fazem muito sentido.
Product Owner na Reclame AQUI | Digital Products
4 aParabéns, Thiago! Eu sou uma pessoa que quero aprender tudo de uma vez só e se não consigo me frustro rápido. Seu artigo ajuda a abrir a mente e entender que não precisamos saber de tudo para começar em algo!