Como a IA faz para entender o código fonte
Você sabia que existe algo simples que você faz quer pode estar atrapalhando a inteligência artificial de aprender seu código e te ajudar?
Hoje até quem acabou de começar na programação vai poder acelerar sua produtividade montando programas de computador. E, se você não programa, mas trabalha em uma empresa que seu time ainda não usa alguma forma de IA para programar, a hora de mudar essa cultura chegou depois dessa newsletter.
Hoje vou compartilhar um resumão de formas prática de usar inteligência artificial enquanto programa, e aumentar a sua produtividade. Ao final da newsletter também vou compartilhar algumas ferramentas adicionais que pessoas no nosso time tem usado e aprovado!
O experimento no meu negócio
Hoje já fazem uns 2 meses desde que começamos um experimento com um grupo específico de desenvolvedores dentro da minha empresa no segmento de mercado financeiro: a TC.
O time que recebeu a ferramenta está espalhado na empresa, possui backgrounds diferentes, e não foi previamente avisado outros integrantes do time de que eles estariam usando para ver se seria gerado algum tipo de percepção diferente dos demais.
As mais diversas atividades foram envolvidas nesse processo:
aumentar a cobertura de testes,
entender formas de refatorar um trecho de código,
agilizar a escrita de códigos triviais, etc…
Vale ressaltar para os haters de plantão que nós temos consciência de que IA com codificação é ainda um grande experimento para todo mundo, porém nosso time já conseguiu obter excelentes resultados de produtividade. O que pode deixar muitas pessoas como as que eu falei na minha última newsletter, decepcionadas.
A mãe de todas as AIs de programação
Se o ChatGPT é o pai de todas as inteligências artificiais por aí, o Github Copilot é a mãe de todas as ferramentas de programação. Isso porque ela já integrada no maior reservatório de código fonte do mundo: o Github! E, usar o Github Copilot pode ser muito parecido com o que todo mundo vê na internet: escrever no editor de código e ver nascendo sugestões logo embaixo.
1. Dê contexto para a IA
O Github Copilot funciona integrado em sua IDE de programação, como por exemplo, o VSCode. E para começar, como todo mundo que vai trabalhar precisa de contexto, a IA também precisa.
Nesse caso, se estiver começando do zero um novo arquivo, experimente dar mais contexto a IA para que ela entenda o que é esperado. Um exemplo, extraído de um artigo do próprio Github é assim:
/* Create a basic markdown editor in Next.js with the following features:
- Use react hooks
- Create state for markdown with default text "type markdown here"
- A text area where users can write markdown
- Show a live preview of the markdown text as I type
- Support for basic markdown syntax like headers, bold, italics
- Use React markdown npm package
- The markdown text and resulting HTML should be saved in the component's state and updated in real time
*/
Literalmente escreva como se estivesse instruindo alguém que está começando e precisa de auxilio para entender o que é esperado. E daí, olha o que acontece logo em seguida:
2. Quebre em partes
O desejo de muitas pessoas era que você dissesse “faça um aplicativo“ e daí uma aplicação inteira aparecesse do outro lado. Mas, ainda não estamos nesse estágio. Por isso, quanto mais específica for a tarefa que você quer pedir para o Copilot, melhor ele vai se sair.
Exemplos de tarefas específicas são pedir para escrever:
um cenário de teste,
uma função que filtra elementos em uma lista,
uma requisição em API que trata erros de HTTP, etc.
3. Dê exemplos
Outra coisa que quem já leu anteriormente aqui sobre prompt engineering, sabe o ChatGPT funciona melhor quando você dá alguns exemplos do que seria um modelo de resposta aceitável.
Nesse caso, quando o que você espera que aconteça é algo que pode ser entregue em mais de um formato, inclua no prompt um exemplo de formato de retorno.
// Map through an array of arrays of objects
// Example: Extract names from the data array
// Desired outcome: ['John', 'Jane', 'Bob']
const data = [ [{ name: 'John', age: 25 }, { name: 'Jane', age: 30 }], [{ name: 'Bob', age: 40 }] ];
const mappedData = data.flatMap(sublist => sublist.map(person => person.name));
console.log(mappedData);
Mantenha abas abertas
O Copilot usa uma técnica para se contextualizar no seu código chamada “abas vizinhas”. Basicamente ele dá uma espiada no que tá aberto, considera aquilo relevante para o que você está fazendo agora, e inclui no contexto de treinamento do que você está programando naquele momento.
Hoje em dia todo mundo anda com 30 abas abertas, mas talvez você queira manter apenas as que podem alimentar o Copilot de forma relevante para o contexto do que está buscando.
Boas práticas fazem a vez
Ao contrário das pessoas que acreditam que por causa do ChatGPT elas podem esquecer como se escreve direito, porque a IA vai corrigir tudo. Na programação não é bem assim. É preciso usar boas práticas de programação para ajudar a IA a entender o que você está fazendo, ou buscando.
Um exemplo disso é a nomenclatura de variáveis e funções. Procure usar nomes claros e auto-explicativos que você verá o ChatGPT melhorar ainda mais o resultado das sugestões.
Se você quiser se aprofundar ainda mais em como surfar e se tornar uma pessoa que programa por 30, vale conferir essa série de artigos do Rizèl.
Se você respondeu que sim, então você vai querer receber o primeiro eBook de prompts gratuitos que vou mandar final desse mês para todos os assinantes.
Se você respondeu que não, eu acho que você deveria começar agora a blindar sua carreira contra IA, já começando a estudar, e o primeiro eBook é simples, os próximos serão mais avançados.
Acontecendo no Mundo
ChatGPT não está melhorando e pode até estar retrocedendo
É isso que um estudo feito pela UC Berkeley afirmou. Aparentemente a inteligência artificial mais poderosa do mundo sofre do mesmo que seres humanos mais velhos: um cérebro gasto e cansado.
Os jogos que nunca mais acabam
A a16z, uma das maiores investidores de startups no mundo, compartilha sua visão sobre como IAs generativas vão transformar como a indústria de games funcionam introduzindo jogos que ao invés de ter edições - 1, 2, 3 etc - serão um único jogo que nunca acaba.
Ora ora, temos um “Xerox Holmes” aqui
Ou não, porque a OpenAI desistiu do seu projeto que tinha o objetivo de criar um classificador que conseguisse dizer se um texto foi criado com inteligência artificial ou não. Fica até difícil de dizer se eles só começaram essa investigação pra dizer no final que o GPT é tão bom que não dá nem pra saber a diferença de um humano. 🥸
Empresa da Semana
Legal usar o ChatGPT, mas ter que ficar mudando de aba toda hora pode ser um saco! Já pensou poder fazer isso em qualquer aba do navegador? É esse problema que o Mano AI resolve pra gente.
Bem legal as dicas para o Copilot! Usei por umas semanas, mas para mim chegou em um ponto que eu senti que ele estava me enviesando muito, principalmente quando precisava pensar em algum solução "não convencional".
Enquanto estava pensando ele dava a sugestão dele e então eu ficava só com ela na cabeça hahaha. O problema é que nem sempre ele estava certo! Vou dar mais uma chance seguindo suas dicas
Boa mano, realmente tem artigos falando sobre como a ferramenta tem criado viés de programação.
Mas, dado que muita gente só copia e cola código da internet sem entender o que tem nele. Isso só lembra de que precisamos fazer as coisas com intenção mesmo!