Introdução

Um assunto que é bastante discutido, e até um tanto polêmico, dentro da carreira do desenvolvedor, é sobre a sua senioridade. Basicamente sobre júnior, pleno ou sênior.

Existem diversos critérios que determinam experiências e habilidades profissionais, podendo cada empresa possuir sua própria definição. Isso acaba gerando confusão e um certo sofrimento em responder "afinal, sou júnior, pleno ou sênior?".

Como defino minha senioridade

A senioridade tem relação com diversos itens. O primeiro, é o conhecimento na área de atuação, assim, quem possui uma experiência de alguns meses em PHP, não possui mais conhecimentos de uma pessoa que possui anos de experiência na mesma linguagem, portanto sua senioridade deve ser menor.

Outro item de suma importância é a maturidade. Ela diz respeito à forma que você enxerga os problemas do seu dia a dia e consequentemente, por quanto mais problemas você passou maior seu grau de maturidade. Se você é um desenvolvedor que não sabe lidar com problemas, não consegue encontrar a melhor forma de solucioná-los, provavelmente você não será sênior e, quem sabe, também não será pleno.

As características que considero principais são:

  • Júnior: Não passou por muitos problemas tão críticos, possui uma certa dificuldade em lidar com as situações de desenvolvimento e entrega que ocorrem no dia a dia. Também, não tem uma maturidade em relação à resolução de problemas justamente por não ter experiência suficiente. Bastante emocional, não tendo paciência ou não mantendo a calma em circunstâncias de pressão. Não entende suficientemente as tecnologias que está proposto a trabalhar e estudar. Todos estes pontos são normais para o início de carreira.

  • Pleno: Já possui um bom domínio das tecnologias, entendendo como funcionam, resolvendo qualquer problema que venha a ocorrer. Geralmente não possui foco, estudando diversas tecnologias, não sabe exatamente qual tecnologia estudar para garantir uma carreira mais sólida. Também, não passou por problemas críticos, como por exemplo, o caso ocorrido no Gitlab recentemente ([https://br-linux.org/2017/01/gitlab-sai-do-ar-admin-da-rm-rvf-e-deleta-o-banco-de-dados.html]) em que um desenvolvedor excluiu o banco de dados de produção. Geralmente não tem segurança para assumir o controle de uma aplicação grande (por exemplo, com 2 milhões de usuários por mês) sozinho, necessitando um apoio.

  • Sênior: Primeiramente já entendeu as tecnologias que precisa estudar e manter o foco, compreendendo quais tecnologias farão diferença na carreira e estudando apenas o que irá agregar na sua carreira. Outra característica muito importante é a maturidade e calma para resolução de problemas, como por exemplo, ao excluir um banco de dados em produção buscar pelo último backup. Também, tem facilidades para encontrar soluções, ou sabe como buscar a solução para um problema e tem em mente o que precisa estudar para entender como resolver o problema.

Com as características acima já é possível determinar a sua senioridade. Claro que, dependendo da empresa ou área de atuação, essas características podem variar.

O que é melhor para minha carreira

O mais importante, quando se tratar de senioridade, é pensar em área de atuação e não em tecnologia. Por exemplo, é muito mais importante que você saiba backend do que PHP, ou, os conceitos de orientação a objetos. Mas o que isso muda para a minha carreira e nos meus estudos?

Isso significa que ao invés de você estudar PHP, como criar classes e métodos ou definir constantes, deverá estudar os conceitos de classes e métodos, orientação a objetos, design patterns etc. Basicamente você deverá saber o motivo das coisas estarem sendo criadas daquela forma, dentro da sua área de atuação, não simplesmente guardando os passos para sua criação e a sintaxe do código para criar aquilo.

Na resolução de problemas, é sempre importante procurar entender qual a causa e por qual motivo a solução aplicada funcionou e foi a melhor. Guardar uma espécie de bloco de anotações com estes problemas e soluções também é uma prática comum.

Como evoluir na minha carreira de desenvolvedor

Cito a seguir algumas dicas de como evoluir na sua carreira e passar para o próximo nível de senioridade mais rapidamente. Claro, cada um em seu tempo.

A primeira dica é não fugir de problemas, assuma a responsabilidade, mantenha a calma e não passe o problema para outra pessoa, mesmo que essa outra pessoa tenha causado o problema. Importante analisar o grau de consequência e urgência do problema e resolvê-lo com calma. Isso dará cada vez mais maturidade em problemas futuros.

Outra dica é nenhum problema é tão grande que não possa piorar no futuro. Os problemas que você está passando agora são relativamente pequenos, comparados com os que poderá sofrer ao trabalhar como sênior ou com aplicações grandes. Aproveite estes problemas para aprender muito.

Terceira dica é manter o foco, não tentar aprender cada framework novo que aparece. Entenda aquilo que irá agregar na sua carreira e siga uma linha de raciocínio. Tenha calma, escolha cada uma das tecnologias que irá estudar e aprofunde seus conhecimentos nelas.

A última e talvez mais importante é jogue o seu chapéu para o outro lado. Imagine que tenha um muro na sua frente e este é o obstáculo que há entre a sua posição atual e o próximo nível. Você não sabe o que há do outro lado, pode ser dois cachorros raivosos, um buraco enorme ou espinhos. Independente dos problemas que tenham do outro lado do muro, você é obrigado a buscar o seu chapéu. Assim, de um jeito ou de outro, você será obrigado a passar os obstáculos para pegar o chapéu e chegar ao nível desejado. Isso significa que, se você se sente preparado e confortável em subir um nível, deverá buscar isso. Procure uma promoção no seu trabalho atual ou uma vaga no nível que você deseja, assim, você estará do outro lado do muro e com esforço e foco você se estabilizará, já pensando em um próximo nível.