Fabrica

Como mudar sua carreira de desenvolvedor de software e ter sucesso

Código de programação

“ Finalmente encontrei um emprego! Indo do front-end para o back-end. ”

“Aqueles de vocês que mudaram da engenharia de software para a engenharia de dados, ficaram felizes com a mudança?”

“Devo mudar minha carreira de desenvolvimento de software para executivo de vendas?”

Essas e outras postagens semelhantes são frequentemente publicadas nas comunidades de desenvolvedores. Enquanto muitos especialistas se mantêm em seu domínio de programação, alguns deles se aventuram e tentam uma mudança profissional radical.

De fato, tendo construído uma carreira em programação C #, os desenvolvedores podem correr um risco substancial se decidirem mudar para Python.

Mas esse risco é verdadeiro? O que leva os desenvolvedores a escolher um novo plano de carreira? E quais benefícios e desafios essa decisão pode trazer?

Vamos ver.

4 cenários de reorientação profissional

Pessoas de fora do mundo do desenvolvimento de software geralmente o consideram um mundo ideal. Salários competitivos, projetos emocionantes, toneladas de benefícios para o trabalho de desenvolvedor de software e vantagens corporativas o que mais alguém poderia pedir?

É por isso que aqueles que estão insatisfeitos com suas posições atuais em programação ou aqueles que planejam uma mudança na carreira de desenvolvedor de software surpreendem os outros.

No entanto, logo ficará óbvio que há muitos bons motivos para os profissionais de software buscarem grama mais verde.

Cenário # 1: Você ficou preso

É verdade que alguns desenvolvedores trabalham com as mesmas tecnologias há anos. Esta é uma situação típica entre os baby boomers e os da Geração X que entraram no campo de desenvolvimento de software no início dos anos 80 e 90 e geralmente são pioneiros em domínios de desenvolvimento específicos ou fundadores de software específico.

Esses especialistas costumam ser profundamente respeitados pelos proprietários de empresas. Os últimos freqüentemente apóiam esses chamados veteranos do software e permitem que seus projetos sejam executados.

Eu também vi exemplos assim. Dois de meus ex-empregadores tinham departamentos de software preenchidos com as primeiras contratações que continuaram trabalhando com tecnologias desatualizadas, sendo imensamente respeitadas pela gerência e colegas mais jovens.

Ao mesmo tempo, é improvável que os desenvolvedores modernos consigam permanecer por tanto tempo, especialmente considerando o ritmo da evolução tecnológica e o estilo de vida das gerações mais jovens.

Hoje, se os desenvolvedores veem que seus projetos não avançam ou se eles lidam com uma pilha de tecnologia impopular, eles começam a procurar maneiras alternativas de crescer em suas carreiras, incluindo aprendendo uma nova linguagem de programação e se envolvendo no domínio da nova tecnologia.

O desafio aqui é como enfrentar a degradação.

Tendo conhecido um de meus colegas no escritório antes do bloqueio, descobri que ele decidiu fazer uma mudança radical.

Desenvolvedor Java sênior e líder de equipe com quase 10 anos de experiência, ele decidiu se tornar um desenvolvedor Salesforce. Não fiquei menos surpreso ao saber que sua maior dificuldade não era lidar com a nova plataforma, mas aceitar ser rebaixado para um desenvolvedor júnior do Salesforce.

O que fazer: escolher tecnologias relacionadas ou construir uma nova carreira.

Se você não está pronto para reiniciar sua carreira de desenvolvimento de software do zero, é mais razoável optar por tecnologias mais ou menos próximas daquelas com as quais você já lidou. Mudar do desenvolvimento do Android para o iOS será menos dramático do que mergulhar na ciência de dados após anos de desenvolvimento de aplicativos Android.

Se seu downgrade for substancial, você terá que repetir sua carreira de desenvolvedor de software e passar de engenheiro júnior a sênior, não apenas fazendo bem o seu trabalho, mas também colaborando ativamente com seus novos colegas de equipe, expressando suas ideias durante as reuniões de equipe e ajudando outros membros da equipe, se você puder.

Cenário 2: Você está em busca de uma recompensa maior

Não é segredo que o nível de salário depende não apenas da antiguidade, mas também das tecnologias com as quais os programadores trabalham. De acordo com a Stack Overflow Developer Survey 2019 , os desenvolvedores envolvidos em projetos centrados em dados, especialmente cientistas e engenheiros de dados, bem como profissionais de DevOps, ganham mais do que seus colegas de outras áreas especializadas com o mesmo nível de experiência.

Ao mesmo tempo, os desenvolvedores Clojure, Scala, Go, Rust e R recebem uma recompensa maior por seu trabalho em comparação com desenvolvedores PHP, Assembly e VBA com ainda mais anos de experiência. Essa disparidade pode ser um bom motivo para os programadores repensarem sua carreira de desenvolvimento de software.

Desta vez, o desafio é enfrentar as desvantagens das escolhas centradas na tecnologia.

Mesmo quando você se sente confiante em relação às novas tecnologias e entusiasmado para demonstrar suas novas habilidades, outra armadilha pode estar à sua espera ao longo do caminho. Sendo absorvidos pela programação, os desenvolvedores podem procurar uma oferta que se adapte de maneira ideal às suas expectativas tecnológicas, esquecendo que existem pessoas e processos por trás de cada tecnologia.

O exemplo de uma desenvolvedora que ingressou em uma nova empresa só porque podia lidar com seu Node.js favorito ali prova que a tecnologia por si só não garante a felicidade profissional.

O que fazer: explore os aspectos sociais.

Aprender mais sobre a empresa, seus funcionários e seus fluxos de trabalho internos é fundamental antes de assinar seu próximo contrato. Lembre-se de que o plano de carreira de um desenvolvedor de software depende muito do ambiente de trabalho, portanto, mesmo um conhecimento profundo não o ajudará se você estiver em conflito com sua equipe ou se sentir desconfortável em seu local de trabalho.

Cenário nº 3: Você se sente atraído por tecnologias emergentes

As tecnologias avançam e é impossível ficar longe dessa evolução emocionante. Os desenvolvedores que já começaram no desenvolvimento web podem mudar sua perspectiva de carreira de desenvolvedor de software e voltar sua atenção para domínios progressivos como inteligência artificial ou a Internet das coisas. Isso requer aprender novas linguagens de programação e estruturas.

Começar com tecnologias avançadas também pode ser uma maneira de os desenvolvedores ficarem à frente da concorrência e minimizar o risco pessoal de serem substituídos pela inteligência do computador.

Em 2016, até um terço dos desenvolvedores pesquisados expressou sua preocupação em perder seus empregos de desenvolvedor de software para a automação de IA. Hoje, os especialistas do setor não estão tão convencidos do potencial da IA ​​em substituir os desenvolvedores, mas falam sobre a IA como o principal assistente dos desenvolvedores.

No entanto, o advento da IA ​​ainda é um grande motivador para os especialistas em tecnologia compreenderem novas linguagens de programação e frameworks de ML .

Nesse cenário, o desafio é eliminar as lacunas de conhecimento.

Como mencionei antes, aprender novas tecnologias requer tempo. É por isso que muitos desenvolvedores de software começam a se preparar para uma nova posição com antecedência. No entanto, com mais frequência, os funcionários precisam se adaptar às novas funções em trânsito. Nesse caso, muito depende dos esforços dos desenvolvedores, suas habilidades de aprendizado e autodisciplina.

As organizações, entretanto, podem ajudar seus especialistas a mergulhar fundo em suas novas responsabilidades. Aqueles com processos de aprendizagem e gerenciamento de conhecimento estabelecidos, por exemplo, com o SharePoint como um sistema de gerenciamento de conhecimento em vigor ou um LMS bem gerenciado, podem oferecer conhecimento formalizado e conteúdo de aprendizagem para recém-chegados e acelerar sua adaptação.

O que fazer: se você planeja começar um novo emprego em uma nova empresa, pode perguntar sobre o aprendizado interno atual e o processo de gestão do conhecimento durante a entrevista. Se o seu futuro empregador não oferece nenhum treinamento de desenvolvimento de software nem oferece suporte à transferência de conhecimento entre os funcionários, você saberá que pode contar apenas com seu próprio esforço para dominar a nova tecnologia e se tornar parte de um novo projeto.

Cenário nº 4: você deseja abandonar a codificação pura

Alguns desenvolvedores de software acham a codificação muito atraente e envolvente, mas ao mesmo tempo estressante, desafiador e exaustivo. É por isso que, mesmo após anos de prática ativa de desenvolvimento, os especialistas podem se sentir desapontados com a codificação em si, com o processo de desenvolvimento, com suas equipes ou com a carreira de desenvolvedor de software como um todo.

Nesse cenário, os programadores podem decidir atualizar suas habilidades pessoais e sair da codificação pura em favor de áreas de desenvolvimento de software mais orientadas para o cliente, como arquitetura e design de software, gerenciamento de vendas, negócios e desenvolvimento, P&D ou análise de negócios.

Aqui, o desafio é superar a carga e a pressão extras.

Poucos profissionais maduros parariam de trabalhar para poder dedicar todo o seu tempo à autoeducação antes de ingressar em um projeto em uma nova função.

Levando em consideração que aprender o básico de uma nova profissão pode levar vários meses, os desenvolvedores geralmente precisam combinar trabalho e aprendizado, o que significa cansaço extra e maior risco de queimar-se. Também significa assumir novas tarefas e deveres, mesmo que você não tenha 100% de certeza de que se encaixa perfeitamente neles.

“Quando minha última tarefa como desenvolvedor de back-end terminou, meu gerente me abordou com uma tarefa. Uma grande empresa de telecomunicações estava construindo um aplicativo e seu arquiteto havia acabado de se demitir da empresa. Eles precisavam de alguém rápido. Eu estava preocupado com minha falta de experiência na função de arquiteto, mas o desafio era tentador. No final, eu disse que sim ”, disse Karl Eriksson, um desenvolvedor de back-end que decidiu se tornar um arquiteto de software.

Ao mudar para novas tecnologias, os especialistas precisam se adaptar a um novo ambiente de trabalho, diferentes fluxos de trabalho de projeto e novas equipes. Se você for rebaixado, também haverá uma grande chance de ser gerenciado por líderes de equipe mais jovens, o que também aumenta a pressão psicológica.

O que fazer: comece a aprender em um ambiente familiar.

É razoável começar a aprender um novo assunto antes de mudar de local de trabalho. Adicionar algum aprendizado ao seu dia de trabalho padrão em uma empresa ou equipe que você conhece bem é menos doloroso do que tentar aprender e assimilar ao mesmo tempo. Além do mais, o estresse de lidar com novas tecnologias e ambientes pode levar a resultados ruins. Em um local de trabalho familiar, porém, você pode fazer seu trabalho bem e aprender com eficiência.

A questão principal é “Por quê?”

Os desenvolvedores de software podem ter vários objetivos de carreira. Alguns funcionam porque são divertidos e adoram tecnologias. Alguns escolhem o desenvolvimento de software para encontrar estabilidade financeira. Outros querem chegar ao topo da carreira passando de especialista júnior a CTO.

Antes de tomar a decisão determinada de escolher um novo plano de carreira, vale a pena pensar por que você deseja fazer isso e como essa mudança pode ajudá-lo a atingir seus principais objetivos de carreira. Saltar entre posições e tecnologias porque você fica entediado rapidamente pode não ser a melhor estratégia.

Ao mesmo tempo, se você entender que atingiu o limite máximo enquanto seu potencial é muito maior do que seu domínio profissional atual pode oferecer, é razoável aceitar esse desafio.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *