1 pontos por GN⁺ 1 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • É claro que usar IA reduz o quanto se aprende ao executar uma determinada tarefa, mas isso não é motivo para rejeitar a IA
  • Mesmo que a IA enfraqueça as capacidades do engenheiro no longo prazo, se a vantagem de produtividade no curto prazo for suficiente, seu uso se torna inevitável
  • Assim como trabalhadores da construção civil levantam objetos pesados apesar da carga física, é preciso seguir as exigências intrínsecas da profissão
  • É possível insistir em programar tudo manualmente, mas, assim como não há emprego para um carpinteiro que rejeita ferramentas elétricas, um engenheiro que recusa IA tem grande chance de perder competitividade para outro que a adote
  • Engenheiros de software também podem se tornar a primeira geração com carreira de duração limitada, como atletas profissionais, e é necessário planejar levando essa possibilidade em conta

Uso de IA e a duração da carreira de engenheiros de software

  • Não há evidências fortes de que a IA reduza a inteligência geral das pessoas, mas é claro que, ao usar IA para realizar certas tarefas, a quantidade de aprendizado sobre aquela tarefa diminui
  • A lógica de alguns engenheiros de software que defendem evitar IA no trabalho é mais ou menos a seguinte
    • Ao usar IA, você aprende menos durante o processo de trabalho
    • Com o tempo, sua capacidade técnica se deteriora, tornando você um engenheiro menos eficaz
    • Logo, não se deveria usar IA no trabalho
  • No entanto, a segunda premissa não é certa
    • Na transição de assembly para C, os programadores se tornaram menos eficazes em alguns aspectos e mais eficazes em outros
    • A mudança de escrever código manualmente para usar IA pode ser uma transformação ainda maior, então é difícil cravar o resultado
  • Mesmo que o uso de IA torne engenheiros menos eficazes no longo prazo, isso por si só não leva à conclusão de que não se deve usá-la
  • Até por volta de 2024, a melhor forma de aprender engenharia de software era fazendo engenharia de software diretamente
    • Era possível transformar o hobby de programar em uma carreira de alta renda, e quem gostava do trabalho tendia a melhorar com o tempo
    • Isso estava mais próximo de um acaso afortunado do que de uma essência imutável da engenharia de software

Conflito entre produtividade de curto prazo e capacidade de longo prazo

  • Mesmo que usar IA piore a capacidade no trabalho ou o raciocínio geral no longo prazo, se o ganho de curto prazo for grande o bastante, engenheiros talvez tenham que usá-la
  • Um trabalhador da construção civil precisa levantar peso para trabalhar de forma eficaz, mas esse tipo de atividade pode, no longo prazo, desgastar as costas e as articulações, tornando-o menos eficiente com o tempo
    • Trabalhadores da construção não dizem “um bom trabalhador é aquele que não levanta peso”, e sim “não tem jeito, esse é o trabalho”
  • Nos canteiros de obra, existem técnicas como guindastes, carrinhos de mão e empilhadeiras para evitar carregar objetos pesados
    • Para engenheiros de software, também pode ser necessário haver técnicas para manter o envolvimento mental, mas talvez ainda não tenhamos encontrado um equivalente
  • Se a IA realmente estiver tornando as pessoas menos inteligentes, ainda é possível continuar escrevendo código à mão
    • Mas, pelo mesmo motivo que quase não há trabalho para um carpinteiro que rejeita ferramentas elétricas, pode ficar difícil ser pago apenas por programar manualmente
    • Se os modelos forem bons o suficiente, você perderá competitividade para engenheiros dispostos a trocar capacidade cognitiva de longo prazo por uma carreira altamente lucrativa no curto prazo
  • Sindicatos poderiam, em teoria, desacelerar esse processo
    • Em outras indústrias, já conseguiram fazer empregadores frearem a corrida para o fundo do poço
    • Mas há pessimismo em relação a sindicatos na área de tecnologia, porque os salários são altos e o trabalho pode ser feito de qualquer lugar do mundo, o que facilita a substituição por outra mão de obra
  • A carreira de um atleta profissional dura, em geral, no máximo cerca de 15 anos, com a chance de ganhar muito dinheiro até meados dos 30 anos, mas depois o corpo deixa de acompanhar
    • Uma figura trágica bastante comum hoje é a do atleta profissional que acredita que “o show vai continuar para sempre” e não se prepara para a aposentadoria
    • Engenheiros de software também podem ser a primeira geração colocada nessa mesma situação e, se for esse o caso, é sensato se planejar de acordo

1 comentários

 
GN⁺ 1 시간 전
Opiniões do Hacker News
  • Tenho essa mesma conversa várias vezes por semana: alguém diz que “a IA vai tornar os desenvolvedores irrelevantes”, então eu pergunto por quê, e a resposta é “porque LLMs conseguem escrever código”
    Só que, no trabalho que faço para ganhar a vida, escrever código era antes 2~5% e hoje é ainda menos; o resto é entender as coisas e aplicar a capacidade de estruturar soluções
    Desenvolvedores que ainda acreditam que o trabalho de desenvolvedor é digitar código talvez não tenham emprego no futuro, e empreendedores que acham que podem substituir desenvolvedores por LLMs e tocar sem eles no fim serão tratados pela seleção natural

    • Por volta de 2000, num dos meus primeiros empregos, fui pareado com um engenheiro de software veterano que trabalhava desde o começo dos anos 1970, e eu estava animado para aprender com ele
      Lá pelo quarto dia ele disse: “vou te ensinar a coisa que mais ajudou a minha carreira”, e então falou: “numere sempre os cartões perfurados, assim, se eles caírem, dá para recolocar na ordem facilmente”
      Como isso já era muito depois da era dos cartões perfurados, fiquei decepcionado, mas ele acrescentou: “eu disse que isso ajudou a mim, não que ajudaria você. O software está sempre mudando”. Penso nisso com frequência hoje em dia
    • Essa resposta é polida demais. Na prática, a maior parte do tempo vai para programar, e isso inclui digitar, redigitar e digitar de novo
      Também entra aí o tempo de bater a cabeça na parede para fazer funcionar um código reescrito para uma API mal documentada
      A formulação do comentário original faz a engenharia de software parecer uma atividade pura e nobre, como matemática, mas na realidade, mesmo entrando com um plano, quando ele não encaixa no mundo real e você precisa dar marteladas em metal para alinhar uma coluna de perfuração sob prazo apertado, isso se parece mais com o trabalho de um operário de perfuração
    • Há pessoas para quem “escrever código” é 2~5%, mas também há pessoas para quem isso é 6~50%
      E o trabalho de “entender as coisas e estruturar soluções” também é uma área na mira da IA
      Pode ser apenas que você esteja num ambiente em que suas contribuições são reconhecidas, ou numa indústria/domínio pouco presente nos dados de treino, ou num espaço de problemas complexo demais para a IA lidar
      Quem resolve tickets no Jira e faz apps web CRUD tem grandes chances de ver o sustento desaparecer com frequência, ou de ser cobrado a entregar mais pelo mesmo salário ou menos, correndo atrás com IA
    • Gosto da expressão “a seleção natural vai tratar disso”. Há previsões aos montes sobre como a IA vai mudar o software e além, mas agora eu me pergunto quando a fala para e começa a demonstração de resultados
      Se der certo, vai dar certo, o método vai se espalhar e rapidamente ficará acessível a todos, e o progresso continuará
      Se não der, isso vai aparecer na falta de resultados reais, e “eu estou vendo” não basta. Tem que ser uma realidade inevitável e inegável que todos possam ver e usar
    • Em princípio concordo, mas a estimativa de 2~5% parece extremamente baixa. Se alguém dissesse que a maioria dos desenvolvedores passa 25%, ou até 40%, escrevendo código, eu acreditaria; mas alguém que só gasta 2% com isso é muito raro
      Talvez um conselheiro de CTO de altíssimo nível numa big tech, mas aí já estamos falando de uma posição raríssima
  • A reação polarizada à IA parece depender da lente usada. Funções júnior estão desaparecendo rápido, mas, em funções sênior, experiência e julgamento são mais importantes do que nunca
    Então a engenharia de software pode realmente deixar de ser uma carreira para a vida toda para muita gente. É parecido com esportes de elite, que não são uma carreira realista para a maioria, mas ainda assim algumas pessoas farão disso sua profissão, e precisarão fazê-lo

  • Minha experiência foi o oposto completo. Engenheiros muito qualificados que de fato tentam usar as ferramentas mais recentes, inclusive gente na faixa dos 40 e 50 anos, estão muito melhores do que antes
    Um dos motivos pelos quais programadores tradicionais enfraquecem na prática com o tempo é que, como no xadrez, concentração e cálculo profundo diminuem. Um enxadrista mais velho entende muito mais de xadrez do que um gênio de 19 anos, mas não consegue calcular por tanto tempo na mesma velocidade, e no fim a experiência perde para a capacidade bruta de cálculo
    Claude Code e Codex aliviam essa carga de cálculo, enquanto todos os instintos acumulados pela experiência e a “intuição” de 2 segundos continuam intactos
    Agora não só ficou uma disputa justa; ficou injusta ao contrário. O sênior que antes liderava uma equipe de 6 pessoas agora lidera uma equipe de agentes e revisa código como sempre fez. Às vezes é até mais fácil mudar a direção dos agentes do que a dos júniors ao redor

    • Felizmente, engenheiros de software têm o caminho de arquiteto, e ele costuma recompensar intuição profunda mesmo quando o modo de fazer os cálculos detalhados continua mudando
      A questão urgente, mas ainda sem resposta, é se dá para formar bons arquitetos sem passar pelas trincheiras do trabalho prático
      LLMs também fazem algo parecido com intuição, então é preciso distinguir. LLMs se parecem mais com o inconsciente coletivo da internet, claramente diferente do gosto que nasce de experiências boas e ruins
      A intuição que emerge no fim é “bom gosto”, e isso está muito próximo do trabalho central de funções sênior em qualquer área técnica
    • Se um sênior consegue fazer o trabalho de 6 colegas, o que acontece com esses colegas?
      Na agricultura, quem foi substituído pelo trator não manteve o emprego. O que seria diferente agora?
    • Dizer que “o sênior que antes liderava uma equipe de 6 agora lidera uma equipe de agentes” só confirma o ponto do autor
      A equipe de 6 pessoas não é mais necessária e, logicamente, é removida da empresa
      Então engenharia de software continuará sendo profissão para alguns, mas o número de pessoas pode cair 85%
    • Tenho 43 anos e, depois de 15 anos de experiência, eu era muito produtivo como desenvolvedor Java/Swing e conhecia as ferramentas a fundo
      Mas aquela empresa não existe mais, e demoro bem mais para aprender a trabalhar com eficiência nas ferramentas novas de hoje, porque não passei 10 anos absorvendo os detalhes desse novo ambiente
      Então a IA me economiza um tempo enorme para descobrir a sintaxe correta e lembrar detalhes do framework de testes unitários. Se eu ficar 1~3 anos nisso, provavelmente vou ficar muito mais rápido e conhecer melhor as ferramentas
    • Precisamos parar com a antropomorfização. Não existe equipe de agentes; existem apenas ferramentas e processos rodando no computador
      Se esse único engenheiro sênior desaparecer, não sobra nada. É melhor ter a equipe de 6 pessoas
  • A ideia de que “usuários de IA vão atrofiando suas capacidades técnicas com o tempo e se tornam engenheiros menos eficazes” infelizmente me parece, em linhas gerais, correta no longo prazo
    Profissionalmente, as pessoas em geral se dividem em dois grupos: as que usam IA para reforçar o raciocínio e as que usam IA para substituir o raciocínio. O primeiro grupo não me preocupa tanto; o segundo, sim
    Minha mãe, que é professora de ensino médio da rede pública nos EUA, reclama que muitos alunos tratam o “Google AI overview” como fonte de verdade absoluta
    Talvez isso seja um fenômeno novo semelhante ao antigo “não pode citar a Wikipedia”, mas ela sente que, desde a pandemia, a capacidade de pensamento crítico dos alunos que entram em sala caiu de forma perceptível
    Já existe há uma ou duas gerações gente criada num ambiente em que influenciadores e anônimos da internet dizem do que gostar, do que não gostar e no que acreditar. Essas pessoas já terceirizavam o raciocínio antes mesmo dos LLMs e não parecem preparadas para interagir de forma produtiva com sistemas projetados para fazê-las sentir que estão obtendo o que querem, mesmo com qualidade duvidosa

    • Eu realmente trabalho com pessoas que geram soluções sem olhar direito para o que foi produzido. Elas clicam no app ou rodam alguns testes, decidem que o resultado parece ok e publicam
      O PR inteiro tem a marca do Claude, e é seguro supor que quase não houve edição. Esse é o grupo A
      Por outro lado, também tenho colegas que vão até o fim no problema, montam um harness para testar a mudança, validam o resultado, passam por várias soluções até sintetizar um resultado ideal, fazem benchmark, refinam, testam exaustivamente e oferecem no PR um procedimento de validação sensato. Esse é o grupo B
      São dois modos de usar IA completamente diferentes. O grupo A parece estar se virando por enquanto, mas o grupo B é uma nova versão do que é possível dentro do tempo disponível e define um novo padrão de engenharia de software que eu raramente via fora de ambientes excepcionalmente profissionais
      Acho que o grupo A vai ser empurrado para fora do setor bem rápido. LLMs permitem trabalhar de forma impressionantemente eficaz, desde que exista vontade de aprender. Esse rigor pode virar o padrão e talvez seja o único jeito de humanos continuarem sendo componentes úteis dentro do loop
    • Muitos adultos ao meu redor agora também tratam o Google AI overview como fonte absoluta
    • Post relacionado que apareceu recentemente no HN: https://news.ycombinator.com/item?id=47913650
  • Anecdoticamente, parece que no começo deste ano houve mesmo uma mudança no mercado de contratação de software nos EUA. Parece que cada vez mais empresas estão adotando uma estratégia de espera para não superinvestir em capital humano nos próximos anos
    Sinais de contratação que já eram fracos agora parecem ter desaparecido de vez
    Você publica uma vaga e recebe mais de 500 candidaturas e cartas de apresentação escritas por LLM, todas com aparência e tom parecidos
    A comparação do texto com atletas profissionais me soa meio estranha. Em trabalhos que rendem dinheiro pelo corpo, os problemas físicos do envelhecimento são claros; já em áreas de trabalho intelectual como direito ou medicina, há muita gente altamente qualificada e afiada ainda nos 40 e 50 anos

    • É anedótico também, mas me parece que empresas americanas estão contratando em massa na Índia e em outros mercados em desenvolvimento
      Conheço casos de gente que nunca tinha recebido uma única mensagem de recrutador de big tech e agora recebe contato todo dia
      Também vi gente dizendo que isso tem a ver com a expiração, no ano passado, de uma certa cláusula americana, mas sou leigo demais para discutir a causa
    • No dia a dia, honestamente não sinto que a IA esteja afetando a demanda por contratação. Não é como se a liderança estivesse tendo tudo o que imagina escrito pela IA e os engenheiros ficassem de braços cruzados
      Em vez disso, a sensação é de que a economia está à beira de despencar, ou pelo menos numa montanha-russa. Os incentivos fiscais para contratar são fracos, a era dos juros zero acabou faz tempo, e recrutadores estão soterrados por candidaturas cheias de ruído
      Mesmo assim, chefes adoram dizer que é por causa da IA, porque isso faz parecer que eles estão no controle
    • Acho que as empresas contrataram demais na pandemia e, por causa dessa experiência e de um mercado incerto, não querem repetir o mesmo erro
  • Continuo lendo que, se a IA causar isso, “as pessoas podem se requalificar para outra profissão”, mas nunca vejo qual seria essa profissão nem quem pagaria o custo da requalificação
    Eu não tenho dinheiro nem tempo para voltar à universidade e começar uma nova carreira do zero

    • A lógica é “no passado sempre foi assim”
      Isso é verdade, mas só até deixar de ser
      Um exemplo clássico de como esse tipo de raciocínio pode falhar enormemente é a teoria de Malthus. A ideia de que o crescimento dos alimentos é linear e o da população é exponencial, então a população entraria em colapso, era de fato verdadeira em toda a história anterior ao momento em que Malthus fez essa observação
      No plano mecânico, a lógica de “sempre encontramos outros empregos” ignora que isso só foi possível porque os humanos sempre tiveram vantagem intelectual sobre a automação
      Mesmo a entrada humana simples numa linha de montagem dependia, no fim, da capacidade humana de fazer ajustes sutis, quase invisíveis, que robôs não conseguiam fazer
      Mas, se algo próximo de AGI realmente funcionar, o trabalho humano não terá vantagem alguma sobre a automação, então não está claro por que a lógica passada de que “a automação criou mais empregos humanos” deveria continuar valendo
    • Assim como essa requalificação não aconteceu para trabalhadores industriais qualificados cujos empregos foram terceirizados para a China, também não vai acontecer agora
      O governo vai pagar só o suficiente em assistência para manter a situação administrável e depois vai demonizar culturalmente essas pessoas como luditas ou algo do tipo
    • Essas profissões não existem e, mesmo que existam, o custo será seu. Empresa nenhuma vai pagar, a menos que seja um caso raríssimo em que a competição a obrigue
    • O mesmo vale para as indústrias que o software destruiu
    • Não há garantia de que surgirão outras ótimas profissões. As pessoas parecem simplesmente presumir isso
      Claro, por algum tempo ainda existirão trabalhos que exigem esforço físico humano, mas, na prática, muitos empregos braçais são feitos em outras partes do mundo onde o salário é menor
      Funções não exportáveis, como encanador ou garçonete, têm demanda limitada. Não dá para empurrar 50% da força de trabalho white-collar atual para esses empregos e esperar que todos encontrem trabalho facilmente ou recebam salários decentes. Essa demanda não existe
      Ao mesmo tempo, enquanto empregos white-collar desaparecem, trabalhos físicos “de baixa qualificação” também estão sendo automatizados aos poucos. Caixas de autoatendimento reduzem empregos no varejo, robotáxis e entregas por drone reduzem empregos em entrega e logística, e robôs de armazém vão reduzir empregos em depósitos
      Parece haver uma suposição implícita de que a IA criará muitos empregos bem pagos que precisem de empregadores humanos e que, ao mesmo tempo, não possam ser terceirizados para o exterior por um custo menor. Que profissão bem paga seria essa, imune tanto à IA quanto à terceirização? Todo mundo vai virar faxineiro de alto salário? Não faz sentido
      O conselho atual para se requalificar como trabalhador da construção ou encanador parece assumir que a demanda por esse tipo de trabalho é infinita, mas não é. Mesmo que a demanda por construção exploda, levaria anos para ter equipamentos, cadeia de suprimentos e infraestrutura suficientes para absorver milhões de pessoas no setor
      O cenário mais provável é que as pessoas percam o emprego e fiquem presas numa competição descendente sem fim pelos poucos trabalhos que restarem na economia doméstica. O resto será terceirizado ou feito por robôs e IA
      O melhor conselho é começar a se preparar para essa realidade. Não se deve presumir que o governo vai proteger você ou sequer que possa fazê-lo. Quando a riqueza se concentra, a corrupção é quase inevitável, e políticos também têm famílias das quais cuidar
      Isso precisa ser levado a sério. Mesmo que eu esteja errado, é melhor se preparar para o pior do que presumir que tudo vai dar certo e que você poderá se requalificar para um novo emprego bem pago
  • Meus pais eram ambos trabalhadores da construção. Existe a consciência de que não dá para ficar levantando peso para sempre
    No fim, eles param de carregar coisas e viram encarregado ou supervisor. Se for desconfortável aprender a fazer outras pessoas executarem o trabalho que antes você fazia com as próprias mãos, seu corpo acaba totalmente destruído, e o resultado é terrível
    Isso é uma realidade concreta, mas também foi uma analogia importante para eu internalizar a ideia de delegação na minha carreira. Não é algo totalmente desconectado do uso de IA, embora eu não ache que o encaixe seja perfeitamente limpo

    • Também vale notar que, em níveis razoáveis, levantar peso deixa a pessoa mais forte, enquanto a hipótese atual sobre o uso de IA é em geral o oposto
    • O desenvolvedor de software está mais para arquiteto do que para programador puro. Você não faz o arquiteto levantar peso; faz com que ele projete como aquelas coisas pesadas serão usadas
  • Eu queria que pessoas aparentemente inteligentes parassem de usar analogias de abstração como no texto. A palavra-chave aqui é determinismo
    Toda camada de abstração, de ferramentas elétricas a C, adicionou uma camada determinística em que se podia confiar, produzindo sempre o mesmo resultado e permitindo trabalhar de forma mais eficaz
    LLMs descrevem a programação em linguagem natural e o resultado, na melhor das hipóteses, varia. Por isso surgem agentes e a necessidade de empurrar os resultados no brute force
    Acho que o verdadeiro fosso defensável continua sendo ser alguém que ainda sabe programar de verdade

    • As pessoas vivem dizendo isso, mas, para mim, é um argumento equivocado. LLMs não são determinísticos, mas isso não importa nem um pouco
      Você não executa diretamente a saída do LLM; usa o LLM para gerar um artefato uma vez e depois executa esse artefato de forma determinística
      A especificação vira código uma vez, e editar a especificação pode atualizar o código, mas não é como reconstruir o programa inteiro do zero toda vez. Então por que o determinismo seria importante?
    • Concordo que LLMs não se encaixam em certa definição de abstração. Mas isso não significa que todos que chamam LLM de mais uma camada de abstração estejam entendendo errado. Eles usam a palavra num sentido mais abstrato
      Por exemplo, como Mark Zuckerberg construía software 5 anos atrás?
      Ele também podia abrir um editor como eu, mas, dadas as circunstâncias, tinha à disposição outra interface: recursos humanos. Em vez do editor, interagia com essas pessoas, e elas construíam o software
      Essa camada entre ele e o sistema construído, seja determinística ou não, é uma abstração
      Hoje temos autoridade mais ampla para delegar mais trabalho do que tínhamos alguns anos atrás
    • Essas outras camadas são mesmo determinísticas? Você sabe com certeza se um objeto foi coletado pelo garbage collector? Sabe com certeza quantos ciclos essa instrução vai levar?
    • LLMs não precisam atingir confiabilidade perfeita para substituir muita coisa. Basta alcançar o equilíbrio de confiabilidade e custo adequado para cada tarefa. E isso varia conforme a tarefa
    • Entendo o que você quer dizer, mas a palavra determinismo também não é precisa. LLMs são, no fundo, determinísticos, porque produzem texto como função pura do texto de entrada e dos parâmetros da rede
      Dependendo da sua visão sobre livre-arbítrio, também dá para argumentar que humanos são efetivamente determinísticos
      O conceito que você está tocando aqui é que LLMs e humanos são funções opacas. Não dá para reduzir seu funcionamento a uma sequência de etapas lógicas que caibam na cabeça, não há invariantes que decomponham a complexidade de forma limpa em alguns estados interpretáveis, e os espaços de entrada e saída não são estruturados, são ambíguos, incompletamente especificados e praticamente infinitos
      Por isso é quase impossível raciocinar ou sintetizar sobre eles com as estratégias e análises que aplicamos a programas tradicionais
      Você pode adicionar não determinismo opcionalmente introduzindo fontes de entropia, mas isso não é essencial. Se todos os provedores de LLM fixassem o seed do gerador pseudoaleatório, quase ninguém perceberia
      Não acho que existam muitos fluxos de trabalho que dependam de enviar exatamente o mesmo prompt várias vezes e contar com a saída ter alguma distribuição estatística. Na verdade, você pode acabar recebendo respostas em cache mesmo quando não quer
  • Se por engenharia de software você quer dizer digitar código num editor de texto, caractere por caractere, vai ficar mais difícil encontrar alguém disposto a pagar por isso
    Mas se você quer dizer construir software, então estamos construindo mais software do que nunca, e a definição do que é software também está mais diversa do que nunca. Acho que daqui podem se abrir várias carreiras diferentes

    • O que estamos vivendo é parecido com o que aconteceu quando engenheiros civis passaram da régua de cálculo para a calculadora, e engenheiros elétricos deixaram de traçar circuitos manualmente para usar ferramentas CAD
      O interessante é que a engenharia de software também precisa evoluir. Processos e ferramentas também devem evoluir, como fizeram ao longo dos anos
      Quando me formei na faculdade em 2004, estudávamos o período da “crise do software”, os processos waterfall e o começo das novas “metodologias iterativas”
      Também estudávamos a passagem do código espaguete para programação estruturada em Pascal/C, e depois para programação orientada a objetos
      As metodologias de engenharia também evoluíram. Houve o famigerado UML, métodos formais como a linguagem Z para verificação formal e medidas de complexidade de software como ABC e complexidade ciclomática
      Hoje, como o computador está passando a escrever a maior parte do código, o valor das linguagens atuais e dos processos atuais de desenvolvimento de software está diminuindo. Linguagens de programação foram feitas para humanos. Caso contrário, continuaríamos escrevendo em assembly
      Agora precisamos mudar a abstração que usamos para comunicar intenção ao computador e verificar se as instruções finais fazem o que queremos
      Tenho muita curiosidade sobre essa nova abstração. Acredito que, quando os pequenos detalhes da codificação forem totalmente automatizados, talvez vejamos mais rigor verdadeiramente engenheirístico nas profissões de engenharia de software
    • Imagine que em 2020 existam duas empresas concorrentes, cada uma com 100 programadores. Todos nós sabemos como essas organizações funcionam. Estão sempre correndo atrás, cada funcionalidade adicionada abre várias funcionalidades futuras possíveis, todos já vivemos isso e em grande parte ainda vivemos
      Agora imagine que, em 2026, as duas empresas concluam que a IA deixa os desenvolvedores 10 vezes mais rápidos. Não estou dizendo que isso seja real; é só um número redondo
      A empresa 1 demite 90 programadores e faz o mesmo trabalho com 10
      A empresa 2 mantém todos os programadores e faz 10 vezes mais, talvez até contratando mais
      Quem vence no mercado?
      A resposta, como sempre, é “depende”, mas acho que o espaço em que a empresa 1 pode vencer é muito menor do que o da empresa 2. Exige uma combinação muito específica de condições de mercado; não é impossível, mas apostar que você é a exceção é arriscado
      Durante a aceleração, enquanto a nova realidade ainda não assentou, a resposta da empresa 1 pode parecer superficialmente atraente para o pessoal do financeiro
      Mas, em qualquer mercado, se uma única empresa escolher a solução da empresa 2 e disparar na frente, o resto do setor inteiro será obrigado a seguir para competir de verdade
      No médio e longo prazo, também parece improvável que a criação de valor que um programador individual gera e que pode ser capturada em salário diminua
    • A preocupação é se esse trabalho de fazer esse tipo de software vai pagar o suficiente para acompanhar um custo de vida disparando
      Historicamente, os empregos criados pela automação tendiam a ter salários menores e menos autonomia
    • Mesmo que façamos mais software, isso não resolve nada se a maior parte for apenas duplicação funcional de outro software
      Em outras palavras, se toda empresa reinventa a roda várias vezes. Aumentar em 10 vezes o desenvolvimento de software que não traz nada de novo além de ter sido escrito num framework novo e brilhante não tem utilidade
      Na minha opinião, deveríamos começar a eliminar a maior parte do software. Voltar ao básico, ver o que é necessário, melhorar isso e concluir. Seria bom terminar um software ao menos uma vez
    • Se você trocar software engineer por secretary e creating software por typing correspondence, a frase continua valendo
      Num mundo em que a IA resolveu a programação e o design de software, o valor vai se acumular para pessoas com expertise em outros domínios. Elas agora terão o poder de 1000 desenvolvedores profissionais, e o valor não vai se acumular para pessoas com habilidade redundante, diante de ferramentas de IA melhores, mais rápidas e mais baratas
  • A menos que eu esteja perdendo alguma coisa, há um problema lógico claro aqui
    Se usar LLMs para ganhar produtividade exige aceitar atrofia de habilidades, então nós, desenvolvedores com vida útil limitada, somos os únicos substituíveis. A próxima geração nem terá desenvolvido essas habilidades manualmente, então não terá um conjunto de competências para atrofiar
    E proponho proibir publicamente a analogia de que “geração de código por LLM é como geração de código de máquina por compiladores”. Já cansou ficar repetindo o mesmo debate da mesma ideia

    • Por que a analogia LLM-compilador está errada? É só porque a saída do LLM é não determinística?