Como pode o ChatGPT ajudar-te a programar melhor
18 de Setembro de 2023
O que é o ChatGPT?
Na tecnologia, o ChatGPT está a revolucionar a forma como os programadores desenvolvem os seus projetos. Graças à capacidade de interpretar entradas de texto em linhas de código, é possível criar programas eficazes sem que para isso tenham de ser alocadas mais horas, escrevendo-os manualmente na sua íntegra. Como os modelos de linguagem usados pelo ChatGPT são constantemente atualizados e refinados com base no feedback dos utilizadores e comunidade programadora, a tendência para o futuro será o incremento da qualidade do código gerado por esta tecnologia. O ChatGPT pode reduzir significativamente o tempo de desenvolvimento, permitindo que os programadores reúnam esforços para tarefas onde é realmente necessária a intervenção da inteligência e a sensibilidade humana. Para as empresas, é uma oportunidade para aumentar a produtividade das equipas e reduzir custos operacionais.
O que permite fazer?
Não importa o cargo, ou o setor em que trabalhas, o ChatGPT pode efetivamente aumentar os teus níveis de produtividade. Na área da programação em particular, esta tecnologia poderá ser uma mais-valia em diferentes momentos da tua carreira, inclusive quando acabas a tua formação e procuras o teu primeiro emprego na área tecnológica. Assim, num primeiro contacto e assumindo, hipoteticamente, que não tens experiência profissional, poderias recorrer ao ChatGPT para construir ou atualizar o teu curriculum ou, por outro lado, redigir uma carta de apresentação especificamente destinada a uma oferta que tenhas encontrado. Da mesma forma, poderias utilizar esta ferramenta para obter um conjunto de possíveis perguntas que pudessem ser colocadas em entrevista de emprego, e poderes a partir daí praticar as possíveis respostas.
Acreditamos que nenhuma Inteligência Artificial pode substituir a criatividade e o discernimento humanos, entres outras características próprias que só uma pessoa poderá agregar na criação seja do que for.
Retomando a realidade dos programadores, pressupõe-se, talvez de forma errada que estes profissionais passam a totalidade ou a maior parte do tempo a escrever código. Na realidade, essa tarefa representa apenas uma fração de tempo e é apenas uma das suas responsabilidades diárias. Assim, graças a esta nova tecnologia, é possível alocar mais tempo em questões fulcrais de projetos como: a análise de requisitos e os testes de qualidade para garantir que um software funciona como esperado e são satisfeitas as necessidades de todas as partes.
De que forma te pode ajudar a programar?
Código
O ChatGPT pode gerar código para tarefas simples ou recorrentes. No entanto, é importante considerar que a sua capacidade de escrever código é limitada e poderá ser, por vezes, imprecisa ou não correspondente com o desejado. Por outro lado, uma vez que foi treinado com grandes volumes de dados, o ChatGPT pode também sugerir melhorias em código já existente. De igual modo, é essencial ter em conta que esta tecnologia não tem a competência de interpretar as reais necessidades do projeto ou o problema que este visa resolver, tornando a inteligência humana decisiva nos processos de desenvolvimento. Assim, os recursos de geração de código do ChatGPT podem ser úteis para programadores em vários níveis de experiência, pois são uma ferramenta que os ajuda a concentrar nos pontos mais importantes, delegando as tarefas repetitivas e demoradas. Desta forma, se por um lado existe uma rentabilidade maior de tempo, por outro, este processo poderá ajudar a mitigar a ocorrência de erros.
Debugging
Sugerindo possíveis causas de erro e formas de chegar à sua solução, o ChatGPT é bastante útil na programação para a resolução de bugs ou encontrar potenciais fontes de erro. Nesta tarefa, esta ferramenta poderá ainda colocar algumas questões e posteriormente fornecer alguns insights para ajudar a encontrar a solução. Como resultado, poderá ser reduzido consideravelmente o tempo e o esforço alocados na resolução de erros ao longo do desenvolvimento.
Documentação
O ChatGPT tem a capacidade de processar texto natural e por isso, a rotina diária, que também é marcada pelo desenvolvimento de documentação de projetos, poderá ser agora mais simples na medida em que esta ferramenta poderá auxiliar também nesse campo. Na prática, os programadores podem, através de um fragmento de código, dar instruções para gerar a documentação, cuja informação de intenção de funções, entradas, saídas e outros detalhes relevantes podem ser incluídas. Uma vez inserido o código no ChatGPT, este poderá gerar modelos de documentação mais apropriados atendendo à linguagem de programação que está a ser utilizada. Da mesma forma, e atendendo à tecnologia em uso num dado projeto, o ChatGPT é capaz de fornecer exemplos de boas práticas de documentação utilizadas numa dada linguagem de programação.
Scripts
Os scripts ganham maior relevo quando é necessário desenvolver um recurso, uma funcionalidade ou uma ação específica no projeto. Dependendo da tarefa ou problema específico a ser solucionado, o ChatGPT está capacitado para gerar scripts de código em várias linguagens de programação atendendo ao tipo de entrada dada e requisitos colocados pelo utilizador.
Segurança
Seja qual for o produto tecnológico concebido aos dias de hoje, é unânime dizer que a segurança é a principal preocupação das equipas de programação. Entre tentativa de acesso não autorizado, a acesso a dados confidencias, entre outros, os ataques cibernéticos estão cada vez mais sofisticados e a sua passagem poderá representar mazelas estruturais e operacionais que poderão colocar em causa a viabilidade financeira de uma empresa. Assim, o ChatGPT oferece uma abordagem ampla no tema da segurança através da identificação de possíveis vulnerabilidades de um sistema, mitigando o risco de eventuais danos causados por um ciberataque.
Bibliotecas e Frameworks
Também para explorar novas bibliotecas e frameworks, o ChatGPT poderá agregar bastante valor aos developers que necessitem de obter alguns insights iniciais e aprender mais sobre os fundamentos básicos. Nesta matéria, esta ferramenta de Inteligência Artificial poderá ajudar os profissionais quando existe a necessidade de optar entre frameworks ou bibliotecas de acordo com os detalhes entregues. Assim, na prática, o ChatGPT pode fornecer uma comparação entre dois os mais recursos, apesentar as suas vantagens e desvantagens e, de acordo com as necessidades dos programadores, indicar a opção que poderá ser mais viável.
Otimização
Por outro lado, uma vez feito debugging ao código, existe sempre espaço a melhorias. Se o objetivo é otimização de código e tornar todo o projeto mais eficiente, o ChatGPT também poderá ser uma ferramenta interessante, já que permite examinar trechos de código e daí sugerir possíveis melhorias que tornem o projeto mais legível e de melhor manutenção, o que poderá ser o elemento impulsionador para um ciclo de programação mais eficiente.
Prompts – O que são e como te podem ajudar?
De uma forma simples, prompts são entradas de texto, sejam perguntas, instruções ou outros, que são inseridas pelos utilizadores no ChatGPT para obter respostas. Desta forma, podemos assumir que uma resposta ou solução a algo, fornecida pelo ChatGPT será tanto melhor quanto maior for a qualidade do input inserido pelo utilizador. Assim, um prompt cuidadosamente redigido, detalhado e específico irá, muito provavelmente, determinar a qualidade das respostas obtidas.
Como escrever um prompt no ChatGPT
Pedir ao ChatGPT uma determinada instrução ou qualquer tipo de auxílio poderá realmente ser um recurso útil na rotina diária de programação. No entanto, para se alcançar o potencial máximo da plataforma é necessário entender como devem ser criados os prompts de forma eficaz. Em alguns casos, em que a questão possa ser mais complexa, deves assegurar que o teu prompt é:
Específico
Descreve a linguagem de programação com a qual estás a trabalhar e o que pretendes obter especificamente com a ajuda do ChatGPT.
Contextualizado
Seja através de uma biblioteca, framework ou outra funcionalidade, certifica-te que adicionas toda a informação de contexto necessária, com o objetivo de obter respostas mais assertivas.
Informativo
Toda a informação, por mais secundária ou pouco relevante que possa parecer à resolução do problema, pondera adicionar ao teu prompt, para conseguires uma solicitação mais completa e detalhada.
Prompts úteis para programadores
- - Explica-me como (conceito ou função) funciona em (nome da linguagem).
- - Qual a sintaxe correta para (declaração ou função) em (nome da linguagem)?
- - Mostra-me as melhores práticas em (nome da linguagem).
- - Sugere-me melhorias ao meu código em (nome da linguagem): (snippet de código).
- - Escreve uma script em (nome da linguagem) que processe (tipo de dado) e se obtenha (output pretendido) com os seguintes requisitos: (listar requisitos).
- - Implementa um algoritmo de (nome da linguagem) para (objetivo pretendido), dados os parâmetros de input de (dados de input) que deverá originar (outputs expectáveis), considerando os seguintes requisitos: (listar considerações).
- - Estou a trabalhar em (nome da funcionalidade) em (nome da linguagem), mas o meu código está a gerar uma resposta errada. Diz-me onde está o erro: (snippet de código).
- - Age como um (nome da linguagem) developer. Escreve uma função para ler e fazer print de valores duplicados de um dado ficheiro CSV.
Definitivamente, este conjunto de solicitações, é apenas um pequeno exemplo de tudo aquilo em que o ChatGPT te pode ajudar na rotina diária de programação. O importante a reter é que, seja qual for o problema, dúvida, desafio, deves ser tão objetivo, específico e detalhado quanto minucioso é aquilo que tens em mãos.
Que linguagens de programação sabe o ChatGPT?
Embora tenha sido exposto a várias linguagens de programação aquando dos seus testes iniciais, existe uma clara tendência para linguagens mais naturais. Assim, esta ferramenta de Inteligência Artificial pode escrever código em tecnologias como:
- - Python
- - Java
- - JavaScript
- - PHP
- - Go
- - Ruby
- - C
- - C#
- - C++
- - TypeScript
Porém, a compatibilidade do ChatGPT com linguagens de programação vai além das acima apresentadas já que, com outras tecnologias mais antigas ou não tão populares, poderá ainda assim apresentar uma qualidade de código com resultados impressionantes, sendo que as que destacamos apresentam efetivamente a melhor performance.
Podemos confiar no ChatGPT para a criação de código?
A pergunta que se coloca logo de imediato é: podemos confiar no código escrito por humanos? O processo de criação de código dos programadores é naturalmente defeituoso, na medida em que existirão sempre bugs. Primeiro programa-se, depois testa-se. E volta-se a testar. Não há como rejeitar, é a natureza do universo e isto acontece em várias áreas, tecnológicas ou não. Por isso, pelo facto de a Inteligência Artificial estar realmente a fazer coisas incríveis, não significa que, nesta área em particular, possa gerar um código limpo, isento de bugs, e sem a necessidade de revisão e escrutínio humanos. Assim, apesar de, em grande parte, facilitar o processo, é sempre crucial uma supervisão humanizada de tudo o que é gerado pela máquina.
Irão as ferramentas de Inteligência Artificial substituir os programadores?
Esta será certamente uma das questões mais presentes aquando de uma reflexão sobre o que poderão vir a ser os espaços de trabalho no futuro e como a Inteligência Artificial poderá vir a determinar novas tendências de trabalho e cooperação entre equipas. Acreditamos que, face à completa incerteza que o futuro é para nós, podemos construir cenários viáveis com aquilo que as pistas do presente nos indicam. Assim, o futuro poderá ser marcado por um estreitamento de colaboração entre Homem e máquina, com a Inteligência Artificial a suportar os programadores, tornando as suas rotinas diárias mais eficientes. Se por um lado, a Inteligência Artificial não tem a capacidade de pensamento crítico e a compreensão profunda dos princípios necessários aos espaços de trabalho, por outro, os humanos conseguem agregar valor a todos os processos com um pensamento crítico e criativo na resolução de problemas únicos que os tornam singulares e, no nosso raciocínio, completamente insubstituíveis. Assim, acreditamos numa maior coexistência da tecnologia e das pessoas por forma a aumentar a produtividade e a eficiência dos ciclos de desenvolvimento o que, podemos pressupor que, para o futuro, é uma excelente oportunidade para a sustentabilidade da inovação.
Limitações do ChatGPT na programação
Embora o ChatGPT seja uma tecnologia que está a revolucionar os espaços de trabalho - neste caso em particular na tecnologia, é importante que os programadores estejam cientes das limitações que, embora os avanços alcançados, existem.
Mesmo sendo muito competente na resolução de problemas, com base em padrões e na aprendizagem constante da máquina, esta tecnologia pode apresentar uma compreensão limitada do contexto a que foi previamente programada. Por outro lado, embora possa reconhecer alguma emoção numa entrada colocada por um utilizador, a falta de inteligência emocional poderá também ser uma limitação a ser considerada. Igualmente pertinente é o facto de, apesar de ser uma tecnologia que aprende com conversas anteriores, é limitada na aquisição de experiência e no ajuste das suas respostas com a mudança de ambientes e feedbacks dos utilizadores.
Concluindo, o ChatGPT oferece um mundo de possibilidades na área da programação. À medida que continuamos a explorar esta tecnologia, é crucial lembrar que a ética e a responsabilidade desempenham um papel importante no desenvolvimento do futuro. Assim, consciente dos desafios, o ChatGPT pode ser utilizado para maximizar os benefícios enquanto são minimizamos os potenciais riscos. Desta forma, com a devida prudência e criatividade, pode ser uma ferramenta valiosa para os programadores, ajudando a melhorar o futuro da programação e da interação homem-máquina.
Artigos populares
O que é Outsystems e como está a transformar o desenvolvimento de software
Java - O que torna esta linguagem tão popular entre programadores?
A importância das boas práticas na programação em .NET
Linux: um sistema operacional versátil e poderoso
COBOL - Será esta linguagem relevante nos dias de hoje?
Implementar um sistema de Business Intelligence