Respostas curtas
O que um engenheiro de software realmente faz o dia todo?
A maioria dos dias é dividida entre escrever novo código, ler o código de outras pessoas durante a revisão, corrigir bugs e conversar com colegas de equipe sobre o que construir a seguir. Reuniões, planejamento e orientação ocupam mais tempo do que os recém-chegados esperam. Um engenheiro sênior geralmente escreve menos código pessoalmente do que um engenheiro júnior, gastando mais tempo em decisões de design, revisões e desbloqueio de outros.
Preciso de um diploma de ciência da computação para me tornar um engenheiro de software?
Não, mas continua sendo a rota mais comum e de menor atrito. Um diploma de quatro anos ensina algoritmos, estruturas de dados e conceitos de sistemas que são caros para aprender no trabalho. Graduados do Bootcamp e engenheiros autodidatas são contratados, especialmente por empresas menores, mas geralmente precisam de um portfólio forte ou de trabalho de código aberto para substituir a credencial.
A engenharia de software está em risco devido à IA?
Partes disso já estão. As ferramentas integradas aos editores de código modernos agora escrevem uma grande parte do código de rotina – clichê, testes de primeiro rascunho, traduções entre idiomas – para engenheiros que as utilizam regularmente. O que é muito mais difícil de automatizar é decidir o que construir, por que e como um sistema deve ser moldado para sobreviver ao contato com usuários reais e ao fracasso.
Quanto ganham os engenheiros de software?
Varia enormemente de acordo com o país e a empresa. Nos Estados Unidos, a mediana é de cerca de 133 mil dólares por ano; na Alemanha, cerca de 69.000 euros; na Índia, onde a indústria emprega mais pessoas, a média nacional está próxima de ₹ 900.000. Engenheiros seniores e de equipe em grandes empresas de tecnologia podem ganhar várias vezes a mediana nacional, uma vez incluída a remuneração em ações.
Qual é a diferença entre um engenheiro de software, um programador e um desenvolvedor?
Na prática, pouco — os títulos se sobrepõem e as empresas os utilizam de forma inconsistente. 'Programador' é o termo mais antigo e enfatiza a escrita de código; 'desenvolvedor' é comum em empresas de web e produtos; 'engenheiro de software' baseia-se na ideia de aplicar processos, testes e design disciplinados, emprestados de campos de engenharia mais antigos, à construção de software. As descrições de cargos raramente os distinguem de forma consistente.
Uma entrevista de codificação é realmente necessária para ser contratado?
Na maioria das empresas de tecnologia estabelecidas, sim: uma entrevista técnica ao vivo ou para levar para casa, muitas vezes envolvendo problemas de algoritmos num documento ou quadro branco partilhado, continua a ser o filtro padrão, juntamente com uma ronda de design de sistema para cargos mais seniores. Empresas menores e startups são mais propensas a substituí-las por um projeto experimental pago, uma revisão de portfólio ou uma conversa sobre trabalhos anteriores.