E lá se vão 2 anos como desenvolvedor...
Mês passado completei 2 anos trabalhando (oficialmente) como desenvolvedor e pensei que seria interessante compartilhar alguns pensamentos, aprendizados e desafios para aqueles que estão entrando (ou pensando em entrar) no mundo da programação.
escreva("Olá Mundo")
Antes de começar a falar sobre a experiência no mercado, gostaria de falar (resumidamente) sobre a minha trajetória estudando programação e como foi esse processo. Meu primeiro contato com programação foi (como imagino ser o caso de muitos) com o curso de Lógica de Programação em Portugol do professor Gustavo Guanabara, que me foi apresentado por um colega da escola, que infelizmente perdi o contato. Esteja lá onde você estiver, muito obrigado meu amigo, você mudou a minha vida. Nessa época estava começando em uma escola técnica e fazia o ensino médio ao mesmo tempo que fazia um curso de Redes de Computadores. O curso era bem focado na parte administrativa e estrutural, mas teve uma ou duas disciplinas de programação. Fiquei estudando de forma esporádica durante todo o período do ensino médio de forma autodidata, fazendo alguns cursos online. Me aventurei pelo Wordpress, aprendi o básico de Linux, conseguia fazer uma tela ou outra com HTML e CSS, até Python estudei alguma coisa.
O fato é que quanto mais eu aprendia, mais vontade eu tinha de continuar trabalhando com isso e quando precisei escolher uma faculdade pra entrar, não tive dúvidas em escolher Sistemas de Informação. Consultei toda a grade do curso e era exatamente aquilo que eu queria. Os próximos 2 anos a partir de agora foram bem difíceis para mim, tive que conciliar um trabalho no varejo com a faculdade e ainda tentar estudar alguma coisa mais direcionada, a rotina era bem exaustiva e acabei com uma síndrome de burnout no final de 2019. Naquele momento eu sabia que não conseguiria me manter da forma que estava e acabei saindo do emprego e focando totalmente na faculdade. 2020 foi bem complicado, principalmente devido a pandemia de covid-19, mas também foi quando eu entrei de cabeça de verdade pra estudar programação, fiz várias das Semanas Omnistack e NLWs da Rocketseat e acabei construindo um bom portfólio no GitHub, que utilizei para conseguir meu primeiro estágio como programação.
Ok... Mas e agora?
E então depois de muita dedicação e foco nos estudos e a ansiedade gigantesca do processo seletivo, eu finalmente tinha conseguido entrar no mercado, fui contratado como estagiário. Eu lembro claramente de ter somente uma coisa pairando na minha cabeça do momento em que descobri que tinha passado, até o primeiro dia no trabalho: "Ok... Mas e agora?". Eu tinha passado em uma vaga para trabalhar com uma linguagem que eu até então nunca tinha ouvido falar, para trabalhar em um produto internacional que era diferente de tudo aquilo que eu já tinha feito. Aqui eu já gostaria de apontar alguns aprendizados:
> Não se prenda a siglas, foque nos conceitos.
Afinal, você precisa resolver um problema, não importa se você vai usar HTML, CSS, JS, TS, PHP, TLS, SSH, HTTP, gRPC, API, SQL, NoSQL e por ai vai. Domine o básico, entenda os algoritmos, as estrutura de dados, saiba usar a lógica de programação a seu favor. Ter uma base sólida, fará com que você migre entre tecnologias muito rapidamente e fará com que as siglas sejam somente siglas e não rótulos.
> Interaja. Pergunte. Explique.
Resumindo: comunidade. Esse é o nosso superpoder como desenvolvedor. A comunidade é como um cérebro gigante e universal no qual todos nós fazemos parte, o conhecimento é compartilhado e a sua dúvida provavelmente já foi solucionada em algum momento ou o fato de você perguntar fará com que outras pessoas sejam ajudadas pelas respostas que ela levantará. Portanto, pergunte! Se encontrar uma dúvida que você sabe responder, responda! Explique um conceito, como uma tecnologia funciona, escreva um tutorial, um artigo. Dessa forma você estará ao mesmo tempo, fixando o conhecimento e contribuindo com a comunidade. Sem a comunidade e ajuda dos meus colegas de time, eu certamente não teria avançado muito.
> Feedback é ESSENCIAL
Não adianta, você não vai conseguir evoluir se não colher feedback. Sem feedback você provavelmente não saberá como potencializar seus pontos fortes e não conseguirá mitigar seus pontos fracos (olhe lá se souber quais são eles) e chances são de que você irá investir tempo e esforço na direção incorreta, enraizando más práticas, criando vícios e o pior: sem feedback, você dificilmente irá notar evolução pessoal e sem isso...
"Can you see my screen?"
Outra milestone nesses 2 anos, foi a minha primeira apresentação (em inglês) para o PO e o restante do time de um design que eu estava trabalhando com uma colega. Daquele dia eu consigo tirar alguns aprendizados:
> Inglês é obrigatório.
Você pode contra argumentar essa frase de várias formas, mas o fato é: naquele dia a minha colega não sabia inglês e por isso eu apresentei o design sozinho. Não saber inglês irá se tornar um impeditivo para você apresentar seus projetos, irá reduzir a quantidade de vagas que você poderá concorrer e se limitará a um escopo nacional. Sem mencionar que, praticamente todo o conteúdo disponível na internet sobre programação, está em inglês. Aprendam inglês!
> Seja um bom contador de história
A minha vida mudou quando eu percebi que apresentar alguma coisa, embora seja geralmente o maior medo das pessoas, nada mais é que contar uma história. Vou falar mais de soft skills mais tarde, mas agora o importante é quando você precisar apresentar alguma coisa para alguém e isso for algo difícil para você, planeje antes, esboce, apresente para um colega e colha feedbacks. Sempre que possível tente transformar a sua apresentação em uma história e não só um punhado de dados e imagens. Crie uma narrativa, eleja um personagem, demonstre o problema e como o personagem irá solucioná-lo, utilizando que meios, que ferramentas. Tendo uma história isso montada, você se sentirá bem mais confiante e preparado para apresentar.
O tal do "Negócio"
Essa é difícil, eu sei, principalmente para nós brasileiros, que não temos tanto esse incentivo voltado a negócios ter uma alma empreendedora. Entender do negócio no qual você está trabalhando e não se prender puramente na tecnologia utilizada por ele é algo que você vai querer ter se pretende criar uma carreira na área da tecnologia e, quem sabe, se tornar um CTO da vida.
> Entenda que problema a solução que você está desenvolvendo resolve
Ter esse entendimento vai facilitar com que você alinhe os objetivos do projeto com os seus objetivos pessoais e focar naquilo que mais lhe trará valor. Por exemplo, se você trabalha em um projeto de meios de pagamento, talvez buscar certificações voltadas a segurança de dados seja uma boa escolha para buscar destaque no time.
Código não é tudo!
Trabalhar com programação é, invariavelmente, trabalhar com pessoas. Já conversei com muita gente que pensa que trabalhar com programação é colocar seu fone de ouvido e ficar atrás da dela do VSCODE o dia inteiro, abrir PR e mover tarefa pro done no Jira. Spoiler: Não é. Trabalhar com programação é passar boa parte do seu tempo discutindo com o time, escrevendo, revisando e apresentando designs. O código é a parte final de um processo de muita interação, discussão e apresentação.
> Saiba adaptar seu discurso para diferentes públicos
Isso é algo que você irá aprender com o tempo, mas já estou adiantando que em cada etapa do desenvolvimento de uma feature, você irá passar por diferentes públicos com diferentes níveis técnicos. Não tente usar o "tecniquês" para soar inteligente, isso cria barreiras de comunicação que eventualmente irão lhe causar problemas de mal entendimento. Busque ser claro, crie e mantenha as coisas simples.
> Se mantenha organizado
É fato que dentro do universo do desenvolvimento existe outros milhões de microversos e manter o foco não é uma tarefa fácil. Por isso se manter organizado, criando metas e objetivos é essencial para se manter focado. Não importa que saiu uma nova linguagem revolucionária que vai matar o Javascript. Na sua lista de TODO existe uma meta para terminar aquele curso de Typescript pro final do mês, se mantenha nele.
Enfim...
Eu poderia continuar falando bastante aqui sobre alguns outros pontos que também considero importante como, por exemplo, ter um projeto pessoal que você implemente do sketch à cloud para entender todas etapas do desenvolvimento, mas o artigo já está enorme.
Obrigado para quem chegou até aqui e até mais!
PS: Estou repostando esse artigo que escrevi para o meu Linkedin, o link para o artigo está como "fonte". Da uma passadinha lá e deixa um like ^^