스크립트
00:00:00Você ainda lê o código ou deveria ainda ler o código?
00:00:04Essa é uma pergunta, uma discussão que surgiu no TechX durante o fim de semana,
00:00:09na minha bolha, pelo menos.
00:00:12E é uma pergunta interessante, obviamente também uma bela pergunta para gerar polêmica,
00:00:15mas não é sobre isso que este episódio deve ser.
00:00:18E eu vou responder a essa pergunta.
00:00:20Para mim, não é um simples sim ou não.
00:00:22E eu também quero ouvir a sua opinião.
00:00:24Eu quero mesmo.
00:00:25Então, por favor, compartilhe-a também.
00:00:26Não é simples.
00:00:27E eu voltarei a essa pergunta aqui.
00:00:29Mas acho que outra pergunta deve vir antes.
00:00:32Você ainda escreve o código?
00:00:35Porque, obviamente, se você ainda escreve todo o seu código, você vai lê-lo, certo?
00:00:40Então, sim, você não precisa lê-lo porque você o escreveu.
00:00:43Mas para muitos desenvolvedores, incluindo eu mesmo, provavelmente não escrevemos todo o nosso código.
00:00:49E você pode, obviamente, estar em qualquer ponto de uma faixa de 0 a 100%
00:00:55em relação a essa questão, quanto código você ainda escreve.
00:00:58Eu provavelmente estou bem perto de 100% agora mesmo.
00:01:03E isso definitivamente mudou muito nos últimos seis, oito meses,
00:01:08como aconteceu com muitos desenvolvedores, tenho certeza, com os modelos de IA ficando melhores.
00:01:14Mas o mais importante é que esses modelos estão melhores em seguir instruções,
00:01:18sendo ajustados para seguir instruções melhor,
00:01:20e então as ferramentas ao redor, como o Claude Code e assim por diante.
00:01:22Então isso mudou para mim.
00:01:24E eu falei sobre isso em outro episódio,
00:01:26como isso também tira muita alegria do ofício.
00:01:30E estou tentando encontrar uma nova alegria na construção de coisas
00:01:33e não na parte da escrita de código, que foi tirada de mim.
00:01:37Mas falei sobre isso em outro episódio, como mencionei.
00:01:39Então não é sobre isso que este episódio é.
00:01:42Mas esta é, claro, a primeira pergunta importante.
00:01:45Você ainda escreve o código?
00:01:47E certamente essa resposta pode ser sim para você.
00:01:50Você pode estar mais perto de 0% aqui ou em qualquer lugar nessa faixa.
00:01:55E isso é absolutamente normal.
00:01:57Acho que é muito cedo para dizer qual é o lugar certo nessa escala,
00:02:02porque ainda estamos no início dessa evolução da IA no que diz respeito à programação.
00:02:07E teremos que ver os efeitos a longo prazo de mais e mais softwares sendo totalmente gerados por IA,
00:02:12como é definitivamente o caso, não importa onde você esteja.
00:02:16Então essa é a primeira pergunta importante.
00:02:18E ela se relaciona com a outra.
00:02:19Mas o que dizer dessa outra agora?
00:02:21Você ainda lê o código?
00:02:22Bem, novamente, isso é complexo porque podemos dividi-lo.
00:02:26Temos ler o código.
00:02:29E eu diria que temos se importar com o código.
00:02:33E para mim, isso não é a mesma coisa.
00:02:36E você também pode ler, mas não se importar, o que é meio idiota.
00:02:40E eu voltarei a isso.
00:02:41Ou não ler e se importar, o que é possível, eu diria.
00:02:45E isso tem implicações.
00:02:47Então, como mencionado, você pode não ler e não se importar.
00:02:51Você pode ler e não se importar.
00:02:55Você pode não ler, mas se importar.
00:02:58E, claro, você pode ler e se importar.
00:03:02Essas são as quatro combinações se você tiver essa divisão de ler e se importar.
00:03:08Agora, se você não lê e não se importa, essa é a minha definição de 'wipe coding'.
00:03:14Agora, você pode ter uma definição diferente e tudo bem.
00:03:17Mas esta é a minha definição de 'wipe coding'.
00:03:20Não ler, não se importar, isso é 'wipe coding'.
00:03:22Agora, isso não significa que você não se importe com o produto.
00:03:25Você provavelmente se importa.
00:03:26Porque se você não se importa com o produto, por que está fazendo algo em primeiro lugar, certo?
00:03:31Mas você pode simplesmente se importar com o produto.
00:03:33Se funciona, você fica feliz.
00:03:34Se houver um problema, você apenas diz à IA, ei, blá, blá, blá, não está funcionando.
00:03:38Por favor, corrija.
00:03:39E você não se importa com o código e não lê o código.
00:03:42Essa é a minha definição de 'wipe coding'.
00:03:44Agora, se você lê o código, mas não se importa, isso é meio estranho.
00:03:49Acho que você está apenas perdendo tempo nesse caso.
00:03:52Se você lê, mas não se importa, pode estar apenas em um emprego onde é pago para fazer algo.
00:03:57Então, você gasta seu tempo analisando código com o qual não se importa de verdade.
00:04:00Não sei.
00:04:01Não é exatamente o meu foco aqui.
00:04:03Mas, claro, você poderia ter essa combinação.
00:04:05Agora, aqui estão as combinações que são mais interessantes, no entanto.
00:04:08Não ler e se importar, e ler e se importar.
00:04:11Agora, vamos começar com ler e se importar.
00:04:13Acho que essa é a óbvia.
00:04:15Acho que você poderia chamar isso de engenharia de software baseada em IA ou algo parecido.
00:04:20Porque você pode não escrever mais o código ou nem tudo dele.
00:04:24Mas você se importa com ele como engenheiro de software.
00:04:26Você pode ser responsável por ele.
00:04:28E você o lê porque, como se importa com ele, como pode ser responsável por ele,
00:04:33você, bem, você quer ver o que está acontecendo ali, certo?
00:04:35Faz sentido.
00:04:36Então, essa é uma óbvia.
00:04:37E eu voltarei a ela.
00:04:38Mas e quanto a não ler e se importar?
00:04:40Isso é sequer possível?
00:04:42E eu diria, sim, é.
00:04:43É possível, mas é difícil.
00:04:46E poderíamos discutir se esse é o futuro, talvez.
00:04:50E a resposta chata primeiro.
00:04:52Não sei, obviamente.
00:04:53Não sei se esse é o futuro.
00:04:56Assim como há quatro anos, eu não teria imaginado que um dia não estaríamos mais escrevendo o código
00:05:02mais.
00:05:03Eu talvez só não esteja imaginando ainda que um dia não estaremos mais lendo o código de forma alguma.
00:05:09Na realidade, porém, provavelmente acabaríamos em uma escala como esta.
00:05:12E eu diria que já estamos em uma escala como esta.
00:05:15Mas, novamente, voltarei a isso.
00:05:16Então, não ler e se importar.
00:05:18Isso é sequer possível?
00:05:20Como mencionei, eu diria, sim, provavelmente é.
00:05:24Mas é uma forma totalmente diferente de pensar sobre software.
00:05:27Depende de você confiar na IA, não apenas quando se trata de escrever o código, mas você
00:05:34provavelmente também está usando IA para revisar o código, para escanear ou analisar sua base de código, para
00:05:40auditar sua base de código.
00:05:41E você pode, claro, fazer isso.
00:05:43Você poderia estar usando 'cloud code' com Fable 5 ou o que for, ou Codex ou Pi, meu agente favorito, com seu modelo de IA favorito para trabalhar no código.
00:05:55E então você poderia usar o mesmo agente em uma nova sessão com o mesmo ou um modelo diferente, ou usar um agente diferente em uma sessão diferente com um modelo diferente.
00:06:03Qualquer combinação disso, você poderia estar usando isso para revisar o código, para revisar a última alteração, para fazer auditorias frequentes em toda a base de código.
00:06:12Você poderia estar fazendo coisas assim.
00:06:13Você pode e provavelmente deveria também gastar muito tempo planejando e lendo esses planos, lendo essas especificações.
00:06:22Acho que não ler o código, se feito da maneira certa, se esse for o futuro, não deve implicar que você não lê nada.
00:06:32Você deveria absolutamente gastar mais tempo criando bons planos junto com a IA, garantindo que está trabalhando nas coisas certas com os detalhes de implementação certos, se quiser colocar dessa forma.
00:06:47Então, da maneira certa, você não se importa apenas com o produto, você se importa com a arquitetura, com os blocos de construção.
00:06:54E você pode, é claro, garantir ou não garantir, mas aumentar as chances de obter bons resultados lá se você gastar mais tempo nas especificações, nos planos, e então deixar a IA implementar.
00:07:08E você então faz revisões de código onde você dá ao agente revisor também acesso a essa especificação ou ao plano que a IA deve implementar.
00:07:15Agora, ainda assim, é claro, um problema que você terá aqui, e é por isso que não estou nesse trem de 'eu não leio nada', é que você não sabe com certeza o que está acontecendo na sua base de código.
00:07:29Você não pode. Você simplesmente não pode saber com certeza se não está lendo.
00:07:33Você pode, claro, tentar o seu melhor para fazer a IA gerar o código que você quer que ela gere e usar a IA para revisar, mas você não tem 100% de certeza se não olhar para ele.
00:07:44Digo, isso não é apenas o caso para programação, obviamente.
00:07:46Isso é verdade para qualquer coisa na vida.
00:07:48Se você tem uma IA ou um advogado, nem precisamos falar sobre IA, redigir um contrato, e você não o lê de forma alguma, e apenas o assina, você não tem certeza do que está lá dentro.
00:08:00E você pode ou não estar fazendo isso.
00:08:03Eu pessoalmente não faço isso.
00:08:05Eu pessoalmente ainda leio código, mas essa é agora a parte interessante, talvez.
00:08:13Novamente, em uma escala, não leio 100% do código.
00:08:19Tenho dificuldade em lhe dizer exatamente onde estou nessa escala.
00:08:24Pode ser em algum lugar no meio, porque reviso o código, todo o código que a IA me dá.
00:08:31Mas, claro, isso não significa que leio cada linha necessariamente.
00:08:36Significa que pulo para as partes importantes primeiro, que consigo identificar como engenheiro de software.
00:08:42Eu sei quais blocos de construção são as partes importantes ou quais partes de um determinado 'pull request' ou de um 'commit' feito são as importantes.
00:08:51Eu mergulho nessas.
00:08:53Eu analiso essas.
00:08:54Eu mergulho nas partes críticas.
00:08:56Então eu mergulho em algumas partes onde sei que a IA gosta de errar.
00:08:59E é assim que eu reviso.
00:09:01E posso apenas escanear ou passar o olho brevemente nas partes menos importantes.
00:09:07Quero dizer, por exemplo, quando se trata da IA escrever algum código para ler algumas variáveis de ambiente e analisá-las,
00:09:16posso não ler cada linha ali.
00:09:18Mas só quero ver a abordagem geral, especialmente porque a IA, por exemplo, é propensa a escrever código excessivamente defensivo, onde tem 'fallbacks' para 'fallbacks' para 'fallbacks'.
00:09:27E quero evitar isso.
00:09:28Então eu ainda faço minhas verificações ali, mas não me importo com todos os detalhes minuciosos de como ela analisa um número inteiro ou algo assim, por exemplo.
00:09:36Então é onde eu me colocaria agora.
00:09:42Mas assim como com a escrita do código, não sei como isso mudará, como posso estar me movendo para perto de não ler 100%.
00:09:50Agora, não sei se chegarei a 100%.
00:09:54Não posso ver o futuro.
00:09:55E acho que se chegarmos a 100% tanto para escrever quanto para ler, realmente temos que ver o que isso significa para nós como engenheiros de software.
00:10:06Pode ainda ser super importante dar à IA as tarefas certas, saber sobre os sistemas de assinatura e sobre a arquitetura.
00:10:15E esse seria o meu palpite, que é nessa direção que estamos indo.
00:10:18Mas obviamente, isso é difícil de dizer.
00:10:21A pergunta será se, em algum momento, não estaremos escrevendo nenhum código e não estaremos lendo nenhum código, se você ainda precisa saber como programar, certo?
00:10:31Se vale a pena ser capaz de ler ou escrever código, certo?
00:10:35Se isso ainda é importante.
00:10:36E agora, definitivamente ainda é para mim.
00:10:39Definitivamente ainda é também porque a pergunta é, com o que você se importa, certo?
00:10:44Essa é a outra parte, se importar.
00:10:46Ler é uma parte, mas lemos porque nos importamos e podemos nos importar sem ler, como deixei claro.
00:10:53Mas o que o 'se importar' sequer significa?
00:10:55E eu diria que 'se importar' obviamente pode significar muitas coisas.
00:11:03Pode significar algo como o estilo de código.
00:11:06Você pode se importar com o estilo de código, como as funções são criadas, qual abordagem é usada lá.
00:11:13Você pode até se importar com decisões maiores, como se quer programação orientada a objetos, programação funcional, coisas assim.
00:11:21Você pode se importar com a legibilidade do seu programa.
00:11:26Você pode se importar com a segurança e com coisas como confiabilidade.
00:11:33E existem muitas outras dimensões que poderíamos pensar.
00:11:35Existem algumas dimensões aqui, que eu digo que importam menos agora.
00:11:39Estilo de código, legibilidade, especialmente se você não lê, não muito importante.
00:11:44É apenas importante nesse caso, quero dizer, que a IA seja capaz de ler e entender o código.
00:11:50E muito provavelmente ficará bem com isso.
00:11:53Agora, o estilo de código ainda pode importar também por razões de eficiência de 'tokens'.
00:11:58Se você tem uma base de código onde você apenas tem muitas verificações desnecessárias, o que, como mencionado, é algo que a IA agora tende a fazer,
00:12:04ou alguns modelos de IA tendem a fazer, isso também será tokens extras para queimar quando a IA analisar esse código.
00:12:11Então isso ainda é alguma coisa aqui, mas pode não importar tanto quanto importava no passado.
00:12:18Quero dizer, todos nós tínhamos nossas próprias preferências em relação ao estilo de código no passado.
00:12:22E para mim, isso definitivamente mudou.
00:12:24Isso definitivamente mudou.
00:12:26Agora, obviamente, porém, coisas como segurança, confiabilidade, também testabilidade, isso ainda importa muito.
00:12:34Obviamente, essa é a parte, se alguma coisa importa no software.
00:12:39Você quer que ele faça o que deveria fazer.
00:12:41Você quer que ele faça isso com segurança.
00:12:43Você pode se importar com desempenho.
00:12:46Você deve se importar com desempenho.
00:12:47Deve ser confiável.
00:12:48Não deve travar aleatoriamente nos seus usuários.
00:12:51E, claro, essas são todas coisas que vemos no software moderno.
00:12:54Software moderno muitas vezes não é confiável, pode não ser seguro.
00:12:58E 100% de segurança, é claro, não é alcançável, especialmente com esses modelos de IA sendo muito bons em,
00:13:04encontrar vulnerabilidades de segurança e nós não necessariamente tendo acesso aos modelos mais recentes que podem fazer isso.
00:13:10Mas isso é uma discussão diferente.
00:13:11Mas você ainda deve se importar com isso.
00:13:13Esse é o meu ponto.
00:13:14Você deve tentar construir software seguro, confiável e de alto desempenho, na minha opinião.
00:13:20E como engenheiro de software, isso, é claro, também significa que você pode querer dar sua contribuição sobre quais padrões usar, quais bibliotecas usar em um projeto.
00:13:30Então é aí que passamos mais para essa área de design de sistemas ou arquitetura de software, que não é a mesma coisa, design de sistemas, arquitetura de software.
00:13:39Mas essas são as coisas que ainda importam muito, eu diria.
00:13:44E essas são as coisas onde ter boas especificações, ter bons planos é importante se você chegar mais perto de 100% não lendo, o que, novamente, pode não ser o caso para você.
00:13:57Isso tudo é algo onde não há erro ou acerto, como tento deixar claro.
00:14:02E, portanto, é claro, essa questão inteira de 'você ainda lê o código' é obviamente também um pouco de 'rage bait', como mencionei antes, e não tão fácil de responder.
00:14:18E simplesmente não há certo ou errado aqui.
00:14:30E, a propósito, isso deveria ser óbvio, mas também há uma grande diferença.
00:14:34Se você tem algo, algum software rodando em produção, talvez sendo usado por milhares, centenas de milhares ou milhões de pessoas, e também depende de qual área você está trabalhando.
00:14:37Quero dizer, se você está trabalhando em bancos, digamos, erros no seu software podem ter consequências catastróficas, e não apenas bancos, há partes ainda mais importantes em bancos, obviamente saúde, defesa, tecnologia, tudo isso.
00:14:49Então esse é um aspecto importante.
00:15:05Se você é um 'indie hacker' com zero usuários, sim, claro, você pode não se importar muito com o código.
00:15:10Mas no geral, acho que ainda podemos ver uma tendência ou podemos ver uma tendência onde, assim como com a escrita de código, também estamos nos movendo para perto de 100% por não ler o código.
00:15:18Eu só não tenho certeza se chegaremos a 100% e se deveríamos chegar lá, se isso é uma boa ideia.
00:15:32E definitivamente não deveríamos parar de nos importar.
00:15:38E então a grande pergunta apenas é, podemos nos importar sem ler?
00:15:41Isso realmente, realmente, realmente funcionará?
00:15:45Não tenho certeza.
00:15:48Para mim, não tenho essa confiança na IA.
00:15:49E não tenho certeza se ou quando isso mudará.
00:15:53Pode mudar.
00:15:56Não descarto isso.
00:15:57Assim como escrever código ou não escrever código mudou.
00:15:58Mas agora, ainda estou mais nessa parte de ler e se importar, ou estou em algum lugar no meio porque, como mencionei, estou em algum lugar no meio dessa escala.
00:16:03Mas como também mencionei, por favor, me deixe saber onde você está.
00:16:110% lendo, 100% lendo, talvez ainda 100% escrevendo.
00:16:15Isso também pode ser o caminho certo a seguir.
00:16:19Me avise.
00:16:21E me deixe saber seus pensamentos sobre esse tópico inteiro em geral.
00:16:22E me deixe saber seus pensamentos sobre esse tópico inteiro em geral.