Engenharia de software: precisa de faculdade?

Postado originalmente no Dev na Gringa Substack. Assine se quiser receber futuros artigos por e-mail.


Eu me formei em Engenharia de Software em 2019 na PUC Minas.

E me lembro bem de uma das minhas primeiras aulas na faculdade, no primeiro período.

Foi com uma das minhas professoras favoritas, a Guta.

O tema era: a regulamentação da área de engenharia de software. Que determina se curso superior deve ser obrigatório ou não para exercer a profissão.

Naquela época, em 2016, estávamos na sala discutindo se a regulamentação da área deveria acontecer. Quais eram os pontos positivos e negativos.

Vamos falar sobre isto nesse artigo. Pontos positivos e negativos. Então já te adianto: não existe uma resposta binária se a faculdade é necessária ou não.

É um problema similar quando estamos projetando sistemas. Uma questão de trade-offs.

Desde 2018, a Engenharia de Software agora está regulamentada junto ao CREA. Isso quer dizer que, para exercer a profissão, é necessária a formação em curso superior.

Mas, mesmo para outras engenharias, sabemos que isso não acontece na prática. As empresas contratam pessoas como analistas com os mesmos requisitos do que engenheiros.

Eu trabalho como desenvolvedor desde 2016. E, até então, nunca vi alguma empresa exigir o diploma para exercer a profissão.

Já ouvi relatos existem empresas que exigem. Mas, não é estritamente necessário para conseguir seu trabalho na área.

Com isso, temos nossa primeira afirmativa. Você não precisa de faculdade para trabalhar como engenheiro de software.

A faculdade não é o único caminho para se tornar um engenheiro de software

Mas a resposta completa envolve outros fatores.

Vamos discutir primeiro por que você deveria considerar fazer faculdade.

Por que fazer faculdade?

Aprender como estudar. O curso superior na área de computação é desafiante. A taxa de desistência é maior do que em outras áreas: 38,5%.

Passar por essa experiência demonstra sua capacidade de aprender e se dedicar.

Conhecer futuros colegas de trabalho e mentores. Todos os meus professores impactaram minha carreira, de alguma forma. E, embora não tenha trabalhado por muito tempo com meus colegas, tenho respeito e admiração por todos. E sei que posso contar com a indicação de todos, assim como podem contar com a minha.

Aprender os fundamentos da computação. Algoritmos, estruturas de dados, redes, sistemas operacionais. Linguagens e stacks estão sempre mudando. Mas os fundamentos sempre serão relevantes. É a maneira mais rápida de conseguir se adaptar a qualquer cenário.

Participar de estágios. A maneira mais fácil de entrar no mercado profissional. Estágios, por lei, só podem ser realizados por estudantes. E costuma haver uma parceria entre a universidade e as empresas para facilitar a contratação.

Conhecer as diversas áreas para se trabalhar com computação. Você pode querer ir para a academia. Fazer concurso público. Trabalhar na iniciativa privada.

E, em qualquer uma delas, existem diversas áreas diferentes. Desenvolvimento web. Sistemas embarcados. Computação de alta performance. Inteligência artificial.

Você nunca realmente sabe onde sua carreira irá te levar. Vou dar um exemplo da minha noiva, Iara. Ela começou sua carreira com a certeza de que seria desenvolvedora Android.

Foi o tema principal do seu primeiro estágio como dev, e do emprego como CLT também. Seu cargo era Desenvolvedora Android.

Mas, hoje em dia, ela é Engenheira de Software Sênior programando em Clojure para ser convertido em Flutter 🤯. Sim, é uma arquitetura peculiar e muito interessante. Tem vontade de saber mais? Me ajude a convencê-la de escrever um artigo aqui com mais detalhes comentando. E compartilhando para quem você acha que vai ser interessante.

A faculdade é um ótimo período para se ter uma experiência ampla em tudo que a computação tem para oferecer. E tentar descobrir o que lhe agrada mais.

Porque, isso te ajuda a encontrar um método de trapacear sua carreira: encontrar alguma área que você goste. De modo que o trabalho se torne algo que você se sinta inspirado para fazer.

E isso é uma vantagem injusta contra todos os outros que estão no mercado por motivações diferentes. Não que uma seja melhor que a outra. Mas buscar melhorar seu craftsmanship em algo que gosta irá te deixar mais motivado. E te levará a ter um maior impacto em qualquer indústria que você se dedicar.

E te levará a ter um maior impacto em qualquer indústria que você se dedicar.

Por que não fazer faculdade?

Sim, existem várias vantagens de se fazer faculdade.

Isso não quer dizer que ela é uma bala de prata. Afinal de contas, isso não existe.

Se você já tem outras responsabilidades, e não tem o tempo para se dedicar, a faculdade se torna uma opção difícil. O curso não é fácil. Eu vi muitas pessoas que estudaram comigo desistirem nos primeiros semestres. Ter os 2-4 anos de tempo necessário para concluir pode não ser possível também.

É possível que você não tenha bons colegas ou professores. O que já perde um dos principais benefícios que falamos na seção anterior.

É comum dizer que aprendemos realmente a exercer a profissão no mercado de trabalho. E isso é verdade. A faculdade tenta o seu melhor. Mas é uma missão difícil replicar a engenharia de software na sala de aula.

Se você já tem os conhecimentos necessários, e possui uma boa rede para conseguir entrevistas, a faculdade pode não valer o seu tempo.

Considerações finais

Eu acho que a faculdade vale a pena. Se você tem a oportunidade de poder fazer e se dedicar.

Tentei detalhar todos os ganhos possíveis que você tem com a faculdade. Talvez tenha esquecido alguns, mas esses foram os principais pra mim.

Existem, sim, empresas que contratam apenas trabalhadores com curso superior.

No entanto, também temos muitas histórias de sucesso de desenvolvedores autodidatas. E eu acho que isso é algo incrível. A engenharia de software é uma atividade que se beneficia muito de um ambiente diverso.

Nós construímos software para o mundo todo. É importante a equipe que tenha empatia pelos nossos usuários, de todas as possíveis origens.

E a computação é uma área com um imenso débito de diversidade.

O número de mulheres fazendo ciência da computação desceu muito nas últimas décadas.

Esse é um assunto que requer o seu próprio artigo. Mas eu queria também deixar uma mensagem sobre isso aqui.

Se você tem interesse em trabalhar com engenharia de software, saiba que gênero, raça, orientação sexual e idade não influenciam sua habilidade.

É uma chance maior que fatores humanos afastam outras pessoas da engenharia de software. Uma área que é desafiante, mas incrivelmente recompensadora.

Como engenheiros de software, construímos sistemas que estão engolindo o mundo.

E, pra mim, a principal motivação é poder ter um impacto na vida de milhares de pessoas.

Software é extremamente escalável. A Internet tornou sua distribuição trivial.

Qual a maneira mais linear para se tornar um engenheiro de software? Eu acho que é fazer faculdade. E tomar vantagem de tudo que ela tem para oferecer.

Mas, se você não puder, também procure por caminhos alternativos. Cursos de pós-graduação. Estudos por conta própria.

O importante é estar buscando sempre aperfeiçoar sua maestria, um pouco a cada dia.

Programe. Faça projetos. Resolva problemas para aqueles que estão ao seu redor.

Pois essa é a verdadeira essência da engenharia de software.

Concordo com quase tudo, porém há um muito etarismo na área, ainda ser ver tecnologia como algo de jovens. Eu já sofri e sofro etarismo nos processos seletivos

É uma questão difícil mesmo. O meu sogro é desenvolvedor também, e já tem 60+. Ele foi demitido há uns 2 anos, e só agora que conseguiu uma recolocação. Sinto muito que tenha passado por isso. Espero que mais pessoas se concientizem com essa questão de diversidade, pq é um problema sério

Estou no segundo ano da faculdade de Ciência da Computação, estava relutante em entrar pra fazer um curso superior na àrea, até que eu percebi que essa seria a única forma de entrar no mercado de trabalho aqui nos EUA. Acredito que as Universidades te fornecem imensas oportunidades de Network e além disso, como citado, a base relacionada a Estrutura de Dados e Algotimos é fundamental para o programador. Semana que vem começo meu primeiro estagio na àrea como IOS DEV, esse ponto sobre o acesso a estágios é fundamental também, toda universidade tem um Career Center que te ajuda a conseguir os Estágios, focando nos seus objetivos como futuro programador.

Obrigado pelo post. Lucas Lisboa

Acho que você fez uma excelente decisão. Sucesso no estágio e volta pra compartilhar a experiência de como está sendo!

Na minha experiência no mercado de trabalho, ter um diploma universitário em qualquer ciência exata — seja matemática pura, física, química ou engenharias e etc. — faz uma GRANDE diferença. Não se trata apenas de possuir um diploma em ciência da computação. O que realmente beneficia os indivíduos é a sólida base em resolução de problemas com lógica, rigor e formalismos, adquirida em todas estas disciplinas.

Pelo que observo entre os colegas, aqueles com tais formações educacionais não ficam atrás daqueles com diplomas formais em ciência da computação ao enfrentar desafios técnicos complexos. Por outro lado, aqueles sem essa base da matemática "superior" sólida tendem a lutar e "patinar" não importa o quanto se dediquem.

Tenho 14 anos de profissão, 2 deles em empresas brasileiras e o restante trabalhando pra fora. Nenhuma delas nunca exigiu diploma. Lembro-me do on onboarding em um dos maiores produtos em que trabalhei,na Blackboard, 150 Milhões de usuários ao redor do mundo, simplesmente insano, na apresentação eles pediram para falar sobre como e quando voce entrou na area e 70% dos novos candidatos tinha outra formação, achei aquilo fantástico. Você precisa aprender de alguma forma, é uma área extremamente inclusiva onde a experiência contribui demais com a formação do indivíduo. Também tenho wue mencionar que trabalhei 6 anos na Siemens com kernel para sistemas embarcados e nenhum candidato, NENHUM, passou sem ter tido formação acadêmica. Alguns entrevistados tinham conhecimento de C mas não sabiam, por exemplo, lidar com registradores de maneira satisfatória. Basicamente, a area é extremamente ampla e tem lugar sobrando, mas a formação permite ir além, ou te da acesso de maneira mais rápida, te permite fazer algo diferente ou, de maneira simplória, te dá o empurrão e o networking necessário para um passo gigantesco pois o início sem experiência e apenas com bootcamps no currículo será árduo.

Eu acho que a formação acadêmica é o caminho para a grande maioria das pessoas. Porque te a orientação necessária pra poder escolher qualquer área. Sem ela, é um desafio muito grande conseguir separar o que é só barulho vs o que é realmente necessário. Só com uma experiência (e maldade) maior você consegue fazer isso. E muita gente não tem isso no começo, especialmente se não tiver uma mentoria mais dedicada de alguém com mais exp. Algo que vc consegue na faculdade Obrigado pela contribuição!
sim, com certeza. O processo de formação academica, também é muito interessante na construção do profissional no sentido de criar resiliência, prepara para trabalhar com prazos e em equipe. Não é o modelo perfeito, mas é o mais completo. Vale mencionar que profissionais sem formação acabam se sujeitando a ambientes de trabalho insalubres em busca de experiência. No entanto o acadêmico precisa aproveitar ao máximo o contato com o corpo docente e a troca de experiência com os colegas, esse é o maior diferencial e se torna um grande atalho. Eu nao sei como cheguei aqui, mas sinto falta dessas discussões que formam a base, o pessoal está muito preocupado em relação a qual framework da moda usar e estamos esquecendo de criar conteudo para ajudar na tomada de decisão em relação a "o que vou ser e como vou fazer para chegar lá". O que eu sinto que é um gap gigantesco, independente de formacao academica pois é algo transcendente é o domínio da língua inglesa, mas é assunto para oitro tópico.

esse curso te deu direito ao CREA? to fazendo o mesmo curso , porem, em pos-graduação!

Eu não sei dizer viu 😅 descobri essa questão do CREA só durante a pesquisa que fiz pra escrever esse artigo. Não tenho CREA e não conheço ninguém que tenha também que formou comigo

Tenho 17 anos e tenho muito interesse na área, pretendo fazer Enem nesse ano para tentar passar em uma federal, a UFRGS. minha ideia é fazer ciência da computação e depois, a princípio engenharia de software, mas com a ciencia da computação acho que vai abrir meu leque de conhecimento e vou poder escolher de fato qual carreira pretendo seguir.

Ciências da Computação é um curso fantastico e extremamente completo. Os melhores profissionais com quem trabalhei no Brasil e nos EUA atialmente tem essa formação. Na minha opinião nao faz sentido fazer BCC e depois Engenharia de Software, te diria para pesquisar as peculiaridades de cada um mas te adianto que um cientista vai afundo no âmago, foca em solucoes e desenvolvimento de soluções computacionais, a maneira como um cientista analisa, enxerga e projeta os sistemas foca muito no aspecto computacional ao qual estara ligado, ao passo que o engenheiro foca mais na solução do problema a nivel organizacional. No fundo, ambos farão praticamente parte do mesmo ecossistema no ambiente de trabalho.
acho que é uma escolha excelente. Ciência da Computação é um curso muito completo, que vai te dar o leque para atuar em qualquer área. Engenharia de Software você consegue aprender rapidamente também no trabalho. Quando você formar vai saber melhor, mas não necessariamente você precisa de mais educação formal depois que já estiver trabalhando. Não que não seja uma boa também. Mas eu acho que estar numa empresa que dá suporte pro seu crescimento, que você está aprendendo muito, provavelmente é uma pedida melhor. Aprender no trabalho mesmo.