Se tem uma pergunta que eu recebo nas minhas caixinhas do Instagram é essa: como é que eu me torno um especialista no backend como dev Java?
E mais do que isso: como é que eu me torno alguém que seja visto assim? Como faço para o mercado me ver assim?
Se essa dúvida (ou algo parecido) já passou pela sua cabeça, fica aqui comigo que eu elaborei o passo-a-passo abaixo para te ajudar com isso!
Inclusive eu gravei um vídeo sobre este assunto! Se você for alguém mais visual, provavelmente vai gostar:
Sem mais delongas, confira aqui o guia definitivo para você que deseja se tornar um especialista do backend Java.
- Correndo o risco de parecer óbvio: abandone o front-end
- Afinal, foco é isso também: abrir mão de uma ou mais coisas em prol de outras;
- E sim, pode ser que na situação atual (emprego, projeto, etc) seja impossível você de fato abandonar o front-end;
- O que fazer nesse caso? Torne-se alguém tão forte no backend, que o front-end passe a ser irrelevante no seu leque de skills;
- Foi o que eu fiz. Eu já trabalhei muito com front-end. Já trabalhei com mobile. Já fiz projetos inteiros em JavaScript. Mas isso tudo hoje é irrelevante na minha carreira perto do que eu construí como especialista em backend;
- Além de tudo isso, tanto o backend quanto o front-end são áreas de estudo imensas. Então é muito mais provável que você tenha melhores resultados no médio e longo prazo se escolher um deles.
- Mais EE e menos SE
- Para ficarmos todos na mesma página:
- EE vem de Enterprise Edition, ou Jakarta Enterprise Edition, que é o nome do Java Enterprise Edition desde 2019 quando foi finalizada a transferência dele para a Eclipse Foundation. É basicamente o conjunto de especificações para desenvolvimento enterprise;
- SE vem de Standard Edition, ou Java Standard Edition. É o core da plataforma Java, que engloba o compilador, as APIs e todas as ferramentas para desenvolvimento Java de um modo geral.
- Então porque eu digo “mais EE e menos SE”? Quer dizer que não preciso conhecer o core da linguagem?
- Claro que não! Mas quer dizer que a partir de um bom conhecimento do core da linguagem, um especialista em backend Java precisa ir ainda mais além em conhecer um framework top de mercado;
- “Ain.. mas quem fica só no framework não sabe como as coisas funcionam…“;
- Tudo a seu tempo: você prefere entregar a API que o seu cliente pediu utilizando o JAX-RS em todo o seu potencial, ou passar semanas escrevendo uma nova API Rest na mão?
- Os grandes frameworks enterprise são isso: ferramentas construídas por alguns dos maiores devs Java do mundo para facilitar a sua vida. Porque não usá-las?
- Quais eu recomendo? Do ponto de vista enterprise mesmo, temos o Spring e o Jakarta EE.
- Pessoalmente eu prefiro o Jakarta EE por ter um processo forte de padronização e especificação, além de não ter o risco de lock-in por ter uma única empresa mantendo;
- Mas é inegável que o Spring hoje domina o mercado do ponto de vista de projetos e oportunidades de trabalho. Mas lembre-se: o Spring roda em cima do Jakarta EE, então no fim do dia estamos todos no mesmo barco!
- E claro que hoje temos os frameworks e plataformas mais voltadas para microservices. Neste ponto, Spring Boot e Quarkus dominam as atenções atualmente:
- Spring Boot veio muito bem na onda do próprio Spring, então também tem uma penetração muito grande no mercado;
- Por outro lado, o Quarkus entrou de maneira avassaladora no mercado em 2019, e hoje é o único que realmente compete com o Spring Boot;
- Porém existe uma “sacada” no Quarkus: por ser uma plataforma (e não apenas um framework), ele implementa APIs de vários projetos open source. Inclusive do Spring Boot!
- Ou seja: você pode escrever o mesmo código que escreveria no Spring Boot, porém com muito mais performance, baixo consumo de recursos, e um arsenal de ferramentas que nenhum outro oferece no mercado atualmente;
- E a melhor parte: o Quarkus possui uma implementação do MicroProfile. Então quem veio do Jakarta EE tem uma curva de aprendizado quase nula.
- Para ficarmos todos na mesma página:
- Domine o framework que você escolheu
- Bacana, você colheu informações sobre os frameworks de mercado e resolveu que vai focar em um deles: agora é hora de ir a fundo nisso;
- E porque? Além da parte óbvia, que é conhecer bem a sua ferramenta de trabalho, existe uma outra não tão óbvia assim…;
- Esses frameworks costumam ser tão grandes e tão completos, que você corre o risco de estar fazendo na mão algo que ele faria por você (e muito melhor, diga-se de passagem);
- Então invista tempo em conhecer essa ferramenta. Leia blogs, assista vídeos, ou melhor ainda: leia a especificação;
- “Ain… ler especificação é muito chato…“;
- Chato é gastar horas fazendo algo porque deixou de gastar alguns minutos lendo.
- Escolha um cloud provider chamar de seu
- Primeiro: porque um dev backend deveria manjar de cloud? Oras, porque é pra onde estamos indo!
- Estimativas mostram que chegamos apenas a 25% do potencial de aplicações em cloud em todo mundo. Ou seja, ainda temos muuuuuuito crescimento pela frente!
- Então, se você é um dev backend que ainda não está lidando com cloud (seja ela privada ou pública), provavelmente isso vai mudar em breve;
- E quem são os cloud providers que valem ser mencionados?
- Não são muitos: AWS, Azure, Google Cloud, Oracle Cloud e IBM Cloud (não necessariamente nesta ordem);
- E não tirei essa lista da minha cabeça, é só você dar uma olhada lá no Gartner;
- E no estágio de maturidade que chegamos no mundo cloud hoje, uma coisa é fato: as ferramentas oferecidas por todos eles são muito parecidas;
- Muda a interface, muda o modelo de serviço… mas, no fim das contas, tem muito overlapping;
- Então, a minha dica é: escolha um e vá a fundo nele. Tenha fluência no uso dos serviços que você mais usa. Se gosta de certificações, tire! Ajuda bastante;
- Daí, se em algum momento você precisar trabalhar com outro cloud provider, muita coisa você vai resolver fazendo “de-para”. Palavra de quem já usou todos eles!
- Domine containers
- Durante muito tempo, usar Java em containers era um problema: mas esses dias já passaram faz tempo!
- A versão mínima recomendada para usar Java em containers é a 11, lançada em 2018;
- Ou seja, se você ainda não usa Java em containers porque acha que não funciona bem… acorda!
- E porque dominar containers é essencial para um dev backend Java? Por dois motivos:
- Java é e vai continuar sendo uma das linguagens mais relevantes do mercado. Por décadas!
- Containers está se tornando a solução padrão para distribuição de aplicações, especialmente em ambientes orquestrados, elásticos e escaláveis;
- Então, se você é um dev Java e quer ser reconhecido como um super especialista em backend, você precisa dominar a tecnologia de containers.
- Entenda a arquitetura da solução, e não apenas o seu código isolado
- Eu não canso de dizer: o especialista não é um tapado da vida, alguém que só olha pra aquilo que quer e o que precisa;
- Então nunca perca de vista que o seu código, a sua API, o seu microservice, o seu projeto… tudo isso é parte de um todo;
- Entenda como aquilo que você está fazendo precisa se comportar dentro desse todo. Conheça a solução inteira. Questione. Reveja. Vá a fundo;
- A única pergunta ruim é aquela que não é feita. E você nunca vai errar por querer resolver o problema do seu cliente da melhor forma possível.
- Seja o melhor amigos destes dois irmãos: a Implementação e o Compartilhamento
- Aqui o lance é bem direto:
- Se você nunca implementou algo, então você não sabe esse “algo”. Pode ter estudado o quanto for, mas esse conhecimento ainda não “entrou” de fato na sua mente;
- Se você sabe algo, mas nunca compartilhou isso com ninguém, então ninguém sabe que você sabe isso. O que não ajuda muito.
- E porque falo dessas duas coisas juntas, como se fossem dois irmãos? Porque a combinação de ambas é poderosíssima!
- Você estudou algo. Daí foi lá e implementou. Criou código, fez um projeto… sei lá!
- Daí você pegou esse algo que de fato aprendeu e compartilha com alguém: pode ser um colega do trabalho, ou na reunião com o time, ou fez um blog, um vídeo, um post em qualquer rede social;
- Você está, ao mesmo tempo, crescendo como profissional (implementando aquilo que estuda) e criando uma base para ser reconhecido por aquilo que você sabe (através do compartilhamento do seu conhecimento);
- Aqui o lance é bem direto:
E aí, qual desses passos faz mais sentido pra você? Deixe aqui nos comentários!
Um grande abraço e até a próxima.