sábado, 21 de dezembro de 2019

Como evoluir na carreira de Engenharia de Software



#EngenhariaDeSoftware #carreira #empregos #postura

Então, você quer fazer uma carreira bem sucedida em Engenharia de Software. Mas, o que significa exatamente "bem sucedida"? Talvez seja trabalhar em boas empresas, com boa remuneração e pacote de benefícios, evitando o desemprego. Alguns podem considerar que seja trabalhar no exterior. De qualquer forma, isso não envolve necessariamente ser gestor, pois aí já seria uma carreira diferente.




Eu posso lhe ajudar. Por que? Bem, para começar, tenho mais de 40 anos de carreira, trabalhando como desenvolvedor de software, e já passei por muitas empresas, tendo, inclusive, trabalhado nos Estados Unidos e Europa. Eu sei que alguns podem me considerar "ultrapassado", mas garanto que sempre procurei estar no "topo da cadeia alimentar" de tecnologia, e me considero bem antenado com as novidades da área. Aliás, este é o primeiro conselho que lhe dou.

O que você precisa ter?

Nem vou discutir aqui a questão da vocação. Se lhe interessa fazer uma carreira de Engenharia de Software, provavelmente você a tem. Mas sim. É preciso ter vocação para trabalhar nessa área. Muitos a procuram só por dinheiro ou por "status", e acabam "quebrando a cara" ao realizar que não possuem a vocação necessária. Mas este não é o seu caso, certo?

Só digo uma coisa: tem que apreciar STEM (Ciência, Tecnologia, Engenharia e Matemática) e ter gosto pelo estudo.

Para ter uma boa carreira de Engenharia de Software e Tecnologia da Informação, existem requisitos obrigatórios. Para começar:

  • Inglês funcional. Saber ler, escrever e se comunicar em inglês;
  • Curso superior. Um curso de graduação completo, de preferência nas áreas STEM. E não. Não adianta graduação em direito ou psicologia.

Os recrutadores modernos utilizam sistemas de IA (Inteligência Artificial) capazes de filtrar candidatos sem sequer lhes dar uma segunda oportunidade. E esses dois requisitos são absolutamente obrigatórios e inegociáveis. Por exemplo, nada adianta falar Francês, se não tem o Inglês, assim como nada adianta ser PHD em Educação, se não tiver uma graduação em área correlata.

E tem mais! Esses requisitos vem sendo tratados de forma "binária". O que isso quer dizer? Bom, se você é da área, já sabe. Tem / Não tem. Pouco significa ter estudado Inglês em Cambridge ou ter feito faculdade no MIT. Isso não garantirá a sua contratação (pelo contrário). O que importa são os adicionais.

O que você precisa demonstrar?

Por "adicionais" entenda as coisas que você precisa demonstrar aos recrutadores. Para começar, a sua determinação em evoluir na carreira. Sim. Demonstrar que não está simplesmente parada ou parado, vendo o "Sol se por".

Uma boa maneira é possuir alguma educação acadêmica avançada, tipo uma pós graduação. Mais uma vez, tem que ser um curso relacionado à área de Engenharia De Software e Tecnologia da Informação. E aqui, não é só "binário". Tem que ser um curso atual e em uma boa instituição. Pode ser latu sensu, Mestrado ou Doutorado. Mas, na verdade, estes dois últimos podem atrapalhar sua carreira. Por que? Porque indicam que você tem outra carreira: a de professor, e isso pode criar conflitos.

Mas pós graduações são cursos caros e de longa duração, portanto, podem ficar obsoletos em pouco tempo. E, além do mais, você não pode se dar ao luxo de cursar uma pós a cada dois anos. Neste caso, cursos livres e certificações podem ser muito importantes.

Quais certificações?

Há 5 anos eu diria para tirar 3 certificações básicas:
  • Java Programmer;
  • CAPM ou PMP, uma certificação em gestão de projetos;
  • Linux Essentials, ou qualquer certificação em Sistemas Operacionais;

Mas, como eu disse, isso era há 5 anos. Hoje em dia, as coisas mudaram. Eu recomendaria:

  • Java Programmer;
  • Python PCEP ou PCAP;
  • Scrum (Professional Scrum Dev ou Scrum master)
  • Cloud (AWS, Google Cloud ou Azure);

Java continua em primeiro lugar na lista TIOBE, e python é o terceiro. Mas não considero que valha a pena investir em certificações avançadas. É melhor horizontalizar. Scrum nem tenho o que dizer além de: está na moda, e o negócio agora é nuvem. Conceitos como Serverless e FaaS (http://faas.guru) dominarão o mercado nos próximos anos.

Mas, não bastam certificações. São como as pós graduações, ou seja, custosas e demoradas, e nem todas valem a pena. Então, existe o "networking", baseado nas relações com a Comunidade de desenvolvedores.

Responder perguntas no Stackoverflow, lhe dará "badges", ou credenciais importantes, reconhecidas e o melhor: gratuitas! Participar ativamente em projetos Open source, no Github, demonstrará o seu interesse e capacidade de trabalho, seja corrigindo bugs, documentando ou até criando novos projetos.

Pode ter certeza que as IAs dos recrutadores pesquisam isso.

Como se preparar

Se você está pensando em procurar emprego, saiba que as melhores oportunidades possuem um processo de seleção muito rígido. Essa coisa de entregar um currículo "caô" e bater papo com uma pessoa só, já era!

Hoje, a seleção é automatizada, e muitas entrevistas incluem o "code challenge", que é um desafio online e assistido de programação. Já participou de um destes? Cara, não importa o quanto você saiba, vai "amarelar". É muito difícil codificar algo, do zero, sem IDE e com os outros fazendo comentários.

Sites como o C0dility ou o HackerRank (http://hackerrank.com) possuem kits de desenvolvimento de skills e de preparação para entrevistas e "code challenges", que lhe ajudarão muito.

O HackerRank inclusive tem preparações como: "Language skills" e "Problem solving" que vão lhe dando "badges" de forma gratuita, e podem ser consultados por recrutadores.

Cleuton Sampaio, M.Sc.

Nenhum comentário:

Postar um comentário