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!