BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias O que significa ser Sênior?

O que significa ser Sênior?

Favoritos

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:

  1. Conhecer mais que uma linguagem de programação (linguagens não auxiliares, como javascript quando utilizado como linguagem de apoio)
  2. Desenvolver fora do período de trabalho
  3. Desenvolver software desde a sua concepcão até a implementação pensando na manutenção
  4. Inovar
  5. 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?

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

  • Daonde javascript é auxilar ?

    by Dev Dev,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Além do erro de pt: axiliares, javascript não é uma linguagem auxilar, e nem se existe tal coisa, toda linguagem, é feita para algo, já passei anos sem tocar em um C, pois não havia tal necessidade, e hoje mesmo tive de codar um pequeno hook para o nodejs, falar que html não é linguagem de programação, se for levar ao pé da letra pode ser verdade, mas ela é sim uma linguagem, e se for remontar a definição linguagem, vc caira em linguistica....

    E desde quando desenvolver fora do período de trabalho, faz diferença ? Apenas indica que o cara gosta de codar, oque faz uma pessoa boa ou não é puro fato de gostar de codar, de entender o negócio e ter lógica na cabeça, conheco pessoas formadas e que trabalham a um bom tempo que não entende de separação de lógicas, reuso, refatoração, que são tópicos que apenas quem tem um dom artístico pode entender, para muitos CEP (complex event process) é natural, como programação funcional e oop, para outros não.

    E essa rapidez para entender as técnicas e os novos fatos, torna a pessoa um bom programador.

    Fora que rótulo não serve para nada, lembro de uma palestra que assisti que um ceo de uma empresa grande (acredito que brasileira) comentou em um video sobre as escolas do futuro, que, ele simplesmente liberou para todos os funcionarios, colocarem o titulo que precisarem no cartão.

  • Re: Daonde javascript é auxilar ?

    by Pedro Henrique Santana Mariano,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Claro Renato concordo com o que você disse no último paragrafo. Conheco até o caso da thoughtworks que deixa colocar o que vc quiser no cartão.

    Acho que a parte do javascript eu me interpretei mal. Eu quis dizer Javascript utilizado de forma auxiliar. Quando você conhece o Javascript mais apenas utilizou ele para deixar sua pagina mais dinamica e nao para criar aplicacoes complexas. Javascript é uma linguagem muito poderosa sem dúvida e de forma alguma disse que ela serve apenas para fins auxiliares.

    Sobre desenvolver fora do trabalho não é com o sentido temporal da coisa. E sim desenvolver aplicações que não sejam do trabalho, projetos open source por exemplo.

    Sobre os erros de português irei corrigir.

  • Desenvolver fora do período de trabalho

    by Cezar Guimaraes,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    para ser senior precisa desenvolver fora do período de trabalho. não sei o que ele quis dizer com isto...mas com certeza trabalhar mais horas não faz de ninguém mais senior necessariamente. pode ser simplesmente uma questão de carga excessiva de trabalho ou pode ser que o sujeito não sabe trabalhar.

  • Re: Desenvolver fora do período de trabalho

    by Jhony Pereira,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    A questão é fugir do arroz com feijão que a empresa te empurra todo dia. É buscar algo novo, testar um novo framework ou uma linguagem nova. É ir em busca de algo para inovar, cara fortalecer.

  • Re: Desenvolver fora do período de trabalho

    by Pedro Henrique Santana Mariano,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    O que ele quis dizer com trabalhar fora do trabalho é trabalhar em projetos projetos open source e/ou outros onde não você não ira receber retorno financeiro da sua empresa, programar por prazer e não apenas por trabalho.

  • Re: Desenvolver fora do período de trabalho

    by Tiago Emerick,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Eu entendi o que o autor quis passar e concordo.
    Principalmente com o item: Conhecer outras linguagens que não auxiliares.

    Muitas pessoas podem não aceitar ou não entender ainda, mas o fato de vc conhecer ruby, groove, C, java e outras linguagens, te da uma visão diferente para um mesmo item.
    É como se para um dado problema (aquele que conhece apenas Java) da uma solução, mas aquele que conhece outras linguagens consegue ver o mesmo problema de ângulos diferentes e consegue dar mais de uma solução e até mais viável.

  • Minha classificação

    by Cláudio Silva,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Em primeiro lugar, não concordo em relação à multilinguagem. Um profissional pode ser avaliado sênior especificamente para uma dada linguagem ou tecnologia. O especialista não deveria ser subvalorizado. Se um profissional conhece mais de uma plataforma de desenvolvimento, ótimo: mas o importante é que conheça ao menos uma *direito*!

    Em direção oposta, eu costumo utilizar uma classificação relativamente simples e que até hoje tem se verificado válida:

    Júnior: este profissional conhece (algumas vezes, muito bem) a *linguagem* em que trabalha, e o suficiente de suas ferramentas para colocá-la para funcionar, sendo capaz de realizar manutenções. No entanto ele não pode ser considerado um *desenvolvedor*: falta-lhe a visão e a experiência necessária para conceber e construir uma aplicação (do zero, por exemplo). Uma característica do Júnior é que ele geralmente não consegue produzir sem alguma espécie de direcionamento ou orientação. Um detalhe interessante é que, em Java por exemplo, a certificação de programador (SCJP) só me prova que estou diante de um excelente júnior.

    Pleno

    : Este profissional consegue conceber, desenhar e construir aplicações. Ele é capaz de interpretar um documento de requesitos e implementá-lo, geralmente sem precisar de orientação constante e é capaz de tomar decisões técnicas para atingir seus objetivos. No entanto, aspectos não funcionais ainda lhe fogem à experiência: ele cria *aplicações*, não *sistemas*. No mundo Java, um profissional com alguma certificação de desenvolvedor (SCWD, etc) comprova seu nível de pleno.

    Sênior: Este profissional vai além da simples implementação de um problema, sendo consciente dos aspectos não funcionais e de integração entre sistemas. Ele é capacitado para desenhar a *arquitetura* de um sistema, ou contribuir para a melhoria de sistemas preexistentes. Sabe não apenas como criar código: ele entende como sua plataforma funciona. Tem uma noção constantemente atualizada dos recursos que a tecnologia escolhida oferece e é capaz de oferecer soluções. Onde outros profissionais "tropeçam" ele consegue resolver. Em java, o "topo da cadeia alimentar" é a almejada certificação SCEA.

    Em resumo: o júnior coda, o pleno desenvolve e o sênior cria *soluções* (geralmente onde não havia nenhuma :-P). Na minha opinião é isso que as empresas esperam (ou deveriam esperar) de cada nível profissional.

  • Re: Daonde javascript é auxilar ?

    by Adolfo Neto,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!


    Fora que rótulo não serve para nada, lembro de uma palestra que assisti que um ceo de uma empresa grande (acredito que brasileira) comentou em um video sobre as escolas do futuro, que, ele simplesmente liberou para todos os funcionarios, colocarem o titulo que precisarem no cartão.


    Foi o Ricardo Semler.

  • Re: Minha classificação

    by Marcelo Santino,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Cara, isso que você classifica como Júnior/Pleno/Sênior eu entendo como Programador / Analista / Gerente de Projetos.

    Um Sênior em Java não precisa, de forma alguma, saber levantar requisitos, modelar um sistema ou até mesmo, gerenciar o projeto em java. A definição Júnior/Pleno/Sênior pelo que aprendi se refere apenas ao nível de experiência que o programador/desenvolvedor possui naquela determinada linguagem ou tecnologia. Essa denominação quer dizer que o Júnior conhece um pouco a linguagem mas não tem a experiência de resolver qualquer tipo de problema. Possivelmente precisa da ajuda ou orientação de alguém mais experiente. Já o Pleno possui um pouco mais de experiência que o tempo de trabalho lhe permitiu adquirir. De tantas vezes já ter visto uma quantidade enormes de erro, ao olhar saberá resolver rapidamente ou então, chegar a uma solução rápida àquilo. Ele tem um nivel de experiencia melhor que o Júnior. Já o Sênior é o "fucket-master" da parada. Faz qualquer coisa, resolve qualquer problema. Não há nada que você dê a ele que ele não saiba fazer naquela tecnologia esperífica.

    Pra mim esse é o conceito certo de Júnior/Pleno/Sênior e concordo com o autor do artigo que isso nem sempre vem com o tempo de experiência, mas também com o nível de dedicação de cada um fora do cotidiano, do if-else que ele faz na empresa todos os dias.

  • Discordo totalmente

    by Luca Bastos,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Saber codar bem nunca fez ninguém senior, é preciso mais maturidade. O cara senior é aquele que sabe se virar e isto inclui saber tratar e entender o cliente, saber negociar para obter melhorias no próprio ambiente do seu trabalho com seus colegas e com demais pessoas da empresa.

  • Re: Minha classificação

    by Daniel Della Savia,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Marcelo Santino, na minha modesta opinião, um gerente de projeto pode gerir tanto o desenvolvimento de um software quanto a construção de um acelerador de partículas. A função dele é gerenciar recursos, prazo, custos, definir estratégias de contingência, entre outras coisas ligadas à gestão, não ao desenvolvimento em si. Obviamente não necessita de competência para programar. Porém, um desenvolvedor sênior, pela experiência e maturidade que tem, saberá gerenciar a si mesmo, competência que adquiriu pelo tempo de estrada. E obviamente não faz qualquer coisa. Ninguém faz qualquer coisa, mesmo numa tecnologia específica. Ele deve saber sim, buscar soluções, ter um esforço de pesquisa e, quando for o caso, informar ao gerente aquilo que não é de sua competência que, por sua vez, contratará serviços de alguém que saiba fazê-lo. Mas é claro, é somente a minha opinião.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

BT