Qual a diferença entre um Cientista de Dados júnior, pleno e sênior? — Três respostas da comunidade Data Hackers

O que diferencia um nível do outro

Talietta
Data Hackers
8 min readMar 26, 2020

--

Photo by Proxyclick Visitor Management System on Unsplash

As conversas aqui no Data Hackers muitas vezes ficam boas. Esta semana perguntaram sobre a diferença entre júnior, pleno e sênior, uma das dúvidas mais frequentes entre os novatos que querem entender as expectativas de trabalho e construir um plano de carreira.

Três membros deram suas responderam sobre o tema:

Flávio Clésio (fclesio)

Eu penso que em termos de habilidades técnicas, algo que pode te ajudar é pensar mais ou menos como nesta Programmer Matrix do Sijin Joseph que tem algumas coisas que podem ser transpostas para o trabalho de DS.

Em relação às partes mais especificas, ao menos o que eu vejo em relação ao mercado é que os níveis sênior envolvem três características essenciais que são capacidade de adaptação rápida para a solução de um problema, a velocidade de aprendizado, e contexto.

Claro que o conhecimento técnico é essencial, contudo dentro do mundo corporativo(™) a sua capacidade de resolver alguns problemas específicos vai contar mais do que o seu conhecimento técnico algumas vezes.

Na Minha Humilde Opinião, qualquer transição ocorre de acordo com Evolução Técnica e Aderência à comportamentos; sendo o primeiro mais ligado ao que você sabe fazer e a segunda mais relacionada a como você vai implementar dentro do contexto que envolve pessoas, código e arquitetura.

E aqui não tem segredo, tem que haver um equilíbrio entre as duas coisas; i.e. não adianta ser o “Top Star das comunidades” que sabe tudo de DL/DS e tem inúmeros projetos mas que não tem inteligência corporativa ; como também não adianta ser o “Top Junior Corporate Profile.©” super amigo mas que não consegue resolver os problemas.

Esse vídeo do Mattias Johansson (How to move from júnior to sênior developer) tem alguns pontos interessantes não relativos a parte de Data Science em si, mas sobre essa transição e como ela ocorre (PS: Só descarta o que ele falou que desenvolvedor de Consultoria é mais fraco do que de Empresa, isso é totalmente sem sentido).

Um último ponto: Gestão de carreira é coisa bem seria; lembre-se que a vaga é da empresa, a carreira é sua.

Eu to falando isso por um motivo simples que eu vejo muito aqui no mercado da Europa (Alemanha, Polônia e Finlândia) que é a divisão que eu tenho visto entre “Seniores Locais” e “Seniores Globais”.

É muito bom ser sênior em um contexto especifico, contudo com o domínio ficando cada vez mais complexo a parte técnica talvez venha a ser um pouco prejudicada.

Isso significa que a médio prazo você pode perder competitividade no mercado para quem esta mais antenado. Ou seja, se a “tecnologia virar” e você ficou estacionado no tempo, ai você fica como refém do emprego e fica mais difícil sair desde emprego e competir. Esse seria um Sênior Local.

Da mesma forma se você for um desenvolvedor(a) Nômade , orientado na resolução de problemas como descrito pelo Yossi Kreinin no clássico blogpost The nomadic programmer você pode ter mais habilidades desejadas pelo mercado que pode te dar uma flexibilidade maior em termos de carreira. Isso, ao menos pra mim seria uma espécie de Sênior Global em que não importa para os contratantes o contexto, pois eles buscam habilidades.

Adamastor

O ramo de DS é muito aberto e com muitas funções (código, comunicação, estatística, visão de negócios…) para você
fazer uma barra horizontal de “skill mínima” pra subir de cargo.

Cada empresa vai precisar de um balanço diferente dessas habilidades. Tem empresa que tem que convencer mais os gestores, tem outras que fritam os cérebros pra melhorar 0.1% no modelo. A presença de alguém com X provavelmente é sinal que você potencialmente precisa de outra habilidade pra otimizar o time.

A flutuação de nível entre trabalhos vai ser similar, mas em menor escala, a de mudar de carreira, você vai ter uma redução ou aumento de primeira hora baseado no quanto consegue reaproveitar o que já sabe pra situação da empresa. Já vi 2 caras com poucos meses de QA (Quality Assurance) subirem de rank porque estudaram a automação que a empresa precisava. A senioridade representa a grosso modo o quanto a empresa nota que você entrega de valor pra ela, é o quanto ela tá pagando pra te manter lá.

É comum o seu conhecimento e as necessidades empresariais desalinharem. É por isso que em tecnologia as pessoas tendem a ser ‘fisgadas’ por outra empresa com um cargo melhor.

Na minha opinião, uma maneira melhor de estipular veterania não é o conhecimento em si, mas medir quanta supervisão acontece pra entregar as coisas à tempo:

  • Estagiário: Sabe porcaria nenhuma*, não se espera que entregue algo à tempo sem fazer 10 perguntas. Nem sabe o que é stackoverflow. Está lá principalmente pra aprender, entregas ficam em segundo plano.
  • Trainee: Estagiário com 8 horas pra torturar mais :D
  • Júnior: Consegue entregar algum valor sozinho com ML**, mesmo que muito básico. Pode ser com um modelo subido online ou com uma boa explicação pra chefia. É capaz de notar erros grosseiros que inviabilizam o modelo. TLDR: Sabe fazer projeto funcional.
  • Pleno: É capaz de encontrar melhorias consideráveis em modelos básicos que o estagiário fez e sabe o “porque você faz isto em vez daquilo” em nível de modelo. Consulta bem o Stackoverflow pra não parar os amiguinhos e ter a resposta mais rápido. Espero que saiba entregar o modelo tanto com boa ligação ao negócio como também com a alguma forma básica online. Espero também que o código seja legível pelos coleguinhas plenos, mas não pro estagiário.
  • Senior: É capaz de ensinar e de passar tarefas no nível certo pros novatos. Vê/questiona onde os esforços de DS vão dar mais frutos e é capaz de estimar cedo os recursos e limites necessários (em especial dados) para os modelos funcionarem, em nível de projeto*** e não modelo. Ele não precisa ser o executor desse planejamento (leia-se o lead da área), mas ele consegue entender o porque estratégico.

Obs: Não sei se já notou que aparece muita vaga de data scientist sem indicador de nivelamento. Normalmente essas vagas são de empresas que não tem divisão. Não adianta muito você ter definição de júnior, pleno, sênior, pica das galáxias, etc. na sua mente se a empresa não tem essas divisões. No final você vira DS e é isso pra eles. Nesses casos tem que comparar o salário com outros lugares pra ter uma noção.

*Mas tem algum comportamental que o diferencia de um Zé Ninguém
**Isto é extremamente essencial, você é DS pra trabalhar com isso. Se não for, tente outra vaga.
*** Coisas como: horas de trabalho pra criar o modelo, quanto de manutenção vai precisar, quais softwares são úteis e quanto isso liga ao negócio da empresa. Não precisa acertar esses números, mas é para evitar surpresas drásticas e alinhar expectativas.

Paulo Vasconcellos

Essa é uma pergunta muito interessante. Como o Fclesio bem disse, a senioridade depende do que cada empresa precisa, e essa questão do sênior local para sênior global é importantíssima. Meu maior medo é eu não estar a par do que o mercado está fazendo, alguma tecnologia que posso estar deixando de usar; alguma metodologia que poderia acelerar meu time, etc. Pra tentar responder, vou focar minhas respostas aqui para o que o mercado espera de um Junior, Pleno e Sênior (na minha percepção).

Primeiramente, uma empresa que está procurando um Junior sem ter um profissional Sênior é a maior roubada. Você estará por si só, dificilmente saberá se está fazendo o certo, e provavelmente não conseguirá entregar o valor que o negócio espera. Quando estou recrutando um profissional júnior, eu não espero que ele chegue lá sabendo fazer um processo ponto a ponto (do entendimento do problema ao deploy em produção). Eu espero que o júnior saiba os básicos de Machine Learning (modelos supervisionados e não supervisionados, métricas de sucesso do modelo, regressão e classificação, regularização, feature engineering/selection, etc.) porque ele poderá experimentar, explorar e prototipar muita solução, enquanto outros níveis, como plenos e seniores estarão atuando em outras frentes, como entendimento do problema e produtização (falo mais disso a frente). De um júnior eu espero um bom conhecimento em Estatísticas também. Saber o que é um teste de hipótese, distribuições, conduzir análises exploratórias, etc. Há outras skills que são importantes também, como SQL, Git, e claro, tem que saber programar.

A propósito, um ponto que é muito importante para o DS (na verdade, a maior skill de um DS) é o entendimento do negócio. Eu adoro quando vem um júnior que tem noções de negócio, mas nem sempre isso acontece. Nesse momento, eu tento avaliar bem as outras skills que mencionei anteriormente, além de outras soft skills que são tão importantes quanto business acumen, como comunicação, senso de urgência, pensamento crítico, etc.

Já o profissional pleno, espero que ele já comece a entrar por debaixo dos panos dos algoritmos. Como funciona uma SVM para classificação? E regressão? Que tipos de modelos conseguem identificar relacionamentos não lineares entre variáveis? Como funciona uma rede neural? Dentre outras coisas, e não só na parte de Machine Learning (Development tbm). Para o pleno eu também cobro muito o entendimento de negócio: ele tem que alinhar com os stakeholders que tipo de pergunta querem responder; como definir o sucesso do projeto/modelo/research; qual o impacto e esforço que aquela solução tem. Outro detalhe que acho importante é ele saber manipular grandes volumes de dados, porque isto não deveria ser um problema para o pleno.

Quanto ao sênior, além das atribuições que falei anteriormente, o maior valor que um sênior tem é de mentorar profissionais mais juniores. Ele precisa ser o profissional capaz de entender onde os juniores precisam evoluir tecnicamente, sugerir fontes de conhecimento, etc. Ele precisa saber traduzir muito bem a necessidade do negócio para uma formula matemática que irá resolver o problema. Ele é aquele profissional que sabe quando deve dizer não na hora certa. Além disso, o sênior é o profissional que irá criar/trazer novas tecnologias para deixar processos melhores, sejam eles um Machine Learning Canvas para proposição de valor; ou usar soluções como Kubeflow para facilitar o processo de produtização. Não deixando a parte técnica de lado, o Sênior será capaz de entender não só qual algoritmo de ML utilizar para um determinado problema, mas saberá também seus drawbacks, quais métricas de sucesso usar (métricas de modelo, métricas de negócio e métricas de engenharia), qual a melhor forma de produtizar, de promover CI/CD, dentre outras coisas.

E ai, curtiu as dicas dadas pelos Data Hackers? Venha fazer parte da maior comunidade de Data Science do Brasil. Hoje nós oferecemos uma newsletter semanal, um podcast oficial, nosso blog no Medium e nosso canal do Slack para interação dos usuários.

--

--

Talietta
Data Hackers

Writer for Data Hackers. Speciality in data viz. I love system-people relationships and how people interact with technology. Purple and ultramarine addicted