A engenharia de software é uma área profissional em ascensão tanto no País quanto internacionalmente. Com investimentos de cerca de 2,3% do PIB em 2019, o Brasil respondeu por 1,8% do mercado global e lidera na América Latina, representando 40,7% do setor.
Sem tempo para ler? Clique no play abaixo para ouvir esse conteúdo.
Internamente, o crescimento foi de 10,5%, sendo também responsável por movimentar de R$ 161,7 bilhões (US$ 44,3 bilhões) na economia. Esses dados fazem parte do estudo “Mercado Brasileiro de Software: Panorama e Tendências 2020”, publicado pela Associação Brasileira das Empresas de Software (ABES).
Ainda que o mercado esteja aumentando, a Associação para a Promoção da Excelência do Software (Softex) apontou que o País poderia ter carência de mais de 400 mil profissionais de TI em 2020. Dentre as trabalhadores em falta estão os profissionais que trabalham com engenharia de software, área à qual 8,2 bilhões de dólares do investimento total foram destinados nos anos analisados.
Profissão de engenheiro de software
Com cada vez mais empresas automatizando seus serviços e criando suas próprias plataformas digitais, a profissão de engenheiro de software foi considerada a 2ª melhor da área de TI em crescimento e remuneração, segundo o site especializado em carreiras de tecnologia, CareerCast.
O software consiste na “parte lógica” do computador, que inclui sistema operacional e programas. Então, basicamente, estes profissionais projetam e guiam o desenvolvimento de programas, aplicativos e sistemas, de forma que atendam aos requisitos e cumpram as funções determinadas.
Entre as principais atribuições do engenheiro de software, estão:
- Desenvolver softwares e apps
- Gerenciar projetos ligados aos softwares
- Arquitetar o design estrutural dos programas
- Realizar testes nos sistemas
Além destas, estes engenheiros podem ter funções ligadas à administração de bancos de dados, manutenção dos sistemas e até algumas de documentação, relacionadas à gestão de projetos e à composição dos manuais de instruções.
Formação para atuar em engenharia de software
Além dos cursos de Engenharia de Software, os de Ciências da Computação também capacitam profissionais para atuarem neste mercado. No entanto, há diferenças entre os dois tipos de formação.
Enquanto os engenheiros aprendem sobre os processos envolvidos em desenvolver e manter programas, os cientistas da computação têm estudos mais focados na teoria, ligados à modelos matemáticos, algoritmos e lógica dos processos.
Leia mais: 10 opções de carreira em tecnologia para quem quer trabalhar na área
Também não é o mesmo do que ser um engenheiro de computação, que são responsáveis, principalmente, pelo hardware – ou seja, projetar e construir computadores.
A duração média dos cursos de Engenharia de Software, atualmente oferecidos por universidades públicas e privadas, é de 4 anos. Entre os principais assuntos abordados estão: engenharia, matemática, arquitetura e gerenciamento de softwares e gestão de projetos.
Certificação para exercer a profissão em engenharia de software
Desde maio de 2018, a profissão de engenheiro de software é regulamentada. Atualmente, para ser registrado junto ao CREA (Conselho Regional de Engenharia e Agronomia) é obrigatório ter formação em Engenharia de Software.
Nesse contexto, tendo outras graduações, mesmo com as competências necessárias para exercer a função, o profissional pode não ser considerado para empregos em que o registro é um dos requisitos. Além disso, no site do CREA do seu estado é possível conferir o passo a passo para se registrar.
Melhores faculdades de Engenharia de Software do mundo
O mais recente ranking do Center for World University Rankings (CWUR), que classifica universidades por áreas de estudo, apontou em 2017 as melhores faculdades de Engenharia de Software – que disponibilizam cursos de graduação e pós-graduação, entre outras modalidades de ensino.
Leia também: Assista painéis de conteúdo sobre tecnologias em alta e carreiras no setor
Confira o ranking a seguir:
- Universidade Stanford – Estados Unidos
- Instituto de Tecnologia de Massachusetts (MIT) – Estados Unidos
- Universidade Tsinghua – China
- Instituto Federal de Tecnologia de Zurique (ETHZ) – Suíça
- Universidade de Zhejiang – China
- Universidade Carnegie Mellon – Estados Unidos
- Nanyang Technological University – Singapura
- Instituto de Tecnologia da Geórgia – Estados Unidos
- Universidade da Califórnia – Estados Unidos
- Universidade da Colúmbia Britânica – Canadá
Quer conquistar uma bolsa de estudos para graduação ou pós na faculdade dos seus sonhos?
Inscreva-se no Programa Líderes Estudar até 5 de abril!
Habilidades para exercer a profissão de engenheiro de software
Ainda que a programação não seja o foco principal da Engenharia de Software, é necessário conhecer as linguagens mais utilizadas – como JavaScript, Visual Basic, Python, C++, C# -, e seu funcionamento.
Da mesma forma, habilidades matemáticas são necessárias. Estes engenheiros, frequentemente, precisam criar algoritmos matemáticos – instruções das operações descritas “passo a passo”.
Para facilitar o trabalho com softwares, os profissionais podem empregar uma série de ferramentas. Entre elas Ambientes de Desenvolvimento Integrado (IDE, do inglês Integrated Development Environment), que agilizam o processo de escrever códigos.
Além de mexer com as IDE, precisam saber utilizar ferramentas de teste automatizadas e bibliotecas de código aberto, que oferecem as funcionalidades prontas, diminuindo o trabalho de desenvolvê-las. Visto muitos sistemas de software atuais interagirem com bancos de dados, o engenheiro de software também precisa ser capaz de administrá-los.
Por fim, embora as graduações abordem estes conteúdos, o entendimento de boa parte deles pode ser aprofundado por conta própria.
Profissionais da Engenharia de Software dão conselhos para quem está iniciando (ou pretende)
# Frederico B. Emídio, gerente de Engenharia de Software do Itaú Unibanco:
“Se eu pudesse dar uma dica para quem está começando no mercado de Engenharia de Software agora, seria essa: não busque terminar os estudos! Afinal, com desenvolvimento de software, o conhecimento nunca está atualizado.
Pois sempre há algo novo para aprender e estudar. Por isso, é essencial que você goste do tema e esteja realmente inserido no mundo de tecnologia, através de canais, blogs e livros. Além disso, para facilitar o aprendizado constante, é essencial buscar aprender os fundamentos, e não apenas a nova linguagem ou framework da moda.
Com fundamentos como algoritmos, design Patterns, conceitos de Arquitetura, entre outros, a linguagem que você vai escolher pode ser qualquer uma – e o sucesso será uma questão de tempo!”
# Isabella Gomes, coordenadora de Engenharia de Software (Canais Digitais) do Itaú Unibanco:
“Para quem está interessado em entrar na área de tecnologia, é importante saber que ela é bastante dinâmica e que requer estudo constante. A pessoa precisa se manter atualizada em relação a tecnologias modernas, boas práticas, modelos de trabalho e tendências no mercado.
É importante estar disposto a conhecer coisas diversas e ter um perfil autodidata, buscando o conhecimento de diversas formas que vão desde o estudo formal. Cursando, por exemplo, uma faculdade até a participação de meetups, bootcamps, leitura de artigos, escutar podscasts, fazer cursos online etc.
No início da carreira é muito importante buscar oportunidades que proporcionem o conhecimento prático, isso pode ocorrer em um trabalho convencional, estágio, participando de hackathons ou desafios online. Essas experiências práticas ajudam a construir um portfólio que demonstra a abrangência e profundidade técnica que a pessoa vai desenvolvendo ao longo de sua carreira.
Leia mais: Segurança da informação: entenda a alta demanda por profissionais de cibersegurança
A área de tecnologia apresenta uma escassez de mão de obra qualificada, o que faz com que as pessoas troquem de emprego em intervalos mais curtos e se reencontrem em outras oportunidades. Assim, ser colaborativo, compartilhar conhecimento e manter um networking também são características relevantes.
Se possível, ter um mentor, alguém que inspire e ajude no desenvolvimento da carreira. No futuro, ser também o mentor de alguém. Por fim, e não menos importante, fazer tudo isso mantendo o equilíbrio com a vida pessoal. Ela não é menos importante que a vida profissional e com certeza terá muita influência na carreira.”
# Jackson Silva, engenheiro de Software na consultoria Everis:
“Quando comecei, em 2009, tive muita dificuldade em conhecer pessoas com mais experiência para me mentorear – pois poucos seniores se disponibilizam para tal tarefa. Sempre procure os experientes, pois além de oferecer o conhecimento, podem agregar a sua rede de contatos. Contato é muito importante quando falamos de tecnologia da informação.
Tenho algumas dicas para quem está nesse estágio e podemos começar pelo estudo. Gostar de pesquisar sobre os assuntos da área é importantíssimo, pois mesmo você não sabendo a fundo uma tecnologia, você vai saber para qual funcionalidade ela foi desenvolvida. Isso te coloca a frente de outras pessoas que não fazem o mesmo e mostra o seu interesse em se manter informado. Não se esqueça de estudar bem o básico, como estrutura de dados. Isso faz a diferença!
A segunda dica é colocar em prática os projetos que você acha que consegue desenvolver, nem que seja uma calculadora ou um jogo da velha – sempre desenvolvendo com ferramentas que você encontrou durante os estudos. Isso te traz experiência e mantêm seu Github atualizado, agregando ao seu currículo.
Leia mais: 5 mulheres que impactaram o mundo da tecnologia (e poucos sabem!)
Outra dica boa é sempre fazer os desafios de sites como o HackerRank. Isso trabalha bem assuntos relevantes como estrutura de dados, banco de dados, lógica etc. Muitos entrevistadores utilizam essas plataformas para aplicar os testes.
Por último, se valorize! Cuidado para não aceitar um salário abaixo do que você entrega. Lembre-se que você estudou muito para desempenhar uma função e o investimento deve ter retorno.”
# Lucas Marinho, gerente de Engenharia de Software no Grupo SBF:
“Ser curioso e apaixonado por problemas, sentir-se realizado quando conseguir resolvê-los, é essencial para o sucesso nesta trilha. Um engenheiro de software tem que olhar para o seu trabalho tendo em mente e em foco o problema. Ou seja, começar pelo porquê e, somente depois pensar, no como.
Estudar sempre, mantendo-se atualizado seja com bibliografias, podcasts e vídeos (muitos disponíveis na web gratuitamente e com qualidade). E SEMPRE se desafiar! Nunca esteja confortável com o que você já sabe.
Além disso, seja ativo nas comunidades de desenvolvimento e Engenharia de Software. Seja um consumidor voraz, mas muito focado, de conteúdos de tecnologia. Mas, acima de tudo, curta a jornada.”
# Luane Fernandes, analista de Engenharia de Software do Itaú Unibanco:
“Vindo de arquitetura e urbanismo para a tecnologia, posso afirmar que o que fez diferença para embarcar na área foi o foco nos estudos. Temos hoje um mercado precisando de profissionais qualificados e o que diferencia uma pessoa da outra na hora de buscar uma boa colocação e carreira, é a dedicação para estudar e o quão longe vamos.
Temos várias plataformas gratuitas de estudo, vários projetos voltados para inserção de jovens na tecnologia, e se souber usar essas ferramentas, com um bom portfólio de projetos é possível atingir muitos objetivos na carreira! E com a advinda da pandemia, novos modelos de trabalho estão sendo adotados.
Logo, além de foco nos estudos, é necessário desenvolver um perfil autodidata para ir atrás do que deseja, além de definir um cronograma diário de estudos para não deixar de lado as horas de lazer – que são muito importantes e necessárias para o aprendizado.”
Leia mais: Confira as vagas abertas em startups e empresas de tecnologia
# Paulo César Nascimento, coordenador de Engenharia de Software do PagSeguro:
“Eu comecei na área com duas atividades: suporte ao usuário e como instrutor de informática. Inclusive, acredito que a maioria das pessoas que fazem a imersão no mundo da tecnologia da informação ou engenharia de software começa pelo suporte.
Normalmente, quando eu sou procurado por quem está querendo ingressar no mercado, eu sempre faço a seguinte pergunta: o que você gosta? Possíveis respostas: tecnologia, construir coisas, fazer funcionalidades e ‘arrumar’ computador.
Com base nessas respostas, traço um perfil e direciono a pessoa para o cargo ou estudo correspondente. Por exemplo, a pessoa que respondeu “fazer funcionalidades e construir coisas”, essas respostas têm por característica de ser desenvolvedor (nomenclatura antiga) – que nada mais é que o Engenheiro de Software.
Vale apontar também a jornada de aprendizado da Engenharia de Software:
1. Lógica de programação
Essa é a base de tudo e serve como termômetro para o candidato.
2. Estudar sobre arquitetura modelos
- Monolito;
- Micro serviços;
- Sistema reativos.
3. Aprender uma linguagem de programação para estudar
- C-Sharp;
- Java;
- PHP Go lang.
4. Aprender banco de dados
- Relacionais e não-relacionais
5. Conhecer as ferramentas abaixo
- Docker;
- Kafka;
- kubernets.
Que tal saber mais sobre essa carreira?
Já trouxemos aqui, em texto, algumas dicas de profissionais de Engenharia de Software para quem está iniciando ou pensa em dar os primeiros passos nesta área. Mas também temos uma plataforma em que a experiência de experts neste e em outros setores de tecnologia é compartilhada em vídeos curtos: a Wikitech. Nela, é possível navegar de maneira gratuita por esta carreira em ascensão e por outras do mercado digital. Acesse aqui a plataforma!