Ensaio de Carson Gross, professor do Departamento de Ciência da Computação da Montana State University e criador do htmx, respondendo à pergunta "Ainda vale a pena seguir programação como carreira na era da IA?" com "Yes, and… (sim, e… )".
"Yes" — Sim
- A essência da programação é resolver problemas com computadores + controlar a complexidade. É difícil imaginar um futuro em que essa habilidade valha menos
- Mas a IA é um risco para juniores. Se você não escrever código diretamente, também pode acabar sem conseguir ler código
- Se não conseguir ler código, cai na "armadilha do aprendiz de feiticeiro" — criar sistemas que você não entende nem consegue controlar
Codificação → prompting é diferente de assembly → linguagens de alto nível
- Compiladores são determinísticos, mas LLMs não
- Linguagens de alto nível removeram complexidade acidental, mas código gerado por LLM muitas vezes adiciona ainda mais complexidade acidental
IA não é gerador de código, e sim um excelente monitor (TA)
- Quando usada como parceira para ajudar a entender conceitos e técnicas, ela é eficaz para o crescimento intelectual
- É especialmente útil para superar barreiras causadas por complexidade acidental
- Compartilhe um arquivo
AGENTS.mdpara configurar a IA para atuar como monitor, e não como gerador de código
"and…" — e…
Habilidade pura de codificação pode se tornar menos importante
- Em compensação, estas habilidades podem se tornar mais importantes:
- Capacidade de comunicação — escrever e se comunicar com clareza tanto com LLMs quanto com pessoas. Ler livros e escrever ensaios ajuda
- Entendimento de negócios — tanto a visão do lado de negócios de que "não precisamos de programadores" quanto a visão dos programadores de que "não precisamos de pessoas de negócios" são míopes. A IA oferece a chance de entender problemas reais com mais profundidade
- Arquitetura de sistemas — capacidade de controlar a complexidade de sistemas em grande escala. Mas a maioria dos maus arquitetos tinha pouca experiência prática codificando
Como seniores e juniores usam LLMs
- Seniores: usam para análise de código, organizar ideias, gerar pequenos trechos de código, gerar código chato (regex, CSS), código exploratório e sugestões de testes. Não pedem geração de soluções completas. Nunca delegam design de API
- Juniores: precisam resistir à tentação do vibe coding. No longo prazo, priorizar entendimento em vez de velocidade vence. Em breve, as empresas também perceberão o problema da explosão de complexidade causada pelo vibe coding
Conselho de carreira — estratégia 4F
- Sites de vagas online são praticamente uma loteria
- 4F: Family (família), Friends (amigos), Family of Friends (família de amigos)
- Não precisa ser uma grande empresa de tecnologia. Se tiver mais de 100 pessoas, a maioria já tem alguma organização de desenvolvimento
- Caso da sede da Costco: entrar por indicação familiar e começar como analista, somando habilidade de programação, torna você muito valioso
Conclusão
Os fundamentos da programação, especialmente a capacidade de escrever bom código e controlar a complexidade, continuarão importantes para sempre. A retração do mercado de trabalho é temporária. E, para as empresas: deixem os juniores escreverem código diretamente.
30 comentários
Se você não entende arquitetura, codar no vibe não faz sentido..
Qualquer um consegue fazer um macarrão com ketchup
Mas massa italiana de verdade não é qualquer um que consegue fazer
Se uma massa italiana custa $20 e uma massa com ketchup custa $2, eu ficaria com a segunda...
Os usuários não pagam por algo que custa 2 dólares.
Parece que você não entendeu o ponto da história.
Sim, confesso que comentei sem nem ler o texto;;
Em hotéis ou restaurantes especializados, uma massa com ketchup simplesmente não poderia existir.
Mas, se for só para improvisar em casa, uma massa com ketchup até faz sentido...
Em um dia especial, eu queria comer uma massa italiana feita por um chef.
A questão não é a massa; quando vinhos baratos custam US$ 2, vinhos finos podem custar dezenas de milhares de reais e ainda assim a demanda se mantém constante.
Se fosse uma ocasião especial, eu também comeria uma massa italiana... mas no dia a dia(?)...
Bela frase. Dá para resumir de forma clara em apenas 3 linhas.
Nós somos engenheiros. Engenheiro é justamente quem entende e assume responsabilidade pelo que lida e propõe. Dizer que isso não é necessário só significa que a própria pessoa está trabalhando em um ambiente assim. A IA não muda essa essência; pelo contrário, apenas a expõe de forma extrema. Se não há absolutamente nenhum problema em não entender um PR, então isso já não é mais um PR.
Se, em uma empresa, um chefe não consegue entender o trabalho de um subordinado, será que consegue atribuir tarefas a ele?
Mesmo sem entender, ele faz? Será que consegue assumir o que está sendo feito?
Nos produtos humanos, de modo geral, a "intenção humana" sempre foi importante. Não a implementação em si, mas
Assim como o fato de existir calculadora não significa que a gente deixe de estudar matemática...
Acho que, em vez de esperar que a minha área não possa ser substituída, o mais realista é desejar que todos sejamos substituídos juntos o mais rápido possível. Acho que todo mundo já sente isso vagamente.
Assim como é possível programar sem conhecer linguagem Assembly,
também parece que vai ser possível programar sem conhecer Rust.
Afinal, até quando as pessoas programam, o código muda a cada vez.
Também varia de pessoa para pessoa.
Mas todos são desenvolvedores Rust.
Acho que, no fim, o próprio AI vai resolver o problema da complexidade da AI. Precisamos abandonar a ilusão e o orgulho de achar que isso é algo que só os humanos podem fazer.
Com a estrutura atual dos LLMs, isso é impossível. É necessário um paradigma completamente diferente.
Espero que todos consigam atravessar bem este período de transição.
Com o avanço da IA, os projetos também estão realmente reduzindo pessoas. À medida que uma pessoa é cortada, parece que, além do negócio, se o gestor não souber usar bem a IA, acaba entrando na lista de corte também.
Em vez de tentar reduzir isso a qualquer custo, seria melhor realocar essas pessoas para outras áreas e fazê-las assumir novos trabalhos ou tarefas que até então não podiam ser feitas. Cortar de repente é uma visão curta demais.
Até agora, LLM/Agentic Coding ainda é uma ferramenta excelente, não um excelente engenheiro. Assim como um bom plano é importante no Agentic Coding, no fim das contas o usuário precisa ter a capacidade de entender o código e julgá-lo. Por exemplo,
fastrendereCCCmostraram o potencial do Agentic Coding, mas ao mesmo tempo também deixaram claras suas limitações.Eu gostaria de fazer a pergunta de outra forma.... "Eu recomendaria esta profissão para o meu filho?"
Ao meu redor, para muita gente, mandar os filhos para Ciência da Computação era a tendência. Agora, parece que isso mudou bastante.
Acho que vai ser difícil para as pessoas depois do vibe coding estudarem desenvolvimento. Estudar ficou muito ineficiente... e é fácil se satisfazer só com um clique.
Vibe coding é apenas sobre produzir o resultado final, e acho que a diferença entre ter ou não entendimento sobre o que foi implementado será realmente muito grande. E acredito que esse entendimento vem do que você chamou de "estudo de desenvolvimento".
Na verdade, com o avanço da IA, o custo de aprender alguma coisa caiu bastante, então parece ser um ótimo momento para aprender ainda mais coisas.
Dá para criar código funcional com vibe coding, mas no fim quem precisa revisar isso é uma pessoa, e não é fácil produzir apenas com vibe coding um código que seja fácil de manter e tenha escalabilidade.
E também há resultados de pesquisa mostrando que, no fim, como as pessoas precisam revisar, isso consome mais tempo, então a produtividade acaba ficando elas por elas.
Esse esforço individual também é importante, mas é necessário apoiar os sistemas sociais por meio de discussões entre os membros da sociedade em nível nacional.
Eu também concordo muito com isso. Falo bastante sobre isso com os mais novos, mas muitas vezes fico pensando se não vai soar apenas como papo de tiozão.
Concordo muito com isso.