- OneBitNews
- Posts
- Guia de como usar IA na Programação
Guia de como usar IA na Programação
Copilot == Produtividade máxima
E aí Programador(a), tudo bem?
Léo Scorza da OneBitCode aqui.
O bom aprendizado, começa com uma boa pergunta, então vamos à pergunta principal: “Como um Programador pode/deve usar a IA no seu dia a dia para Programar?” 🧠
Para responder essa pergunta de forma mais profunda, vamos começar entendendo o que são essas “IAs”, como elas funcionam e quais usar.
Tópicos que vamos falar:
1 - Como uma IA funciona
2 - Os programadores vão ser substituídos por uma IA? 😨
3 - Qual a melhor IA para programar?
4 - Como eu criei um jogo em menos de 1 hora com a IA 🔥
5 - Como você pode dominar IA de verdade
Bora começar nossa jornada.
1 - O que é uma IA
Uma Inteligência Artificial (IA) é um sistema avançado de computação projetado para simular habilidades humanas como aprendizado, raciocínio e resolução de problemas.
Em essência, uma IA utiliza algoritmos e modelos de aprendizado de máquina para analisar dados, aprender com eles e tomar decisões ou realizar tarefas que normalmente exigiriam inteligência humana.
Esses sistemas são capazes de melhorar seu desempenho com o tempo à medida que são expostos a mais dados e experiências, um processo conhecido como aprendizado contínuo.
IAs são usadas em uma variedade de aplicações, desde assistência virtual e análise de dados até veículos autônomos e diagnósticos médicos, revolucionando a maneira como interagimos com a tecnologia e processamos informações.
2 - Como a IA aprende
O aprendizado de máquina é um campo da Inteligência Artificial (IA) onde sistemas de computador são capazes de aprender e melhorar a partir de experiências, sem serem explicitamente programados.
Para isso são usados algoritmos que analisam e identificam padrões em dados, permitindo ao sistema fazer previsões ou tomar decisões com base nesses dados.
Existem dois tipos principais de aprendizado:
Supervisionado, onde o modelo é treinado com dados rotulados (por exemplo, em um conjunto de dados de imagens rotuladas, cada imagem terá um rótulo como "gato", "cachorro", "carro" que descreve o que está na imagem) e aprende a fazer previsões.
Não supervisionado, que lida com dados não rotulados e busca identificar padrões ocultos.
Essencialmente, o aprendizado de máquina permite que computadores realizem tarefas complexas adaptando-se automaticamente à medida que recebem mais informações.
3 - Como funciona o chatGPT
Uma forma de entender as IAs como o chatGPT é pensar nelas como alunos extremamente dedicados que lêem uma biblioteca inteira, absorvendo uma enorme quantidade de textos para aprender como a linguagem humana funciona (ou seja, usam o aprendizado de máquina).
Elas são muito habilidosas em detectar padrões, compreendendo quais palavras ou frases costumam aparecer juntas e como as ideias se conectam.
Durante o treinamento, estas IAs passam por um processo duplo: parte do treinamento mostra exatamente o que esperar (aprendizado supervisionado), enquanto outra parte as deixa explorar os textos por conta própria, encontrando padrões e fazendo conexões (aprendizado não supervisionado).
Quando interagem, seja respondendo a perguntas ou elaborando textos, elas utilizam todo esse aprendizado para formular respostas que levam em conta o contexto apresentado.
Isso é semelhante a como nós, seres humanos, usamos nosso conhecimento e experiências passadas para participar de conversas. Além disso, essas IAs passam por um ajuste fino (otimização de parâmetros), semelhante a um músico aperfeiçoando seu instrumento, para tornar suas respostas mais precisas e úteis.
Sua adaptabilidade é notável, permitindo que conversem sobre uma ampla gama de tópicos, algumas vezes até sobre assuntos que não estavam explicitamente nos textos que leram (generalização).
Isso se deve à sua habilidade de generalizar com base no aprendizado anterior. Em resumo, essas IAs são ferramentas multifuncionais para a linguagem, capazes de melhorar continuamente à medida que aprendem mais, funcionando como máquinas de aprendizado de linguagem cada vez mais eficazes.
Os dados que o chatGPT usa para treinar
Os dados usados para treinar o ChatGPT, como muitos modelos avançados de linguagem, vêm de uma variedade de fontes de texto disponíveis publicamente na internet. Estes incluem:
Livros: Textos literários que fornecem uma rica variedade de usos da linguagem.
Artigos da Web: Incluindo posts de blog, artigos de notícias e outros conteúdos escritos disponíveis online.
Fóruns Online e Websites de Perguntas e Respostas: Como o Reddit ou o Stack Overflow, que fornecem conversas e discussões em formato de texto sobre uma ampla gama de tópicos.
Documentos Técnicos: Publicações acadêmicas e documentos de pesquisa que ajudam o modelo a aprender terminologia e conceitos especializados.
Scripts de Código Fonte: Para entender e gerar respostas relacionadas à programação.
O objetivo é fornecer ao modelo uma base de conhecimento diversificada e abrangente que permita entender e gerar respostas em uma variedade de estilos e formatos.
As alucinações do chatGPT
As "alucinações" do ChatGPT e de outros modelos de linguagem avançados são situações em que a IA gera informações falsas, imprecisas ou sem sentido.
Esses erros podem variar desde pequenas imprecisões até afirmações completamente incorretas ou fabricadas.
As alucinações ocorrem geralmente por algumas razões:
Limitações no Treinamento de Dados: Mesmo sendo treinados com grandes conjuntos de dados, os modelos podem não ter informações suficientes ou corretas sobre certos tópicos.
Falhas na Interpretação de Contexto: Às vezes, o modelo pode interpretar mal o contexto ou a intenção da pergunta, levando a respostas irrelevantes ou erradas.
Tendência a Gerar Conteúdo: Modelos de linguagem, especialmente aqueles baseados em Transformer, são projetados para gerar texto fluentemente, o que pode levá-los a produzir conteúdo convincente, mas incorreto.
Complexidade do Processamento de Linguagem Natural: A linguagem humana é complexa e cheia de nuances, tornando difícil para a IA sempre entender e responder corretamente.
Então tome cuidado ao usar as IAs cegamente, sem ter uma base para analisar os textos e os códigos gerados por elas.
4 - Os programadores vão ser substituídos por IAs?
Uma resposta curta e direta: Alguns sim, outros vão crescer.
Mas porque alguns sim? Bom, veja bem, se você pode fazer uma tarefa simples pedindo a um robô, porque você pagaria uma pessoa para fazer?
Trazendo isso para o mundo físico, se você pudesse pedir a um robô para preparar uma deliciosa pizza (10x mais rápido) pagando alguns reais apenas pelo uso dele, você pagaria R$70 reais para alguém fazer a pizza?
Provavelmente, você iriai preferir a velocidade e o preço infinitamente menor do robô e está tudo certo, faz todo o sentido do mundo.
Na programação e em todas as outras áreas que eu posso imaginar, vai acontecer algo parecido, as tarefas que podem ser substituídas vão ser substituídas e tá tudo bem.
Dominar o uso da IA na programação é uma questão de sobrevivência.
Só que aí vem a segunda pergunta: “todas as tarefas da programação são facilmente substituíveis por uma IA?” A resposta é um grande não.
Quem contrata um programador é uma empresa que precisa desenvolver soluções com software, os gestores dessa empresa que contratam os programadores não tem a bagagem técnica e a visão sistêmica “de como desenvolver um software” para criar softwares mais complexos.
Um cliente conseguiria pedir ao chatGPT para gerar um script simples para automatizar uma planilha do excel ou para fazer uma alteração em uma página e rodar isso seguindo algumas instruções, então tarefas bem simples vão sim ser facilmente realizadas sem programadores.
Mas vamos pensar em uma solução um pouco mais complexa, como uma landing page completa. Qual a chance de um gestor conseguir, conversando com o chatGPT/Copilot, gerar uma página bonita, funcional, otimizada e com um bom UX? Bem baixa, se não, nula.
Agora imagina uma solução complexa como um Web APP de uma rede social, qual a chance de um cliente (leigo em programação) fazer 5% disso sozinho? Nenhuma.
Então se não são os próprios clientes que vão diminuir de forma relevante a necessidade de programadores “digitadores”, quem são as pessoas que vão?
Os próprios programadores que usam as IAs como forma de serem mais produtivos.
Um programador que antes conseguia criar apenas uma landing page por mês por exemplo, agora usando IA, consegue criar 2, 3 ou mais.
Então, quem faz apenas o mínimo, não se aprofunda, não tem uma visão sistêmica de como resolver problemas e é um “digitador” da programação, vai perder espaço com as novas ferramentas.
Mas se você não é um “digitador”, mas um programador de verdade, que está disposto(a) a usar as novas ferramentas, a tendência é que você consiga crescer e ter resultados ainda melhores graças a IA.
Programar não é sobre escrever código, é sobre usar no limite as tecnologias que estão disponíveis para criar coisas novas.
Com a facilidade na criação de software, a demanda também deve aumentar, o mundo é cada vez mais digital e vai ter mais oportunidades ainda.
Mesmo que você seja iniciante, se aprofunde no desenvolvimento de software, na resolução de problemas e nas novas tecnologias.
Porque muitos programadores “experientes” vão ficar para traz por ignorarem o novo.
5 - A melhor IA para programar
A IA mais popular hoje é o chatGPT, ele possui duas versões atualmente, uma gratuita (chatGPT 3.5) e uma paga (chatGPT 4), eu uso a versão 4 diariamente para escrever textos, pedir sugestões, criar imagens, tirar dúvidas (quase não uso mais o google) e já usei para criar códigos de programação também.
Mas por mais que eu seja um fã do chatGPT e ele tenha extensões para ser integrado ao VS Code, depois de testar o Copilot, eu não tive outra escolha senão aceitar que o Copilot é a IA mais funcional atualmente para ajudar na programação.
Claro, o Copilot usa o chatGPT (OpenAI) por trás, mas a experiência que ele entrega na hora de codar é diferente do chatGPT, além de ele ter um treinamento gigantesco com a base do GitHub (criador do Copilot).
Então, de todas as IAs que já testei, recomendo o chatGPT para todas as tasks (inclusive gerar imagens) exceto para uso na programação, o Copilot está na frente e vale os $10 dólares por mês que é cobrado.
Inclusive fica a dica, sei que muita gente não usa por ter que pagar, mas posso garantir que $10 tá de graça pelo tempo que você vai economizar e a produtividade que vai ter.
6 - Conhecendo o Copilot
O GitHub Copilot, desenvolvido pela Microsoft em parceria com o GitHub e OpenAI, é uma ferramenta de Inteligência Artificial projetada para auxiliar na programação. Ele funciona como um assistente de código, oferecendo sugestões e completando trechos de código em tempo real.
Aqui está um resumo de como o GitHub Copilot funciona:
Baseado em Modelos de Linguagem Avançados: Copilot é alimentado por uma versão do modelo de linguagem GPT-3.5, desenvolvido pela OpenAI. Esse modelo foi treinado em um grande conjunto de dados que inclui código-fonte público disponível no GitHub.
Contextualização e Sugestão de Código: Ao escrever código, o programador recebe sugestões automáticas do Copilot. Estas sugestões são geradas com base no contexto do código existente, comentários e nomes de variáveis e funções. O modelo entende o contexto e intenção do programador para gerar sugestões relevantes.
Aprendizado de Padrões de Código: O Copilot aprende padrões comuns em programação e sugere trechos de código que são frequentemente usados, economizando tempo e auxiliando em tarefas repetitivas.
Suporte a Múltiplas Linguagens de Programação: A ferramenta é capaz de trabalhar com uma variedade de linguagens de programação, tornando-a versátil para diferentes tipos de desenvolvedores.
Facilitação do Aprendizado e Debugging: Além de sugerir código, o Copilot pode ajudar os programadores a aprender novas linguagens e frameworks, e também pode auxiliar na identificação e correção de erros.
Integração com Ambientes de Desenvolvimento: O Copilot é projetado para se integrar com ambientes de desenvolvimento integrado (IDEs), permitindo uma interação fluida e contínua durante a escrita de código.
Melhoria Contínua: O modelo por trás do Copilot continua evoluindo, aprendendo com a interação dos usuários e melhorando suas sugestões ao longo do tempo.
É importante ressaltar que, embora o Copilot seja uma ferramenta poderosa, ele não substitui a necessidade de compreensão e revisão humana do código. Então, assim como no uso do chatGPT, você precisa guiar ele.
7 - Usos da IA na programação
Quanto mais eu uso ferramentas como o chatGPT ou Copilot, mais usos eu vejo para eles na programação, vou listar alguns:
Explicar códigos para você
Criar novos códigos
Traduzir códigos entre linguagens
Corrigir/Refatorar códigos
Criar testes unitários
Documentar seus códigos
Criar o README do seu projeto
Existem também ferramentas como o screenshot-to-code onde você pode passar um screenshot das telas que deseja e ele converte para códigos (o chatGPT também consegue fazer algo parecido).
A precisão não é 100%, mas já pode ajudar bastante na criação diária de telas.
8 - Eu criei um jogo em menos de 1 hora com IA
Eu gosto de testar as coisas na prática, então para aprender a usar o Copilot, eu decidi criar um projeto Web juntando a minha experiência com os códigos gerados por ele.
O projeto criado foi um site onde o usuário pode jogar sudoku online, e posso garantir, ele ficou tão bom quanto os primeiros sudoku's online que aparecem quando você pesquisa no Google.
Inclusive, muitos dos que aparecem estão ganhando $ com propagandas, então seria possível subir esse projeto e fazer o mesmo com ele.
Contextualizando, caso você não conheça, o Sudoku é um jogo de quebra-cabeça lógico onde o objetivo é preencher uma grade 9x9 com números de 1 a 9 de modo que cada linha, coluna e subgrade 3x3, contenha todos os números de 1 a 9 sem repetição.
Esse projeto em particular tem alguns desafios como:
Aplicar as regras do sudoku via javascript
Criar o board em HTML e CSS (o tabuleiro 9x9)
Receber e tratar os números que o usuário vai colocar no board
Verificar se o usuário preencheu tudo corretamente no final
Então vamos ao “como eu fiz”:
1 - Eu assinei o plano do Copilot (se não me engano dá pra assinar por alguns dias sem pagar): https://github.com/features/copilot
2 - Instalei no Vs Code as seguintes extensões do Copilot: GitHub Copilot e GitHub Copilot Chat (que permite conversar com o Copilot como com o chatGPT)
3 - Conectei a extensão do Copilot com a minha conta do GitHub onde eu tinha assinado o Copilot
4 - Abri o Copilot chat e digitei “Eu quero criar um jogo de sudoku em html, css e js”, quais os passos eu devo dar:
5 - Ele começou a me dar as instruções de como eu poderia ir estruturando meus arquivos, quais códigos eu deveria ter neles.
6 - A partir daí eu fui seguindo o passo a passo, que nem sempre estava adequado 100%, então fui adaptando o que ele sugeria, criando novos arquivos, colocando códigos e conectando tudo.
7 - Comecei a testar o projeto na web. Cada nova coisa que eu desejava adicionar ao projeto eu perguntava a ele no chat e ele me fazia a sugestão do que eu deveria fazer.
8 - Quando eu queria gerar um código específico, por exemplo, atualizar uma função para adicionar um alert novo, eu ia até o arquivo e rodava command + i, que é o atalho do Mac para abrir o gerador de código do Copilot.
9 - A partir desta interação entre eu e o Copilot via chat e gerador de código, eu desenvolvi rapidamente o projeto.
Algo que demoraria muitas horas, me custou minutos e eu nem mesmo precisei pesquisar as regras do sudoku para criar o meu código Javascript.
É impressionante o quanto alguém que domina os códigos e tem acesso a esse ferramenta pode fazer, então se você ainda não está usando, essa é a hora de começar a usar.
Projeto já mais bem trabalhado e com várias opções depois de algum tempo.
Link do projeto online para você brincar: https://sudoku-copilot.vercel.app
Uma coisa ficou clara neste teste:
O Copilot é realmente o Copiloto (não o piloto), um leigo usando ele não teria conseguido fazer o projeto (Programador + IA = Sucesso).
9 - Como você pode dominar a IA
Eu acredito que os programadores não vão acabar com a chegada da IA, pelo contrário, os programadores que usarem a IA vão crescer e vão ter resultados muito maiores.
Inclusive, sempre que existe uma mudança muito grande, é uma chance única para quem se adaptar mais rápido conseguir oportunidades que demorariam muito tempo se nada tivesse acontecido.
E se você começar agora a usar essas ferramentas, em pouco tempo vai ter um grande destaque, porque a grande maioria dos programadores ainda estão parados no tempo.
Por ver essa oportunidade e ter usado extensivamente a IA na OneBitCode em 2023, na criação de milhares de imagens, textos e linhas de código, eu decidi criar uma formação focada em IA + NO CODE.
Ela vai potencializar nossos alunos para que eles saiam na frente, seja na área Full Stack, Mobile, Automação ou outras áreas que a IA e o NO CODE possam acelerar o desenvolvimento.
Eu vou abrir as inscrições dela no começo de fevereiro, mas eu criei um grupo de espera (que vai ter desconto especial), então garante seu lugar nele aqui: https://chat.whatsapp.com/C8vHBxZUaos5lwnqwE3Zy5
Nessa formação eu vou:
Ensinar como usar as IAs mais poderosas (como Copilot)
Ensinar como usar as melhores ferramentas de NO CODE
Te ajudar a se manter atualizado
Conclusão
Em 2023 a IA brilhou e em 2024 ela vai se consolidar como uma parceira indispensável dos programadores, quem se atualizar e se desenvolver como um(a) programador(a) de verdade, vai sair na frente.
Recomendo que você comece a “brincar” com a IA usando ela em um projeto pessoal, seja um jogo de sudoku, na criação de uma landing page ou de um webscrapping por exemplo.
Responda esse email me contando se já teve experiências com o uso de IAs e o que achou, e claro, pode mandar suas dúvidas também.
Grande abraço Programador(a),
Léo Scorza - OneBitCode 🤘
Ps: Te vejo no grupo especial da formação de IA e NO CODE.
Reply