Júnior, Pleno e Sênior são níveis de um cargo, nesse caso desenvolvedor de software, definido de acordo com alguns critérios. Critérios estes que, em muitos casos, se resume a tempo de atuação no mercado de trabalho. Ser sênior é almejado por muitos desenvolvedores, porém será que o critério de tempo de atuação é suficiente? De fato, qual a diferença entre um desenvolvedor Júnior e um Sênior?
Thiago Melo citou no blog WebInsider como é atribuido o nível de um profissional utilizando a critério tempo:
Profissionais que estejam trabalhando há dois anos no mercado são classificados como Júnior; de dois a quatro anos Pleno, de quatro a seis anos Sênior, de seis a oito anos Master.
É importante lembrar que muitos profissionais estão há anos no mercado mas não evoluíram o suficiente para mudar para um cargo superior. Nestes casos, o tempo de experiência não deve ser o critério.
Como Thiago deixa claro no segundo parágrafo, o tempo de trabalho não é prova que um programador é ou não sênior, ter 10 anos não prova que você é sênior. Existem pessoas que acabaram de entrar no mercado de trabalho porêm produzem e geram muito mais ROI para a empresa do que um sênior e/ou que já possuem mais expêriencia (por trabalhar em projetos open source, por exemplo) do que eles.
O blog Code Anthem publicou um artigo onde ele mostra algumas habilidadades que um programador deve possuir para que ele seja considerado Sênior:
- Conhecer mais que uma linguagem de programação (linguagens não auxiliares, como javascript quando utilizado como linguagem de apoio)
- Desenvolver fora do período de trabalho
- Desenvolver software desde a sua concepcão até a implementação pensando na manutenção
- Inovar
- Desenvolver com o intuito de resolver reais problemas (não desenvolver aplicações que não irão agregar em nada)
Caso você possua essas 5 habilidades você pode se considerar um bom desenvolvedor acima de qualquer rótulo. Claro que existem outras habilidades que somadas a essas irão lhe tornar cada vez melhor e mais respeitado no ambiente profissional.
Programadores sêniors devem, além das 5 habilidades, saber lidar com situações críticas e estar preparado para arcar com grandes responsabilidades.
E para você leitor, o que diferencia um programador sênior de um júnior? Você concorda com as afirmações a cima feitas? Quais outras habilidades que um programador sênior deve possuir?