DEV Community

Wagner Mattei
Wagner Mattei

Posted on

Tudo que voce precisa saber sobre o futuro da engenharia de software

Precisamos encarar o fato de que está difícil conseguir o primeiro emprego na área de programação, e a ansiedade que isso gera em estudantes ou aspirantes a programadores não é saudável. Este artigo é minha tentativa de suavizar essa ansiedade, e sim, eu tenho muita experiência para falar sobre ansiedade (:

Disclaimer: Todo o conteúdo desse artigo pode ou pode não ter sido revelado à mim em um sonho. Levá-lo à serio é responsabilidade única do leitor.

Transformação da carreira de programador

Na segunda metade da década de 2010, a profissão de programador passou por uma transformação significativa, deixando de ser associada exclusivamente ao estereótipo de "nerdola" com poucas habilidades sociais para se tornar uma carreira respeitada e valorizada. O crescente impacto da tecnologia em todas as indústrias fez com que os programadores fossem vistos como profissionais extremamente necessários.

Com a alta demanda por suas habilidades, os salários dos programadores dispararam, o que resultou em uma mudança na percepção da profissão. Continuamos sendo "nerdolas" com poucas habilidades sociais, mas agora com uma remuneração atraente. Essa valorização financeira atraiu uma quantidade absurda de sonhadores que buscavam altos ganhos com menos esforço – um desejo que, embora não deva ser criticado, refletia a nova realidade do mercado de trabalho.

Essa corrida ao ouro atingiu seu ápice durante a pandemia, o mundo mudou, e toda vez que o mundo muda, novos softwares precisam ser desenvolvidos e antigos precisam ser adaptados. As empresas precisaram contratar o maior número possível de programadores para suprir a demanda que esses tempos malucos trouxeram, e a qualidade dessas contratações era um mero detalhe, qualquer programador que soubesse copiar o template de um site seria contratado.

Com o fim da pandemia, as coisas voltaram ao normal e ficamos com os "espólios de guerra". Uma geração de programadores que sabiam escrever código, mas não conheciam as nuances de criar um produto, não tinham noção de gestão de tempo, e frequentemente tinham conflitos com gerentes de projetos porque os memes no twitter os ensinaram a odiá-los, além de uma postura muitas vezes arrogante.

Essas atitudes, juntamente com a queda da demanda, levaram as empresas a evitarem contratar programadores com pouca experiência. Isso tornou cada vez mais difícil iniciar uma carreira na área. Em 2024, a ansiedade entre os estudantes e aspirantes a programador é palpável, o que me desperta um pouco de pena (não muita).

Para aumentar ainda mais essa ansiedade, grandes empresas de tecnologia investiram pesado em ferramentas que utilizam modelos de linguagem para fazer um chat bot que consegue escrever código (não muito bem), ameaçando mais ainda o futuro dos jovens programadores, ou pelo menos é isso que os lideres dessas grandes empresas estão dizendo.

Então eu resolvi escrever essa lista com algumas dicas que eu dou para iniciantes na área de programação, além de alguns insights de como eu vejo o futuro da industria.

Dicas para iniciantes

Não somos pagos para escrever código, e sim resolver problemas

Não sou o primeiro a dizer isso, e certamente não serei o último. Todo guru de tecnologia já mencionou essa ideia, embora possa parecer contra-intuitivo. Afinal, nossa principal habilidade é escrever código, certo? Na verdade, cada linha de código que escrevemos é uma consequência de não termos encontrado uma solução já existente. Escrever código deve ser o último recurso. Caso contrário, estaríamos constantemente reinventando a roda.

Em uma empresa de tecnologia, uma tarefa geralmente envolve um problema a ser resolvido, um motivo para resolvê-lo e uma forma de comprovar que foi resolvido. No entanto, muitos problemas já foram solucionados, e suas soluções estão disponíveis para uso. Por exemplo, digamos que você esteja desenvolvendo um sistema que exige autenticação de usuários com email e senha antes de qualquer operação. Como programador, você poderia passar o dia criando um algoritmo de criptografia para garantir a segurança do sistema. Mas alguém já fez isso antes, e esses algoritmos estão prontos para uso. Seu trabalho não é escrever o algoritmo, mas saber como integrá-lo ao restante do sistema, que também é composto por algoritmos escritos por outras pessoas.

Ninguém liga para o seu esforço

Essa frase também pode parecer contra-intuitiva, já que fomos ensinados que, se nos esforçarmos ao máximo, seremos reconhecidos por isso. Mas a indústria da tecnologia é mais fria do que isso; o que realmente importa são os resultados gerados pelo nosso esforço. Se for para passar a noite escrevendo código, garanta que, às 6:00 da manhã, tudo esteja funcionando.

Isso também vale para quem nunca teve um emprego. A quantidade de horas que você passa estudando sua linguagem de programação preferida ou fazendo exercícios no LeetCode é irrelevante para conseguir um emprego na área. FAÇA ALGUMA COISA. Aprenda Git, crie produtos para você mesmo, coloque-os no seu GitHub e mostre ao mundo o que você fez, independentemente do esforço envolvido. Se você não sabe o que fazer, faça qualquer coisa – não precisa ser algo novo. Refaça o Facebook, crie um aplicativo de calendário, faça um site com fotos do Nicolas Cage, não importa. Você está em busca de uma oportunidade, e os recrutadores querem saber o que você já fez, mesmo que não tenha sido pago por isso.

Nunca confie na palavra de alguém que está sendo pago pela sua confiança

Em uma corrida ao ouro, quem mais ganha dinheiro é quem vende as picaretas! Desde a pandemia, vendedores de cursos surgiram como abutres, prometendo resultados absurdos para seus alunos e explorando o desejo de se tornarem programadores.

Existem bons cursos de programação na internet, e talvez você deva comprar algum, mas se você está no começo e não sabe nem o que estudar, o que compraria? A primeira coisa que você precisa fazer é escolher um caminho dentro da indústria. Talvez seja redes, programação de baixo nível, desenvolvimento web, iOS ou Android, sistemas embarcados, cibersegurança, sistemas operacionais, jogos, computação gráfica, etc. Se você não tem ideia de onde começar, vai comprar um curso de cada área?

Esqueça os cursos por enquanto. Existe uma quantidade infinita de conteúdo gratuito sobre cada uma dessas áreas no YouTube. Você precisa explorar cada uma delas e não ter medo de desistir quando perceber que não gostou. Assim que encontrar uma área que você goste, aí sim pode ser a hora de comprar um curso em sites como Udemy. Mas certifique-se de que você realmente quer investir seu tempo e dinheiro nessa área.

Nunca confie em gurus de tecnologia que querem te vender um estilo de vida. Esses gurus geralmente não têm ideia do que estão falando, e quando têm, podem te alienar de um jeito que será difícil sair. Mantenha sempre uma mente aberta; a tecnologia que você gosta pode não ser ideal para todas as situações. Não tem nada pior que trabalhar com programadores que são apaixonados por uma linguagem ou paradigma de programação.

Destaque-se

Durante a pandemia, não era necessário ser um bom programador para conseguir um emprego. Felizmente, isso mudou, e agora, para ingressar na área, é preciso se destacar. Mas nunca foi tão fácil se destacar como programador júnior. Se você fizer o mínimo, já estará acima da média.

Para se destacar como programador júnior, minha primeira dica é: Assuma sempre que você não sabe de nada. Os cursos que você fez ou seu diploma na faculdade são muito menos relevantes que a experiência dos seus colegas. Você ainda não conquistou o direito de discordar de uma decisão do seu time. Seu papel como iniciante é aceitar as decisões que foram tomadas e fazer o seu melhor, mesmo que isso vá contra aquilo que você aprendeu.

Não confunda "discordar" com "questionar". Sempre questione tudo. Se seu time escolheu Java em vez de C#, você tem o direito de saber o motivo. Independentemente de quem tomou a decisão, você, como funcionário, pode questionar qualquer decisão que impacte seu trabalho, mesmo que venha do time de produto ou gestão. Pergunte, entenda, aceite e faça o necessário.

Aprenda a aprender

Infelizmente, você escolheu uma profissão que exige aprendizado contínuo. Decisões que tomei há seis meses já estão obsoletas, e hoje eu faria escolhas totalmente diferentes, pois muita coisa mudou nesse período.

Se você tentar aprender todas as novas linguagens, frameworks ou paradigmas que surgem, rapidamente descobrirá o significado de burnout. Por isso, é importante aprender a aprender. Por exemplo, eu não sei como funciona o NextJS e nunca o usei, embora seja um dos frameworks mais populares atualmente. Não me preocupo em aprender NextJS agora. Quando eu precisar dele, tirarei duas horas para ler a documentação oficial, entender as diferenças em relação a outros frameworks e decidir se é adequado para o problema que estou tentando resolver.

Consigo fazer isso porque sei como funciona um navegador, entendo o protocolo HTTP e como são feitas as chamadas de API. Sei onde costumam ocorrer gargalos ao servir conteúdo na internet. Não preciso de mais de duas horas lendo a documentação de um framework para entender se ele é ideal para resolver um problema específico. Esse conhecimento adquiri em oito anos como programador, e nada além da experiência poderia ter me proporcionado essa compreensão. No entanto, qualquer programador júnior pode acelerar esse processo estudando os conceitos básicos da computação.

Futuro da Programação

A era de ouro da programação está voltando. Mas, ao contrário da pandemia, quando altos salários e demanda descontrolada prevaleceram, agora estamos retornando a uma era onde o conhecimento profundo e habilidades avançadas serão valorizados.

Desafios Atuais

O hardware não evolui mais tão rapidamente, e a Lei de Moore já não se aplica como antes. A capacidade computacional está chegando a um platô, e as otimizações de hardware estão atingindo seus limites. As empresas de tecnologia estão cientes disso e precisam crescer sem depender apenas dos avanços em hardware.

O Papel dos Programadores

Com a estagnação do hardware, a responsabilidade de otimização está voltando para nós, programadores. Durante a última década, muitos de nós focamos mais em entregar funcionalidades rapidamente do que em escrever código eficiente. Isso era possível devido ao avanço constante do hardware, que permitia que a capacidade computacional aumentasse sem grandes preocupações com a eficiência do código.
No entanto, à medida que o hardware atinge seus limites, essa abordagem se torna insustentável. A otimização de software, que já foi uma habilidade essencial, vai voltar a ser crucial. Programadores terão que:

  • Escrever códigos eficientes que utilizem bem os recursos disponíveis.
  • Aproveitar múltiplos núcleos de processamento para melhorar o desempenho.
  • Gerenciar memória de forma eficaz para evitar desperdícios e gargalos.

Importância da Otimização

A era em que podíamos nos dar ao luxo de ignorar a eficiência do código está acabando. No início dos anos 2000, durante a bolha das .com, o hardware era caro e limitado. Programadores precisavam otimizar cada linha de código para garantir que seus softwares rodassem nas máquinas da época. Com o avanço do hardware e a chegada da cloud, essa necessidade diminuiu. Recursos de computação ficaram mais baratos, e o foco mudou para a entrega rápida de funcionalidades.
Agora, com o hardware atingindo um platô, a otimização volta a ser uma prioridade. Programadores precisarão entender profundamente como seus códigos funcionam em nível de hardware para criar software eficiente.

Preparação para o Futuro

Os programadores que entraram na profissão durante a pandemia muitas vezes não têm a preparação necessária para essa nova era. Portanto, é crucial voltar ao básico:

  • Estude sistemas operacionais, algoritmos de otimização e notação Big O.
  • Aprenda sobre gestão de memória e programação multithread.
  • Entenda que cada decisão de design pode impactar significativamente o desempenho e os custos operacionais.

Conclusão

Prevejo uma nova era da programação, onde meros escrevedores de código perderão espaço na indústria, sendo substituídos por pessoas que realmente sabem o que estão fazendo.
Se você está preocupado com a inteligência artificial tomando seu emprego, entenda que a função do computador sempre foi substituir empregos. Há 100 anos, o termo "computador" se referia a uma pessoa que realizava cálculos. Com o surgimento do computador eletrônico, esses empregos foram substituídos, mas uma infinidade de novos empregos foi criada. Isso acontece há mais de 100 anos e continuará no futuro.

Não posso garantir que sua linguagem de programação favorita será relevante em 10 anos, provavelmente não será. Por isso, não se apegue a ela. Estude os conceitos básicos da computação, da matemática e a teoria por trás de cada algoritmo que usamos no dia a dia.
Acima de tudo, se você está começando na área agora, seja humilde e reconheça sua incapacidade inicial de resolver problemas complexos. Com a atitude certa, sempre haverá alguém disposto a ajudar.

Top comments (2)

Collapse
 
diiegw profile image
Diego Grunewald

sabias palavras mestre, ainda quero poder dedicar bastante do meu tempo para aprender programação, uma das áreas que mais gosto desde pequeno, mas tenho medo e receio que não vou conseguir me dar bem 🥲

Collapse
 
wmattei profile image
Wagner Mattei

Vai se dar bem sim irmão. O importante é não se iludir e manter o pé no chão <3