AAAlison AmorimBlog
alisonamorim.com ↗

IA

Dev, a IA Não Vai Roubar Seu Emprego! Ou Será Que Vai?

A IA substitui o dev raso, não quem domina fundamentos: três prompts para validar e-mail a 100 mil requisições por segundo mostram onde está a diferença.

  • 11 min de leitura
  • IA Liderança
Fonte do texto
Ferreiro em cenário neon erguendo um martelo escrito AI sobre a bigorna onde forja uma espada: a IA como ferramenta de quem domina o ofício
Neste artigo · 8 seções
  1. Lições Históricas das Revoluções Tecnológicas
  2. A IA como Ferramenta, Não como Substituta
  3. O Diferencial que a IA Não Possui: Experiência e Contexto
  4. O Problema do Desenvolvedor Raso
  5. A Arte de Fornecer Contexto
  6. Controlando a Ferramenta com Maestria
  7. Conclusão
  8. Insights & Takeaways

Vivemos em uma era onde a inteligência artificial permeia todos os setores das organizações, desde as operações de entrada até a alta liderança. Naturalmente, o questionamento "a IA vai roubar nossos empregos?" ecoa constantemente nos corredores da área de tecnologia. A resposta, como tantas outras em nosso campo, é: depende. O que determina se um desenvolvedor será substituído não é a capacidade técnica da IA de escrever código, mas sim como esse profissional se posiciona diante dessa nova ferramenta revolucionária.

Lições Históricas das Revoluções Tecnológicas

A história da humanidade é marcada por transformações disruptivas que redefiniram completamente a forma como trabalhamos. A Revolução Industrial trouxe fiandeiras, teares mecânicos e máquinas a vapor que substituíram o trabalho artesanal por produção em massa. Esse movimento democratizou produtos que antes eram artigos de luxo, tornando-os acessíveis através da eficiência da produção mecanizada. Muitos artesãos foram, de fato, substituídos por máquinas mais eficientes e rápidas.

Entretanto, nem todos desapareceram. Os datilógrafos enfrentaram uma encruzilhada similar com a chegada dos computadores e editores de texto. Aqueles que se adaptaram não apenas permaneceram relevantes, mas muitos prosperaram ensinando outros a dominar essas novas ferramentas revolucionárias. A verdadeira questão nunca foi se a tecnologia substituiria determinadas funções, mas sim quem teria a capacidade de se adaptar e evoluir junto com ela.

A IA como Ferramenta, Não como Substituta

É inegável que a inteligência artificial pode programar melhor que muitos desenvolvedores. Essa afirmação não deveria nos assustar, mas sim nos fazer refletir sobre nosso papel nesse novo cenário. Assim como os alfaiates da Revolução Industrial que combinaram sua expertise com o poder das máquinas para criar designs, cores e padrões inovadores em tecidos, os desenvolvedores de hoje precisam entender a IA como uma ferramenta poderosa que amplifica suas capacidades.

Alfaiates extremamente habilidosos não desapareceram com a industrialização. Pelo contrário, suas criações artesanais se tornaram artigos únicos de grande valor, comparáveis às roupas de luxo, relógios sofisticados e carros premium que ainda hoje são produzidos manualmente. Da mesma forma, um ferreiro experiente que manuseia o ferro quente com maestria não é substituído pelo martelo, ele o domina para forjar as melhores espadas. Nós, profissionais de tecnologia, temos agora a melhor forja disponível para criar os melhores sistemas.

O Diferencial que a IA Não Possui: Experiência e Contexto

O mercado de tecnologia sempre foi fascinado pela novidade: a nova IDE, o framework do momento, a versão mais recente de alguma tecnologia já consolidada. Até hoje, é comum ouvir que determinada linguagem será o novo C e mudará tudo, mas sabemos que C e C++ continuam vivos e relevantes. Esse ciclo de novidades nos distrai do que realmente importa: construir experiência sólida em fundamentos. Algoritmos, estruturas de dados, padrões de projeto, redes e bancos de dados são os pilares que sustentam nossa profissão, independentemente das ferramentas que utilizamos.

Muitos profissionais ainda afirmam que a IA não funciona adequadamente. Para essas pessoas, fica evidente que ainda não compreenderam como operar essa ferramenta. A diferença entre um desenvolvedor que será substituído e um que se tornará ainda mais valioso reside na capacidade de controlar a ferramenta, não em deixar que ela faça o trabalho por você.

O Problema do Desenvolvedor Raso

Considere um cenário comum onde um desenvolvedor utiliza o seguinte prompt:

"Monte um método que valide se um e-mail existe."

Este é o exemplo perfeito de um prompt superficial, desprovido de qualquer contexto significativo. Analisando friamente, surgem questões críticas que ficaram sem resposta: existe onde, exatamente? Em qual base de dados? Com que frequência esse método será invocado? Qual é o custo aceitável de latência? Quais são as restrições de infraestrutura? O desenvolvedor que formula esse tipo de pergunta demonstra uma compreensão limitada não apenas da IA, mas do próprio problema que está tentando resolver.

A IA, funcionando através de modelos probabilísticos treinados em bilhões de exemplos de código, irá naturalmente gerar a solução mais comum e genérica: um método que consulta diretamente a base de dados e retorna um booleano indicando se o e-mail existe ou não. Para a maioria dos cenários nos dados de treinamento, essa abordagem funciona. O desenvolvedor implementa esse código sem questionamento crítico, satisfeito com a rapidez da entrega.

Em poucos dias, quando o sistema entra em produção com carga real, a base de dados colapsa sob o volume excessivo de requisições idênticas. Cada validação de e-mail se transforma em uma query ao banco, multiplicado por milhares ou centenas de milhares de requisições simultâneas. A solução rápida que inevitavelmente surge? Aumentar verticalmente os recursos do servidor de banco de dados. Uma abordagem cara, insustentável e que apenas adia o problema real: a falta de design adequado desde o início.

Quem é o verdadeiro culpado nesse cenário? A IA gerou exatamente o que foi solicitado com base nas informações fornecidas. O problema não está na ferramenta, mas no profissional que não forneceu contexto algum sobre volume de requisições, especificações de infraestrutura, requisitos de performance ou criticidade do sistema. A IA não possui bola de cristal, ela trabalha exclusivamente com o que você fornece. Um desenvolvedor que não compreende algoritmos e estruturas de dados fundamentais jamais conseguirá articular prompts que levem a soluções otimizadas, porque simplesmente desconhece que alternativas melhores existem.

A Arte de Fornecer Contexto

Agora, imagine o mesmo desenvolvedor evoluindo sua abordagem, utilizando um prompt significativamente melhorado:

"Crie um método que valida se um email existe, use bloom filter para isso, para evitar idas desnecessárias à base de dados. Esse método precisa ser eficiente pois teremos 100 mil requests por segundo."

A diferença é abissal. Este prompt demonstra que o profissional não apenas conhece o problema, mas possui conhecimento técnico sobre estruturas de dados probabilísticas. Ao mencionar Bloom Filter, ele revela compreensão de que existe uma categoria inteira de algoritmos especificamente projetados para resolver problemas de pertinência em conjuntos com eficiência extrema de memória e tempo constante de busca. Ele entende que falsos positivos podem ser aceitáveis em certos contextos, mas falsos negativos não, exatamente a característica que torna Bloom Filters perfeitos para este cenário.

Ao especificar o volume de cem mil requisições por segundo, o desenvolvedor fornece contexto crucial sobre a escala do problema. A IA agora pode gerar código que considera essa carga, potencialmente sugerindo implementações thread-safe, otimizações de memória e até mesmo estratégias de cache. O prompt também deixa claro o objetivo de evitar acessos desnecessários ao banco de dados, direcionando a solução para uma abordagem de filtro em memória que só consulta a base quando absolutamente necessário.

O aspecto mais preocupante dessa comparação é que mais de cinquenta por cento dos desenvolvedores seniores no mercado atual desconhece completamente algoritmos como Bloom Filter, B-Tree, Algoritmo de Huffman ou Ring Buffer. Isso não é uma crítica vazia, mas uma observação baseada em anos de entrevistas técnicas e code reviews. Deixamos de aprender conceitos fundamentais guiados pelo pensamento pragmático: para que estudar algoritmos de ordenação se posso simplesmente chamar um método Sort()? Para que entender árvores balanceadas se o banco de dados cuida disso?

Entretanto, são justamente esses algoritmos que sustentam absolutamente tudo que fazemos diariamente. B-Tree e suas variantes são a espinha dorsal de praticamente todo sistema de indexação em bancos de dados relacionais e NoSQL. O Algoritmo de Huffman está trabalhando silenciosamente em cada requisição HTTP comprimida que enviamos ou recebemos. Ring Buffers são fundamentais em sistemas de alta performance que precisam processar streams contínuos de dados. Aumentar nosso repertório de algoritmos e estruturas de dados nunca foi tão necessário quanto agora. Não precisamos necessariamente saber implementá-los manualmente do zero, essa batalha já foi vencida por cientistas da computação brilhantes. Mas precisamos absolutamente saber que eles existem, compreender para quais classes de problemas foram projetados, entender suas características de performance e suas trade-offs. Esse conhecimento não apenas nos torna melhores engenheiros, mas literalmente expande nossa capacidade cognitiva de resolver problemas complexos.

Controlando a Ferramenta com Maestria

Vamos elevar ainda mais o nível de sofisticação e demonstrar como um desenvolvedor verdadeiramente experiente interage com IA. Considere este prompt avançado:

"Preciso criar um método que valida se um e-mail existe, o sistema irá receber 100 mil requests por segundo. Estou usando C# em pod com 0.5 mCore e 512mb de memória, e a base de dados Azure Database for PostgreSQL com 2 vCores e 2GiB por core. Liste as abordagens eficientes que não sobrecarreguem a base de dados, e não forcem o GC. Explique o pós e contra de cada abordagem. Use estruturas de dados e padrões de projeto caso necessário. Não crie códigos de exemplo, crie um rank de 1 a 5 e justifique. Mostre o resultado como uma tabela em markdown."

Este prompt representa um nível completamente diferente de maturidade profissional. Vamos dissecar por que ele é excepcional. Primeiro, o desenvolvedor fornece contexto completo sobre a infraestrutura: C# como linguagem, pods Kubernetes com recursos extremamente limitados, e um banco PostgreSQL gerenciado no Azure com especificações precisas. Cada detalhe importa. Saber que são apenas 0.5 milicores e 512MB de memória significa que qualquer solução que aloque estruturas de dados grandes na heap será problemática. O limite de memória é crítico e deve influenciar diretamente a escolha do algoritmo.

Ao mencionar explicitamente "não forcem o GC" (Garbage Collector), o desenvolvedor demonstra conhecimento profundo sobre como o runtime do .NET funciona. Ele entende que alocações frequentes de objetos, especialmente aqueles que sobrevivem à geração 0 e migram para gerações superiores, causam pausas de coleta que podem impactar dramaticamente a latência em sistemas de alta performance. Isso mostra que ele não está pensando apenas na correção funcional do código, mas na sua característica de performance em produção sob carga real.

A instrução "Liste as abordagens eficientes" seguida de "Use estruturas de dados e padrões de projeto caso necessário" é particularmente inteligente. O desenvolvedor não está pedindo uma solução única, mas sim uma análise comparativa de alternativas. Ele quer que a IA atue como um consultor técnico, apresentando opções com seus respectivos trade-offs. Isso é fundamental porque apenas o desenvolvedor possui o contexto completo que a IA jamais terá: a maturidade técnica do time de engenharia que fará a manutenção, a complexidade aceitável versus o prazo de entrega, os recursos disponíveis para implementação, a tolerância a falsos positivos ou negativos do negócio, até mesmo as especificações das máquinas de desenvolvimento dos engenheiros e se será necessário rodar ambientes Docker ou máquinas virtuais localmente.

O pedido crucial "Não crie códigos de exemplo, crie um rank de 1 a 5 e justifique" demonstra sabedoria. O desenvolvedor não quer que a IA tome a decisão por ele gerando código imediatamente. Ele quer análise, comparação, justificativas. Com essas informações, ele pode fazer perguntas de acompanhamento refinando sua compreensão: "E se eu aumentar a memória para 1GB?", "Como essa solução se comporta durante reinicializações do pod?", "Qual o impacto de consistência eventual em cada abordagem?". A solicitação de formatação em tabela markdown não é cosmética, é sobre consumir informação estruturada de forma eficiente.

Após estudar a análise retornada pela IA e fazer as perguntas de esclarecimento necessárias, o desenvolvedor escolhe conscientemente a abordagem que melhor se adequa ao seu contexto específico. Somente então ele pode solicitar que a IA crie um Architecture Decision Record documentando formalmente os motivos da escolha, as alternativas consideradas, as consequências esperadas e os critérios de decisão. Esse ADR se torna parte da documentação viva do sistema, permitindo que futuros engenheiros entendam o raciocínio por trás da decisão.

Finalmente, com todo esse contexto acumulado na conversa, o desenvolvedor solicita a geração do código. Agora a IA tem informações riquíssimas para gerar uma implementação verdadeiramente otimizada para aquele cenário específico. Mesmo assim, cabe ao desenvolvedor validar criticamente esse código, adaptá-lo às convenções do projeto, considerar casos extremos não capturados e, evidentemente, solicitar a geração de testes unitários abrangentes que garantam a qualidade e facilitem futuras refatorações.

Note a transformação completa no processo: agora o desenvolvedor está verdadeiramente controlando a ferramenta, usando-a como um amplificador cognitivo que potencializa seu conhecimento e experiência. O que tradicionalmente levaria dias de pesquisa, prototipagem de alternativas, benchmarks e documentação, é executado em minutos mantendo a qualidade e profundidade da análise. Esse é o caminho para profissionais de tecnologia que não apenas sobreviverão, mas prosperarão e se destacarão na era da inteligência artificial.

Conclusão

A IA não vai roubar o emprego de desenvolvedores experientes que compreendem seu papel como mestres da ferramenta. Assim como em todas as revoluções tecnológicas anteriores, aqueles que se adaptam e evoluem não apenas sobrevivem, mas se tornam mais valiosos. A diferença fundamental está em construir conhecimento sólido em fundamentos, entender como fornecer contexto adequado às ferramentas de IA e manter o controle sobre as decisões técnicas. A era da inteligência artificial não marca o fim da profissão de desenvolvimento, mas o início de uma nova fase onde desenvolvedores artesãos, equipados com conhecimento profundo e ferramentas poderosas, se destacarão daqueles que permanecem na superficialidade. O futuro pertence não àqueles que temem a ferramenta, mas àqueles que a dominam.


Insights & Takeaways

  • A IA é uma ferramenta, não um substituto: Assim como martelos não substituíram ferreiros, a IA não substituirá desenvolvedores que dominam os fundamentos da engenharia de software e sabem como extrair o máximo dessa tecnologia.
  • Conhecimento em algoritmos e estruturas de dados é o diferencial competitivo: Mais de 50% dos desenvolvedores seniores desconhecem algoritmos fundamentais como Bloom Filter e B-Tree, criando uma oportunidade significativa para profissionais que investem em conhecimento sólido.
  • Contexto é tudo ao trabalhar com IA: A diferença entre gerar código que quebra produção e código otimizado está na capacidade do desenvolvedor de fornecer contexto completo, incluindo requisitos de performance, limitações de infraestrutura e restrições técnicas.
  • Não terceirize decisões arquiteturais: Use a IA para analisar opções e fornecer recomendações, mas mantenha sempre o controle sobre as decisões técnicas críticas, considerando fatores que apenas você conhece sobre seu contexto específico.
  • A adaptação define quem sobrevive às revoluções tecnológicas: A história mostra que profissionais que se adaptam às novas ferramentas não apenas permanecem relevantes, mas frequentemente prosperam ensinando e liderando outros na transição tecnológica.

Comente no LinkedIn

A conversa sobre este artigo acontece no LinkedIn, onde ele também foi publicado. Discordou de algo, viu de outro jeito em produção? Conta lá.

Leia também