Esbarrei em uma postagem num fórum sobre programação na qual um júnior, há um mês em seu primeiro emprego, pedia desesperadamente por ajuda da comunidade.
O problema encontrado: o desenvolvedor sênior responsável por revisar o código de JavaScript escrito pelo júnior não sabia sobre let, const, ou interpolação de Strings. 8 anos de experiência e não sabia sobre fetch()!
Chocante, horripilante, desestabilizante! Certamente seria apoiado pela comunidade em seu horror com a situação, certo? Coisas tão básicas!
Não foi o que aconteceu, e a comunidade levantou alguns argumentos muito interessantes. Três me chamaram muito a atenção:
Pule para:
- É difícil manter-se atualizado, mas tente
- A diferença entre um desenvolvedor júnior e um sênior não é o código, é tudo que gira em torno dele
- O que importa para a empresa não é o código (uma continuação do ponto #2)
- Conclusões
1. É difícil manter-se atualizado, mas tente
ECMAScript6 (ou ES6), é a sexta versão de padronização de JavaScript, foi lançada em 2015, e introduziu muitas novidades como let, const, e fetch(). Levando em consideração que empresas costumam ser lentas para adotar lançamentos e que esse desenvolvedor já estava trabalhando na área, é possível - e até normal - que tenha tido pouco ou nenhum contato com essas novidades.
Comentário relevante
“Daqui a 10 anos você vai estar no lugar desse sênior, com um recém-formado explicando um monte de coisa nova pra você - coisas que você não teve tempo de aprender porque seu local de trabalho te dá muitas funções e pouco ou nenhum tempo para aprendizado. A essa altura você provavelmente vai ter uma família, então também não vai ter tempo pra aprender em casa. Tenha isso em mente: pessoas não são burras ou inferiores a você! Você acabou de aprender ISSO! Ano que vem tem mais coisa. E no ano seguinte, e no ano seguinte. Nunca acaba!”
Lições
- Aprendizado e atualização contínuas são essenciais. Focando em tecnologias que usa no trabalho, tente ao menos familiarizar-se com a documentação para que possa aplicar esse conhecimento no seu código. Se a tecnologia utilizada vai ser atualizada (por exemplo, se a empresa usava React 16 e agora vai passar para React 17 ou 18), mesmo que não tenha tempo de praticar leia a documentação explicando as mudanças. Aplique-as.
- Idealmente, a empresa vai permitir um tempo diário ou semanal para aperfeiçoamento, além de fornecer acesso a plataformas de aprendizagem. Isso não é favor ou benefício para você, é na verdade um modo bem barato de manter mão de obra qualificada e atualizada.
- Se a empresa não disponibiliza esse tempo, então tente usar seu tempo livre para aprender, se aperfeiçoar… e mudar para uma empresa que disponibilize! Se você usa uma tecnologia antiquada, vai ser difícil recolocação em caso de demissão, fechamento da empresa, ou busca por melhores oportunidades. Não fique refém.
2. A diferença entre um desenvolvedor júnior e um sênior não é o código, é tudo que gira em torno dele
Mais experiência não significa que você tem todos os detalhes sintáticos de uma linguagem de programação decorados. Significa que você consegue tomar decisões pensando em longo prazo baseadas no seu conhecimento sobre qualidade de código, cobertura de testes, estratégia de negócios e como aplicar tecnologia para atingir objetivos da empresa.
Comentário relevante
“Eu sou sênior, e gosto de usar os juniores para me familiarizar com novas tendências e conceitos nos quais posso focar durante o tempo (limitado!) que tenho para aprendizado. Não tenho tempo para aprender tudo e estar atualizado em relação a todas as tecnologias que usamos, porque o modo pelo qual eu agrego valor é entendendo como tudo se encaixa e direcionando as decisões. Não temos desenvolvedores com habilidades idênticas mas sim complementares, então sempre aprendemos uns com os outros.”
Lições
- Desenvolvedores sênior, assim como quaisquer outros profissionais, têm expertises e perspectivas diferentes. Alguns são mais “fortes” em relação a necessidades estruturais; outros, em inovação e criatividade. Alguns levam marketing em consideração enquanto outros se preocupam apenas com padrões de software e melhores práticas. Absorva o que puder e leve consigo em sua jornada profissional;
- Mesmo que empresas funcionem diferentes umas das outras, colaboração e comunicação costumam ser habilidades essenciais independentemente da área, função ou nível de senioridade. Um desenvolvedor júnior também tem conhecimento a ser compartilhado, seja por conhecer alguma novidade que não é familiar a seus colegas ou por ter experiências prévias - mesmo de outra indústria - que podem ser relevantes. Não tenha medo de perguntar ou de ensinar, pois um dia será você a ensinar uma nova geração.
3. O que importa para a empresa não é o código (uma continuação do ponto #2)
Uma narrativa constante é que o melhor desenvolvedor é o que digita mais rápido, que sabe mais factóides de cabeça, e o que sempre está mais atualizado. Para uma empresa, essas não são prioridades. O mais importante para uma empresa é como você entrega valor para ela e/ou para os clientes.
Comentário relevante
“Uma boa compreensão do domínio da empresa, de como ela funciona, dos clientes que atende e de como se comunicar com os outros provavelmente são os motivos pelos quais esse desenvolvedor é sênior, e são essas as habilidades que vão destacar você no futuro. E vai que ele nem trabalha com JavaScript! Uma empresa usa bem mais de uma única tecnologia, ele pode saber ler seu código e julgar a qualidade dele sem precisar saber a sintática. Sem falar que eu conheci muito desenvolvedor que foca demais no teórico e esquece do resultado, ou vice-versa.”
Lições
- Quando um produto é entregue, o cliente não se importa se você usou let ou var, fetch() ou Axios.js/jQuery. O consumidor não liga pra isso, mas sim se a solução atende suas necessidades e prazos. A solução pode ser suprida, no quesito técnico, de várias formas e não necessariamente precisa usar a tecnologia mais recente. Em relação a isso, é importante conhecer a visão da empresa e a necessidade do seu público.
- Balancear padrões de qualidade - envolvendo código limpo, testável, de fácil manutenção - e prazos ou demandas de gestores é uma tarefa delicada, mas aprender e praticar esse balanço costuma ajudar em avanço de carreira.
Conclusões
Níveis de senioridade em desenvolvimento de software vem com diferentes expectativas de responsabilidade e conhecimento. O código é sim a base, mas a tendência é nos afastarmos dele conforme subimos a montanha.
Indico essa leitura excelente de Felipe Marciano sobre expectativas de carreira: https://www.fx.dev.br/frontend-junior-pleno-senior/
Originalmente postado em: https://www.dio.me/articles/credo-senior-e-nem-sabe-isso