[Carreira] Engenharia de software e sua infinita trilha de aprendizado

Bem, você escolheu uma profissão em que nunca ficará "confortável" em uma trilha de conhecimento, pois por mais que você já esteja manjando de determinado nicho, até porque no dia a dia somos levados sempre para ferramentas específicas e nos especializados nelas. Mas e aí, o que acontece com ferramentas? Bem, elas envelhecem, mudam ou são ultrapassadas por novas ferramentas (serviços também). Então bora sentar e estudar o mais novo hype do momento (brincadeira).

Diante disso, como estudar, como memorizar tudo que aprendeu ou como estudar de forma efetiva enquanto dorme (poderes especiais), existem várias respostas espalhadas por aí para essas perguntas e no final do dia tem pessoa que se dá melhor lendo, outras assistindo vídeos e outras só tacando a mão e se virando quando os problemas surgem (hardcore mode). Mas a real pergunta que devemos fazer é, com tantas coisas para estudar, o que eu devo priorizar?

Um erro muito comum que vejo na galera é querer abraçar o mundo, quer aprender IA porque é maneiro, quer aprender framework X porque o mercado ta aquecendo pro lado dele ou querer até aprender outra linguagem (eu sei que é contraditório que eu mesmo falei que aprender outras linguagens é legal, mas tem que ter ciência que uma nova linguagem é um novo mundo de possibilidades). Resumindo, passos bem grandes, né (muito conteúdo de uma só vez).

Beleza, então nesse cenário temos três possíveis caminhos (todos dentro do seu nicho, claro que se você quiser se aprofundar em algo 100% vai na fé, só cuidado com o “overwhelming”) que são: focar em algo que você precisa, focar em algo que você vai precisar e o claro plantar para colher depois (um diferencial).


Focar no que você precisa

Isso não necessariamente é como implementar as coisas, a grande diferença de um engenheiro de software para um desenvolvedor é justamente a capacidade de elevar discussões para um nível técnico em prol de achar a melhor solução para determinado problema. Entender o que serviços/ferramentas oferecem (diferencial) e como solucionar problemas utilizando-os, conhecer os prós e contras das coisas sempre vem antes de aprender implementações e apis. Foque na demanda, entendendo ela.

Focar no que você vai precisar

Se existe um princípio que raramente eu sigo é o YAGNI (tem uma listinha monstra de princípios de programação bem aqui). Sempre que estou desenvolvendo, eu fico analisando como será o futuro daquele sistema e que possíveis caminhos eu poderei seguir e se já puder deixar uns métodos auxiliares no código eu já deixo. Por exemplo, você vê o monolitão que está trabalhando, a cada dia que passa, ficar maior e mais pesado, nessas situações geralmente (depende muito da aplicação) a galera começa a pensar em quebrar em serviços menores (microsserviços), então que tal se adiantar para tais mudanças e estudar arquiteturas de microsserviços, padrões e todo universo disso. Também há outros casos, como um novo projeto, novo emprego, etc. Já deu para pegar o sentido da coisa.

Plantando nosso futuro

Bem, isso é uma coisa que sempre é bom acontecer em paralelo com um das outras duas pegadas, mas na correria da vida eu sei que é bem tenso. Porém, é aqui que você deve focar no que enriquece seu conhecimento ou até, abre novos caminhos para novas oportunidades (seja outro trampo ou até uma promoçãozinha), também entram projetos pessoais e até quem sabe uma outra realização.


A moral, depois de tudo isso, é persistência. Esse sempre foi o segredo para um bom aprendizado, ter consistência nas coisas é o que lhe permite melhor absorção. Focar seus estudos para usos reais, te permite tirar proveito da famosa Pirâmide de Aprendizagem quando discutimos prós e contras com outros profissionais.

E tá aí um dos motivos pelo Blog ter sido criado. Bons estudos!