O blog da AWS
Desafio de programação com Amazon Q Developer
Por Aaron Sempf, Next Gen Tech Lead na organização de AWS Partners na Ásia-Pacífico e no Japão e Paul Kukiel, arquiteto sênior de soluções na AWS.
O Amazon Q Developer é um assistente de conversação com inteligência artificial generativa (IA) que pode ajudar você a entender, construir, expandir e operar aplicações na nuvem da AWS. Você pode fazer perguntas sobre arquitetura dos serviços da AWS, sobre seus recursos na AWS, boas práticas, documentação, suporte e muito mais.
Com o Amazon Q Developer em sua IDE, você pode escrever um comentário em linguagem natural que descreva uma tarefa específica, como por exemplo “Carregar um arquivo com criptografia do lado do servidor”. Com base nessas informações, o Amazon Q Developer recomenda diretamente na IDE, um ou mais trechos de código que possam realizar a tarefa descrita. Você pode aceitar de forma rápida e fácil as principais sugestões (tecla tab), ver mais sugestões (teclas de seta) ou continuar escrevendo seu próprio código.
No entanto, o Amazon Q Developer na IDE é mais do que apenas um plug-in de preenchimento de código. O Amazon Q Developer é um assistente generativo com IA (GenAI) para desenvolvimento de software que pode ser usado para conversar sobre seu código, obter sugestões de código ou fazer perguntas sobre a engenharia de software. Isso fornece os benefícios da programação em pares (pair programming), baseada em modelos GenAI que foram treinados em bilhões de linhas de código, a partir da base de código interna da Amazon e de fontes publicamente disponíveis.
O desafio
Na Summit da AWS de 2024 em Sydney na Austrália, um empolgante desafio de programação se tornou o centro das atenções, colocando uma Equipe Azul contra uma Equipe Vermelha, com aproximadamente 10 a 15 participantes em cada equipe, em uma batalha de habilidades de programação. O desafio era composto por 20 tarefas, começando com matemática básica e manipulação de texto, e aumentando progressivamente a dificuldade para incluir algoritmos complexos e criptografia de dados.
A Equipe Azul teve uma vantagem distinta, aproveitando os poderosos recursos do Amazon Q Developer, o mais eficiente assistente generativo baseado em IA para desenvolvimento de software. Com a orientação do Q Developer, a Equipe Azul realizou tarefas cada vez mais complexas com facilidade, explorando a vasta base de conhecimento e habilidades de resolução de problemas do Q Developer. Por outro lado, a Equipe Vermelha competiu sem assistência, contando apenas com sua própria experiência em programação e habilidades de resolução de problemas para enfrentar desafios intimidadores.
Com o desenrolar da competição, as duas equipes se enfrentaram, cada uma se esforçando para superar a outra. O uso eficiente do Amazon Q Developer pela Blue Team provou ser um divisor de águas, permitindo que eles enfrentassem as tarefas mais desafiadoras com velocidade e precisão notáveis. No entanto, a pura determinação e habilidade técnica da Equipe Vermelha os manteve na corrida, demonstrando sua capacidade de pensar fora da caixa e criar soluções inovadoras.
O clímax do desafio do programação foi um final emocionante, com as duas equipes levando suas habilidades ao limite e, por fim, deixando o público encantado por suas conquistas memoráveis.
O gráfico mostra o tempo médio de conclusão dos desafions, onde a Equipe Azul “Q Developer” completou mais perguntas em menos tempo do que a Equipe Vermelha “Solo Coder”. Considerando o limite de tempo de 1 hora, a Equipe Azul conseguiu responder até a pergunta 19, enquanto a Equipe Vermelha chegou apenas até a pergunta 16.
Existem algumas suposições e validações. Pessoas que se consideram programadoras muito experientes foram incentivadas a escolher a Equipe Vermelha e não usar IA, para se testarem contra a Equipe Azul, aquelas que usaram IA. Os desafios de programação foram projetados para testar o resultado da aplicação da lógica. Eles foram projetados especificamente para serem aprovados sem o uso do Amazon Q Developer e para testar a otimização da escrita de código com o Amazon Q Developer. Como resultado, os desafios de programação funcionaram bem com o Amazon Q Developer devido à natureza e ao treinamento subjacente dos modelos do Amazon Q Developer. Muitas pessoas que participaram do evento não eram programadoras de Python (restringimos o desafio apenas ao Python) e saíram impressionadas com o quanto do desafio elas conseguiram concluir.
Um exemplo de uma das questões mais complexas que os competidores tiveram que resolver foi:
Implement the rail fence cipher.
In the Rail Fence cipher, the message is written downwards on successive "rails" of an imaginary fence, then moving up when we get to the bottom (like a zig-zag). Finally the message is then read off in rows. For example, using three "rails" and the message "WE ARE DISCOVERED FLEE AT ONCE", the cipherer writes out:
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
Then reads off: WECRLTEERDSOEEFEAOCAIVDEN
Given variable a. Use a three-rail fence cipher so that result is equal to the decoded message of variable a.
As perguntas eram de natureza lógica, o que as tornava ótimas para testar a capacidade da linguagem natural conversacional para resolver questões usando o Amazon Q Developer ou para aplicar sua própria lógica de programação para resolver a questão.
Melhor pontuação individual por equipe:
Total de perguntas concluídas | tempo individual (min) | |
Com Q Developer (Equipe Azul) | 19 | 30.46 |
Solo Coder (Equipe Vermelha) | 16 | 58.06 |
Ao comparar os dois principais competidores e considerar que o programador solo era um programador altamente experiente versus o melhor programador “Q Developer”, que era um programador relativamente novo e não familiarizado com Python, você pode ver o ganho de eficiência ao usar o Q Developer como par de programação utilizando inteligência artificial. Foram necessários os 60 minutos para o programador solo completar 16 perguntas, enquanto o programador com Q Developer chegou à pergunta final (pergunta 20, incompleta) na metade do tempo.
Resumo
Integrando recursos avançados na IDE e adotando a programação em pares, melhoraram significativamente a eficiência e a qualidade da codificação. No entanto, a introdução do Amazon Q Developer levou essa evolução a novos patamares. Ao aproveitar a vasta base de conhecimento e os recursos de resolução de problemas do Q Developer, a Equipe Azul conseguiu enfrentar desafios complexos de programação com velocidade e precisão notáveis, superando a Equipe Vermelha sem assistência. Isso destaca o impacto transformador de aproveitar a IA generativa como programadora colaborativa em pares no desenvolvimento de software moderno, oferecendo maior eficiência, melhor resolução de problemas e, em última análise, um código de maior qualidade. Comece a usar o Amazon Q Developer na sua IDE instalando o plug-in e habilitando seu builder ID hoje mesmo.
Sobre os autores
Aaron Sempf é Next Gen Tech Lead na organização de AWS Partners na Ásia-Pacífico e no Japão. Com mais de vinte anos em engenharia de software e sistemas distribuídos, ele se concentra nas soluções de integrações de sistemas complexos em larga escala e sistemas orientados à eventos. Em seu tempo livre, ele pode ser encontrado codificando protótipos para robôs autônomos, dispositivos de IoT, soluções distribuídas e projetando padrões de arquitetura de agentes para automação comercial utilizando GenAI.
|
|
Paul Kukiel é arquiteto sênior de soluções na AWS. Com mais de vinte anos de experiência em engenharia de software, ele gosta particularmente de ajudar os clientes a criar arquiteturas de software modernas e orientadas por API em grande escala. Em seu tempo livre, ele pode ser encontrado criando protótipos para microfront-ends e arquiteturas orientadas à eventos. |
Tradutor
Lucas Mendes é arquiteto de soluções sênior na AWS. Com mais de 10 anos de experiência na área de arquitetura e engenharia de software, passou por diversas posições em grandes startups da América Latina e América do Norte. Hoje ajuda startups à tornarem seus produtos e aplicações mais escaláveis e confiáveis sem sacrificar performance e segurança. |
Revisão de Tradução
Guilherme Ricci é Arquiteto de Soluções Sênior para startups na Amazon Web Services, ajudando startups a modernizar e otimizar os custos de suas aplicações. Com mais de 10 anos de experiência em empresas do setor financeiro, atualmente trabalha com uma equipe de especialistas em AI/ML. |