A partir do momento em que a função de programador passou a ser uma enorme demanda no mercado de trabalho, surgiu a necessidade de categorizar os profissionais conforme o seu nível de experiência. A maioria das empresas obedecem esses níveis para estruturar equipes de desenvolvimento, calcular bases salariais e definir planos de carreira. Mas afinal, em qual nível eu me encaixo?
Introdução
Quem trabalha com desenvolvimento sabe que programação é um triunfo infinito, já que as linguagens, tecnologias e ferramentas evoluem constantemente e ganham novos recursos. Acompanhar essa evolução no desenvolvimento de software é essencial para profissionais que trabalham com programação, e este é um dos fatores que colaboram com o seu grau de experiência.
Em outras palavras, pode-se dizer que o conhecimento da linguagem, a lógica de programação e a regra de negócio são os principais medidores que definem se o profissional é Júnior, Pleno ou Sênior. É claro, o tempo de atuação na área também influencia, mas conta com as particularidades de cada empresa.
Antes mesmo de começar a falar sobre as diferenças, vale ressaltar que ainda há um nível inicial, chamado de Trainee. Esse nível, no qual não existe só na programação mas também em várias outras profissões, é o profissional que está iniciando suas atividades na área, ou seja, ainda não tem um conhecimento sólido da atuação como um todo. Geralmente, após 6 meses atuando como Trainee, o profissional é promovido a nível Júnior.
Nível Júnior
O programador Júnior já possui noções básicas (porém essenciais) de programação, como lógica, estruturas de dados, laços de repetição e instruções SQL. Embora já seja capaz de realizar manutenções em um projeto, o programador deste nível ainda detém uma certa dificuldade em elaborar novas funções ou rotinas no banco de dados que exijam vários testes. Essa experiência é adquirida durante a sua evolução na programação.
Nível Pleno
Para alcançar o nível Pleno, o programador Júnior deve ter no mínimo um ano de experiência. Porém, com a promoção do cargo também surgem novas responsabilidades. O progrador Pleno, por sua vez, já fica encarregado de determinados processos em um projeto, realizando manutenções e estudando aprimoramentos no sistema. Este profissional já deve ser capaz de compreender códigos de outros desenvolvedores e, se possível, melhorá-los, além de criar novas rotinas para suprir a regra de negócio.
Nível Sênior
O tempo de atuação de um programador Pleno é maior do que um programador Júnior, ou seja, somente após 2 anos de experiência é que ele já pode ser considerado de nível Sênior. Quando o profissional atinge esse nível, significa que já consegue compreender a arquitetura de um software e não tem dificuldades em lidar com códigos extensos. O profissional Sênior trabalha com programação avançada assumindo altos conhecimentos de programação, como por exemplo, desenvolvimento de componentes, utilização de novas tecnologias, refatoração e uso intenso de orientação a objetos.
Analistas
Paramos por aqui? Não.
Com 3 anos de experiência como programador Sênior, o profissional passa a exercer a função de Analista Programador (ou Analista Implementador). Neste nível, além da função de programador, ele também se encarrega de fazer análises de novas implementações, bem como lidar com a engenharia do software. Em certas empresas, o Analista Programador também fica responsável por parte da equipe, respondendo ao seu superior.
Espere aí… eu disse “superior”? Então existe mais um nível?
Exato. Após trabalhar como Analista Programador, o profissional finalmente se torna o contemplado Analista de Sistemas, bastante conhecido na área de desenvolvimento. Em poucas palavras, a principal função de um Analista de Sistemas pode ser resumida em:
Grosso modo, pode-se dizer que o Analista de Sistemas busca as informações com o cliente (ou com o Analista de Negócios), realiza uma análise da implementação e, em seguida, transpõe essas informações de forma técnica para os desenvolvedores. Vale observar que para ser um bom Analista de Sistemas, é preciso ser comunicativo, proativo e dominar técnicas de modelagem de dados, como UML ou DFD.
Observações
Bom, agora que apresentei os diferentes níveis de experiência, vou fazer uma contradição ao meu próprio artigo! Não, eu não sou bipolar, mas enquanto redigia este artigo notei a necessidade de esclarecer algumas passagens:
1) Os períodos de atuação para avançar o nível mencionados no artigo são relativos de cada empresa.
Algumas empresas podem promover um programador Pleno pra Sênior em apenas 1 ano, enquanto outras podem demorar bem mais. Esse período respeita vários fatores, como cultura da empresa, desempenho do profissional ou mesmo quando o programador “ameaça” sair da empresa por motivo de uma proposta melhor.
2) Não é necessário transitar em todos os níveis para ser um Analista de Sistemas.
Já conheci profissionais que “pularam” de Júnior pra Sênior ou de Pleno pra Analista Programador. Como disse anteriormente, essa é uma característica do próprio profissional, que é reconhecido pelo seu desempenho e experiência.
3) As funções que aloquei para cada nível também são relativas.
Pode-se dizer que em certo momento o programador Pleno executa várias tarefas de um programador Sênior, e infelizmente este é um dos motivos que o faz procurar por outras oportunidades. Da mesma forma, um programador pode ser promovido a Sênior mas continuar exercendo funções de um Pleno, por exemplo.
4) Não mencionei bases salariais.
Valores também se tratam de um assunto particular de cada empresa. Aliás, aparentemente os salários de programadores são diferentes em cada parte do país.
Bem, e ouvi dizer que estão pensando em criar mais um nível: programador “Default” – aquele que se desdobra pra exercer as tarefas dos três níveis ao mesmo tempo, haha.
Um abraço, pessoal!
Até a próxima.
Venho acompanhando este blog a algum tempo e sempre vejo posts interessantes como esse, continue assim.
Olá, Neto!
Obrigado pelo comentário, fico contente em saber que está acompanhando o blog. Abraço!
Muito Interessante seus Artigos. Parabéns.
André, seria interessante colocar uma média nacional ou municipal (que seja) quanto aos salários de cada categoria. Assim serviria de base para alguns interessados em seguir carreira e até mesmo para algumas empresas. É claro que seria apenas para tomar como base. Parabéns.
Opa, Chagas, agradeço pela sugestão. Já anotei aqui na pauta a elaboração de um artigo sobre médias salariais! Obrigado pelo comentário!
Parabéns pelo artigo!
Muito obrigado, Roberto!
Discordo em colocar o Analista de Sistemas como superior, em muitos casos o Analista de Sistema é um tecnlogo graduado podendo não ter nenhuma experiência em um projeto real, portanto seria mais real colocar um Gerente de programação como cargo mais alto dentro da área de desenvolvimento, ou até mesmo o papel do arquiteto, já o gerente de projetos, cargo que não citou gerencia todo o projeto sem ter experiências fortes na área de programação.
Olá, Marcos! Agradeço pelo seu ponto de vista. Na minha jornada profissional, até o momento só tenho trabalhado em empresas onde os Analistas de Sistemas já foram, por alguns anos, desenvolvedores de software. Portanto, eles possuem uma base de conhecimento técnico fundamental e são capazes conciliá-la com os aspectos conceituais da regra de negócio. Na minha visão, isso é ser um bom Analista de Sistemas.
Por outro lado, concordo com você: após a função de programador pleno, o profissional pode se tornar um Arquiteto de Software ou um Coordenador de Desenvolvimento, caso queira prosperar na área técnica.
Obrigado pelo comentário!
André boa noite, seu relatório é de muita valia para meu crescimento profissional, assim como seus argumentos a respeito da programação, obrigado.
Sou estudante de graduação pela Estácio de Sá em Sistemas de Informação.
Olá, Carlos Alberto!
Fico contente que o artigo tenha lhe trazido conhecimento!
Também estudei Sistemas de Informação e me identifiquei bastante com o curso.
Boa sorte nos estudos! Abraço!
MUITO legal esse artigo, um dos melhores que eu já li até então sobre essas benditas 3 separações (júnior, pleno e sênior).
Olá, Pedro! Legal! Essa é justamente a minha intenção: facilitar o entendimento destes conceitos!
Obrigado pelo comentário. Abraço!
Odeio ser contratado como Junior e exercer a função de um /default/ hahahaha
É uma situação complicada mesmo, João Pedro, rsrs.
Bastante interessante o artigo foi bom até para ter uma boa noção das funções só acho que pecou porque deveria ter colocado alguma base de salários de algumas capitais do Brasil mesmo sendo ilustrativa mas no geral excelente.
Obrigado pelo feedback, Filipe! 🙂
Só faltou abordar sobre certificações. SUPONHA-SE que eu seja treinê e tirei uma certificação, então qual o meu nível depois da certificação? Vou me tornar nível sênior igual a alguém que já está há 10 anos na função?
Olá, Frederico, tudo bem?
Agradeço pelo comentário e pela observação levantada.
Realmente seria interessante ter abordado a questão das certificações, nas quais se tornaram muito importantes principalmente para profissionais de TI.
Frederico, eu diria que, embora uma certificação prove que o profissional tenha conhecimento amplo do tema estudado, ela não é o suficiente para transformar um profissional do nível Júnior em um Sênior. Digo isso porque há muita prática envolvida nessa escala. Um desenvolvedor Sênior, por exemplo, possui uma experiência empírica que é adquirida somente com o trabalho desempenhado no dia a dia. Em outras palavras, podemos afirmar que a certificação oferece um embasamento teórico, enquanto o trabalho proporciona um conhecimento prático. Combinar essas duas vertentes é o grande ideal. O encontro do conhecimento teórico com o prático resulta no profissional de alta competência.
Mesmo assim, ressalto que, caso você seja um nível Júnior e se certifique na área em que trabalha, as chances de evoluir para o nível Pleno são grandes, já que, essencialmente, a certificação irá aprimorar a sua perspectiva no trabalho.
Abraço!
Olá André,
Obrigado pelo artigo!