Quer você seja novo no desenvolvimento de software ou tenha décadas de experiência, sempre há espaço para aprender algo novo. O Índice TIOBE rastreia as 50 linguagens de programação mais populares, com muitos ecossistemas apresentando oportunidades de avanço na carreira e mudanças laterais. Dada a amplitude das tecnologias disponíveis, pode ser um desafio encontrar tempo para aprender uma nova habilidade e fazê-lo de forma eficaz.
Recentemente, tenho tentado aprender a linguagem Rust, uma linguagem de tipo seguro construída com desempenho, confiabilidade e produtividade em mente. Ao fazer isso, aprendi algumas técnicas para usar assistentes de codificação de IA que quero compartilhar com você para melhorar sua experiência de aprendizado.
Ao final desta postagem, você deverá ter algumas novas habilidades baseadas em IA que poderá aplicar durante sua jornada de aprendizado e acelerar em direção aos seus objetivos. No escopo deste artigo, quando digo IA, quero dizer os assistentes de codificação baseados em grandes modelos de linguagem, como Amazon Q Developer (anteriormente CodeWhisperer), GitHub Copilot e JetBrains AI Assistant. Você pode aplicar todas as dicas abaixo à ferramenta de sua escolha.
Desconfie do conhecimento paramétrico
“Conhecimento paramétrico” são informações armazenadas no modelo durante o treinamento. Os dados codificados são a razão pela qual a IA muitas vezes pode responder rapidamente com informações precisas. Ainda assim, como você provavelmente já viu nas notícias, a IA pode dar respostas espetacularmente erradas em outros momentos.
O que isso significa para nós como usuários? Embora estes sistemas possam ser úteis, têm limites limitados pelo tempo e recursos necessários para recolher dados e treinar o modelo. Por exemplo, a OpenAI treinou o modelo ChatGPT 4 Turbo com informações até dezembro de 2023, e o conteúdo do conjunto de dados é desconhecido. Do ponto de vista do usuário, há incerteza sobre se existe conhecimento “completo” dentro de qualquer modelo específico e por que às vezes podemos ficar desapontados com suas respostas.
Estar atento à data limite do conjunto de dados pode ajudá-lo a compreender e processar melhor as respostas de suas sessões de bate-papo de IA. Como consumidor que procura um serviço para adquirir, pesquisar as práticas de coleta de dados e o processo de treinamento de um fornecedor pode levar a uma experiência mais satisfatória.
Embora a IA possa ser geralmente útil, fontes humanas de conhecimento verificadas ainda serão as mais valiosas durante qualquer processo de aprendizagem. Isso não quer dizer que os sistemas de IA estejam sempre errados, mas você precisa adquirir o hábito de questionar se as informações que você consome estão corretas. Um motivo adicional para sermos cautelosos é que os criadores desses sistemas os treinaram para serem úteis acima de tudo. Às vezes, eles podem ser “muito úteis”, alucinando ideias e conceitos que podem não existir.
Em resumo, é necessária “inteligência real” para compreender quando a IA comete erros.
Leia o código e solicite explicação
O movimento do software de código aberto proporcionou a todos os programadores em aprendizagem acesso fácil ao código de produção. As bases de código-fonte aberto oferecem uma excelente oportunidade para ver como os profissionais escrevem e aprender idiomas, truques e muito mais. Mas ler uma língua desconhecida pode ser assustador e totalmente confuso sem um quadro de referência ou compreensão básica.
Uma técnica que tenho usado é encontrar código no popular site de compartilhamento de código GitHub para idiomas específicos e colá-lo em uma sessão de bate-papo de IA, junto com os prompts “Por favor, explique este código” e “liste os conceitos importantes da linguagem”. acontecendo dentro deste bloco de código.”
Um modelo para este prompt pode ser parecido com isto.
Por favor, explique o seguinte código
“`ferrugem
// código de ferrugem vai aqui
“`
Além disso, liste os conceitos de linguagem importantes da descrição em uma lista com marcadores para que eu possa fazer mais pesquisas.
A lista de tópicos resultante é uma excelente maneira de concentrar meu aprendizado no que é essencial no momento, em vez de tentar absorver informações de uma biblioteca inteira de uma só vez.
O JetBrains AI Assistant permitirá armazenar modelos de prompt para reutilização, o que é extremamente útil conforme você alterna entre diferentes projetos.
Solicitar comentários detalhados embutidos
Uma parede de código pode ser muito intimidante quando você ainda não aprendeu completamente a sintaxe ou a semântica de uma linguagem. Usar o prompt “comentar cada linha” é uma maneira rápida e fácil de ter uma ideia geral do que um aplicativo pode estar fazendo.
Com o JetBrains AI Assistant, você também pode obter uma visualização comparativa das alterações em uma visualização lado a lado ou unificada. A visualização permite revisar rapidamente as alterações e optar por aceitá-las ou rejeitá-las.
Jogue com diferentes opções
Aprender qualquer tópico envolve experimentar e, mais importante, brincar com os conceitos aprendidos. Isso é essencial para encontrar uma solução funcional e entender quando tentar uma abordagem diferente. Com a IA, testar implementações variantes nunca foi tão simples.
Aqui está um prompt que usei para descobrir recursos na linguagem Rust que me permitem acompanhar e fazer pesquisas adicionais.
Dada a API a seguir, mostre-me três implementações diferentes
“`ferrugem
fn adicionar(x: i32, y:i3) -> i:32 {
//a implementação vai aqui
}
“`
Lembre-se, trata-se de aprendizagem, portanto as APIs não precisam ser particularmente sofisticadas. Brincar com ideias permite descobrir diferentes caminhos de aprendizagem fora da sessão de chat de IA. A técnica é excelente, principalmente se comparada à caça tradicional de tópicos, que pode ter limites com base no seu entendimento de um determinado assunto.
Algumas ferramentas, como o Amazon Q Developer, oferecem opções inline, permitindo percorrer exemplos sem sair do contexto do seu editor. Pressionar as teclas de seta para a direita e para a esquerda permite mover-se entre as opções até encontrar uma de sua preferência.
Mais contexto é sempre melhor
Mencionei as limitações de informações incorporadas dos LLMs acima. Tenha em mente que, onde estes serviços possam carecer de informações, você estará em uma posição perfeita para fornecê-las. Mas você precisa fazer isso da maneira certa.
A experiência moderna de pesquisa na Internet nos treinou para fazer perguntas rápidas baseadas em palavras-chave em caixas de texto. Consultas no estilo de pesquisa são um erro comum que vejo muitos novatos na IA cometerem, e isso pode deixá-los desapontados com os resultados. Pensar nas sessões de chat de IA como “pesquisa” é um mau hábito a ser aplicado ao usar assistentes de IA, já que os criadores de LLMs os construíram para prever o que você pode querer.
A melhor maneira de obter melhores previsões é ser o mais extenso e explícito possível.
Uma abordagem que funciona bem é a solicitação baseada em exemplos. Quanto mais exemplos você fornecer, melhores serão os resultados. Aqui está um modelo de prompt que pode ajudá-lo a descobrir novas ideias em sua jornada de aprendizado.
Dados os três exemplos a seguir, como seria uma implementação para
? Exemplo 1:
“`
“`
exemplo 2:
“`
“`
exemplo 3:
“`
“`
Os dados que você insere em uma sessão de chat fornecem o contexto necessário para alcançar o resultado desejado. Não tenha medo de corrigir ou adicionar mais contexto à medida que avança. Quanto mais, melhor, pois o modelo tem mais informações nas quais basear as respostas.
Para manter a conversa e aumentar o contexto da sessão de chat, o Amazon Q Developer oferece um conjunto de perguntas naturais de acompanhamento para mantê-lo envolvido no processo de aprendizagem.
Dê uma olhada na conclusão do código
A maioria dos serviços de IA oferece preenchimento de código multilinha. Embora possa ser tentador aceitar todas as opções apresentadas no editor, isso muitas vezes impede o meu progresso na aprendizagem. Em vez disso, gosto de começar criando um comentário de código que indique meu objetivo.
// TODO: cria uma expressão de correspondência para processar as diferentes variantes da mensagem
Na figura a seguir, vemos o GitHub Copilot se oferecendo para completar minha declaração. Parece bom à primeira vista, mas devo fazer uma pausa para digerir a opção e se ela atende à minha intenção. Antes de pressionar Tab, o que é muito tentador, preciso parar. Por que?
O motivo é verificar se o código é algo que eu possa ler e processar com meu conjunto de habilidades atual. Se for, então estou progredindo. Se não for, então devo dedicar algum tempo para compreender onde existem as lacunas no meu conhecimento. Você nunca deve aceitar código que não compreende totalmente em sua base de código.
Observe que você pode configurar esse recurso para ser menos intrusivo e exibir apenas conclusões sob demanda para reduzir a carga cognitiva de alternar entre escrever e ler código.
Explique os erros e encontre soluções
Com cada pilha de programação, você encontrará erros de compilação e tempo de execução. Alguns desses erros podem ser enigmáticos. Se você estiver com dificuldades para entender por que seu aplicativo está falhando, use uma sessão de bate-papo do assistente de IA para explicar o problema, descobrir onde ele ocorre e propor uma solução.
Qual é exatamente o problema aqui no meu backtrace do Rust? Reduza a resposta ao arquivo e linha e explicação do erro e proponha uma solução.
“`
“`
Aqui está um exemplo de uso deste prompt para entender o que aconteceu em meu backtrace de Rust.
Compartilhar ideias
Embora passar de um tópico para outro com sessões de chat de IA possa parecer natural, é sempre bom desacelerar e recontextualizar seu conhecimento recém-adquirido com outras pessoas. Depois de aprender um novo conceito e criar um exemplo funcional, eu o compartilho com outros alunos e especialistas para obter feedback valioso. Lembre-se de que a IA só pode ser útil em relação às suas solicitações, enquanto outros seres humanos irão enriquecê-lo com a experiência vivida e prever possíveis armadilhas das quais você pode estar alheio.
As plataformas de mídia social são um ótimo lugar para compartilhar capturas de tela, exemplos de código e ideias e receber feedback valioso que você pode incorporar em futuras sessões de bate-papo de IA.
Resuma o bate-papo
E aqui vai uma dica para pessoas (como eu) que podem não ser boas em fazer anotações, mas podem querer relembrar os esforços do dia anterior. Quando seus neurônios estiverem disparando no final de uma longa sessão de aprendizado, peça à sua sessão de bate-papo atual para resumir todas as suas perguntas e listar uma resposta de frase única para cada pergunta.
Considerando o que conversamos, liste todas as perguntas e um resumo de uma única frase de cada resposta.
A resposta é um excelente guia de referência rápida para sua próxima sessão de aprendizado. Também é uma ótima postagem no blog onde você pode praticar o compartilhamento de suas ideias e experiências de aprendizagem com outras pessoas.
Aprenda mais rápido com IA
Espero que essas dicas sejam úteis ao usar ferramentas de IA para aprender de forma mais rápida e eficaz. Essas ferramentas têm como objetivo capacitá-lo e ajudá-lo a atingir as metas que você estabeleceu para si mesmo. Achei-os úteis para formar novos pensamentos e explorar aqueles que eu não sabia que existiam.
Mais importante ainda, eles me permitiram conectar-me com comunidades de outras pessoas que ampliaram meu conhecimento. Se você tiver outras dicas para acelerar seu aprendizado usando IA, compartilhe suas idéias e dicas comigo e com outras pessoas.
Khalid Abuhakmeh é desenvolvedor de software com 16 anos de experiência em codificação, especializado em tecnologias Microsoft .NET. Ao longo de sua carreira, ele ocupou vários cargos de desenvolvedor de software, desde desenvolvedor júnior até diretor de desenvolvimento de software. Atualmente, ele trabalha como desenvolvedor defensor da JetBrains, com foco no ecossistema .NET.
–
O New Tech Forum oferece um local para líderes de tecnologia – incluindo fornecedores e outros colaboradores externos – explorarem e discutirem tecnologias empresariais emergentes com profundidade e amplitude sem precedentes. A seleção é subjetiva, baseada na escolha das tecnologias que acreditamos serem importantes e de maior interesse para os leitores do InfoWorld. A InfoWorld não aceita material de marketing para publicação e reserva-se o direito de editar todo o conteúdo contribuído. Envie todos consultas para [email protected].