5

Como vamos definir os novos devs sêniors?

Tem uma pergunta que anda martelando na minha cabeça toda vez que vejo alguém se apresentando como "sênior em X" ou "domino a linguagem Y": domina como, exatamente?

Não é implicância ou algo assim. É que a régua mudou muito de uns tempos pra cá, e acho que muita gente ainda não percebeu direito o tamanho da mudança.

Até pouco tempo atrás, bom, pouco tempo não, uns 5 anos ou até mais
dizer que alguém "sabia programar rápido" ou "resolvia problemas complexos com facilidade" dizia alguma coisa sobre a pessoa. Hoje, isso diz também, e talvez principalmente, sobre qual ferramenta ela está pagando.

Uma pessoa com acesso a uma IA de ponta, na versão mais forte, paga, com contexto longo e boa integração no editor, entrega código num ritmo que simplesmente não é comparável ao de alguém usando uma versão gratuita, mais limitada, de outro modelo.
Mas claro que o conhecimento da pessoa tem um peso nisso, o canal da Codecon já mostrou muito bem que júnior com IA conseguem entregar mais que um Sênior sem IA(muitas vezes com qualidade menor, mas entregam mais)

E aí mora o problema: a programação virou uma bolha relativística. A régua de "quão bom você é" se esticou ou encolheu dependendo de qual ferramenta está nas suas mãos, e isso é quase invisível de fora. Nenhum recrutador pergunta "qual plano de IA você usa" numa entrevista técnica. Mas talvez devesse.

Uma coisa que me incomoda, hoje é extremamente fácil parecer dominar uma linguagem enquanto, na prática, quem está resolvendo o problema é o modelo. Você lê o código, entende o suficiente pra saber que funciona, ajusta um detalhe aqui e ali, e entrega. Isso é uma habilidade real, saber orquestrar, revisar, validar. Mas é a mesma habilidade que a gente historicamente chamou de "senioridade"?

Antes, senioridade era proxy pra um conjunto de coisas, profundidade técnica, capacidade de debugar sem ajuda, intuição sobre trade-offs de arquitetura, cicatrizes de produção. Hoje, uma pessoa júnior com boa IA paga pode simular boa parte dessas entregas sem ter, ainda, internalizado nada disso. E o inverso também é verdade: tem gente sênior de verdade que, sem IA, entrega mais devagar que um júnior turbinado, e isso bagunça completamente os sinais que a indústria usava pra avaliar gente.

Mas ao mesmo tempo, negar a IA é viver em um passado que já ficou muito para trás, e os devs que no começo eram contra o uso da IA, hoje em dia usam, e os que mesmo assim se negam, muitos foram demitidos.

Não tenho a resposta pronta, é literalmente por isso que tô escrevendo isso aqui, pra jogar pro debate. Mas algumas perguntas que acho que precisamos encarar:

  • Separar velocidade de entendimento. Se tirarmos a IA da mesa por uma hora, a pessoa ainda resolve o problema? Ainda explica o porquê das decisões, não só o quê?
  • Avaliar debug, não só criação. Escrever código com IA ficou trivial. Debugar um sistema em produção, sob pressão, quando a IA não tem contexto suficiente pra ajudar de verdade, continua sendo um filtro difícil de fraudar.
  • Redefinir o que "saber uma linguagem" significa. Talvez não seja mais escrever sintaxe de cabeça, mas ler criticamente o que a IA gerou e identificar o que está sutilmente errado, que é uma habilidade bem mais difícil e bem menos ensinada.
  • Considerar o acesso como variável, não como mérito. Se a ferramenta paga entrega mais rápido, isso é uma vantagem competitiva real, tipo ter um computador mais potente. Faz sentido continuar avaliando "resultado" sem contextualizar "com o quê"?

O TabNews tem gente do mercado todo, de quem contrata a quem tá começando agora. Por isso quero perguntar direto pra comunidade:

Se você fosse montar um processo seletivo hoje, como você separaria sinal de ruído nessa história toda? Você mudaria como avalia entrevistas técnicas? Acha que "senioridade" precisa ser redefinida, ou é balela e os fundamentos continuam os mesmos de sempre, só que com uma ferramenta nova no meio?

Quero muito ler o que vocês pensam nos comentários.

Carregando publicação patrocinada...
7

Eu sou contratante, mas sou programador python e c, c++ também entre outras. Eu sinceramente nunca considerei sênior um cara que trabalha 5 anos numa linguagem por exemplo. Eu considero sênior o cara que tem experiência em trabalhar com programação e não em programação. Linguagem para quem ja tem anos de rodagem se aprende o basico em poucos dias, mas o conhecimento de como funciona o universo da programação, equipes, clientes etc isso sim é senioridade. Concordo com o colegas ai maniero e Oletros, senior não é algo definido e o importante mesmo é a bagagem do universo todo e não só a programação em si. Por exemplo voce pode ter equipes de juniores super produtivos, mas quem vai cordenar essa equipe? Quem entende o que a Gerentalha quer e sabe passar isso em linguagem correta aos programadores? Quem entende o lado cliente e o lado produção e consegue alinhar os dois? Isso seria um sênior real na minha cabeça.

6

Estava querendo escrever algo, acho que esta é a oportunidade.

Eu começaria considerando algumas questões daqui: https://www.tabnews.com.br/maniero/faq-do-programador-perdidao. "Senioridade" nunca foi definida.

Quase todo mundo que se denomina sênior só o é na carteira de trabalho. Porque é assim que o termo surgiu.

O tempo e a maneira como nosso mercado evolui — ou seja, de forma caótica e sem fundamento real, baseando-se em crenças que são repetidas tantas vezes que um conceito errado passa a ser considerado correto por muita gente.

E passamos a chamar de sênior quem é experiente. Mas sem nenhuma definição clara do que é essa experiência. E nem estou falando de quantidade de tempo ou do que ele conhece, até porque não é assim que se define experiência. Assim como se chama de júnior quem é iniciante. E pior: não importa se é um iniciante que não sabe nada ou um que tem boa formação e uma pequena, mas existente, experiência. E, claro, usamos o termo pleno para quem está no intermediário. Ignoram-se trainee, master ou outras definições.

Mas note que raramente se usa o termo pleno, porque a intenção é só separar quem é iniciante de quem é experiente. Mais uma confirmação do uso errado dos termos.

O experiente, ou sênior, como gostam de usar, é alguém com grande conhecimento, capacidade de análise, crítica, raciocínio, planejamento, escolhas baseadas em método científico, experiência real e aproveitada dos erros dos outros, além dos próprios. O experiente abraça tudo e decide o que é realmente útil, sem cair nas armadilhas das modinhas. Ele tem apego ao acerto e zero compromisso com o erro.

Então o experiente entende os problemas como eles são. Ele sabe coletar requisitos e informações de funcionamento de processos. Ele sabe conceituar e dar nome adequado para as coisas. O experiente não se chama de sênior; no máximo diz que tem esse título oficial no emprego atual ou tinha nos anteriores. Ele não se importa com isso, ele sabe o que tem valor real. Sabe que uma palavra não consegue definir o que ele é. E sabe que, mesmo que isso fosse possível, cada pessoa veria de forma diferente. E a mesma pessoa mudaria a forma de ver de tempos em tempos (há casos de mudar no mesmo dia).

É claro que os recrutamentos e contratações continuarão usando os termos, até de forma adequada, afinal é o que eles enxergam e usam na burocracia do RH. E os profissionais continuarão usando o termo equivocadamente.

Não é que a régua mudou: a régua é diferente para cada pessoa em cada momento.

O experiente sabe que a IA não está entregando essa maravilha que algumas pessoas acreditam. Há vantagens em usá-la, mas a maioria está apenas criando dívida técnica, porque não é experiente, não domina o artifício da profissão.

Quanto mais a pessoa nega isso e outros mitos, como este, mais, ela está distante de ser realmente experiente.

O inexperiente ainda colhe crenças, ainda acha que o uso da IA está fazendo mais do que apenas ganhar algum tempo no curto prazo, não tendo uma relação com o que vai acontecer no longo prazo.

"Capacidade de debugar sem ajuda" é um exemplo do que pode ser coisa de sênior para uns e outra coisa para outros. Para mim, qualquer júnior deve saber fazer isso muito bem. Ele pode se enroscar em um problema muito complexo, talvez com paralelismo em que a depuração não funciona tão bem. Escrever código com IA só é trivial se for algo muito bobo, repetitivo, que já era para ter ferramentas para ganhar tempo e qualidade há tempos, ou se aceita uma porcaria, ignorando a engenharia. E, claro, os inexperientes de antes agora passam a acreditar no contrário, da mesma forma que acreditam que são experientes, mantendo seu selo de mestre em DK.

Não mudou tanto; continuamos acreditando em sinais errados para contratar alguém. E por isso está cada vez mais difícil achar softwares que rodam liso, fazem o que devem fazer, de forma simples, fácil, intuitiva e rápida, mesmo que não haja motivos para não ser assim.

Infelizmente, no Brasil não costuma haver locais para bons debates.

Dá tempo de a pessoa correr atrás do prejuízo.

Não dá para formar alguém mais rápido por causa da IA. A cognição das pessoas permanece igual, ou está até mais prejudicada. A IA ajuda a pular degraus importantes.

Como sempre, projetos high profile estão fazendo o certo, enquanto os outros cerca de 99,9% dos projetos estão em um espectro enorme, desde fazer bem, passando por vários níveis de slop (não é algo novo), até coisas impraticáveis que vão para o lixo. Para ganhar experiência, veja menos LinkedIn e mais GitHub desses projetos que agora restringem os casos de uso de IA por um bom motivo.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).

6

Meus 2 cents,

IMHO, jr/pl/sr nunca foi sobre codigo, eh sobre a capacidade de solucionar problemas sozinho sem fazer m*rda (independente da IA), ter condicoes de conversar com um cliente e entender o problema, de fazer levantamento de requisitos, ministrar um treinamento sobre a solucao desenvolvida...

  • JR: Sozinho eh uma negacao. Com ajuda IA, eh uma negacao acelerada. Se deixar um JR conversando com o cliente 5 min, o cliente sai correndo e nunca mais volta. Se nao tiver uma mao orientando (presencial ou virtual), so sai m*rda.

  • PL: Ja se vira sozinho. Usa IA, mas entende seus limites. Consegue conversar com um cliente, entender e se fazer entender. Nao recusa ajuda e oferece ajuda. Produz.

  • SR: Quando olha um problema, lembra que ja resolveu um igual faz uns 5 anos, o codigo deve estar por aqui em algum lugar. Quando conversa com o cliente, o acalma (mesmo que esteja achando que vai dar uma m*rda federal). Produz e ajuda outros a produzirem.

Meu ponto eh: a senioridade (ou o salario) do profissional depende de:

  • Da capacidade de resolver as demandas que lhe sao entregues
  • Da supervisao que vai precisar para resolver estas demandas
  • Da habilidade de entender e se fazer entender
  • De ter um custo/beneficio positivo entre o quanto ganha e o quanto entrega
  • Da compreensao de que quem gosta de mi-mi-mi compra um gato gago.

E a IA ? Que se f*da a IA, eh so uma ferramenta, como sao livros, cursos, frameworks, linguagens: resolva o problema de forma eficiente e eficaz e voce sera um senior, independente do teu harness.

Se o profissional conseguir chegar nesse nivel usando IA para tudo, parabens para ele. Os outros, nós usamos IA onde da e estudamos para c*ralho para saber esse tal de "onde da".

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS

3

Senioridade não se define na maioria das vezes de quanto a pessoa progama um uma linguagem tal, ou stack tal, tambem é levado em conta o conhecimento em regras de negocio (internas da empresa e/ou regras gerais de engenharia de software).

2

De certa forma eu concordo com os comentários do pessoal, principalmente com o do maniero. Para mim, estes rótulos estão apenas na carteira que, claro, faz muita diferença no valor que você recebe.
Mas é isto, só rótulo.
Eu mesmo programo há mais de 20 anos. Comecei com C (ainda tenho meu livro do Kernighan e Ritchie), fui pra PHP, JavaScript, Java, Python entre outras. Isto faz de mim um sênior? Pra mim não. É uma aprendizagem constante.
Pensa comigo: você é programador sênior, com anos de bagagem. Cria códigos robustos e seguros (ou pelo menos assim pensa). Só que, a qualquer momento, um garoto de 10 anos pode hackear teu software.
Eu penso muito nisto quando vejo discussões assim.
Isto é mais verdade atualmente. Seja porque qualquer um está criando com IA, seja porque a IA está permitindo caçar bugs em códigos.
Acho que não vai demorar muito pra estes rótulos caírem. No lugar vão ficar outros rótulos, mas mais voltados pra quem domina a IA de verdade.

Obs.: Ótimo post. Estava sentindo falta disto aqui no tabnews.