Como os programadores sobrevivem no mundo ChatGPT?

Fonte: Divine Translation Bureau

Nota do editor: Com o lançamento do ChatGPT, vários assistentes de geração de código de inteligência artificial surgiram no mercado. A inteligência artificial generativa está na moda e penetrou em todos os aspectos da vida humana. A IA realmente substituirá os programadores humanos? Para desenvolvedores de programas, como sobreviver e se desenvolver no mundo ChatGPT? Este artigo compartilhará 4 dicas para ajudar os programadores humanos a ficarem à frente da IA generativa. O artigo é da tradução, espero que possa inspirar você.

Fonte da imagem: Gerada por Unbounded AI‌

A inteligência artificial, especialmente a IA generativa alimentada por modelos de linguagem grande (LLM), tem o potencial de revolucionar toda a indústria de programadores. Mas alguns especialistas acreditam que a IA não substituirá os programadores humanos, pelo menos não imediatamente.

“Você terá que se preocupar com as pessoas que usam IA para se substituir”, disse Tanishq Mathew Abraham, PhD em engenharia biomédica na Universidade da Califórnia, em Davis, e CEO do MedARC, um centro de pesquisa de inteligência artificial médica.

Então, como os desenvolvedores de software podem se tornar mais valiosos e úteis à medida que a era da codificação LLM se aproxima? Aqui estão algumas dicas e truques para os programadores sobreviverem e prosperarem na era da inteligência artificial generativa.

Aderir aos princípios básicos e melhores práticas

Embora muitos assistentes de codificação baseados em IA possam nos ajudar a escrever e gerar código, a capacidade básica de aprender a programar ainda existe, ou seja, a capacidade de ler e analisar o código e entender como o código que você escreve se aplica a grandes sistemas. . **

"Acredito que a inteligência artificial pode melhorar muito a produtividade dos desenvolvedores de software, mas a engenharia de software não é apenas gerar código, mas também gerar requisitos do usuário, depuração e teste e muito mais."

** Uma das habilidades de programação mais integrais continua sendo o domínio dos codificadores humanos: resolução de problemas. ** Analisar um problema e encontrar uma solução apropriada para ele continua sendo uma habilidade de codificação altamente considerada.

"A programação tem seu lado criativo, e essas habilidades na solução de problemas são mais importantes do que a linguagem ou ferramentas de programação reais. Não se deixe levar por comparações com a inteligência artificial, que é mais ou menos apenas a saída estatística de um grande modelo de linguagem Desenvolvedores Há uma diferença entre o que você faz e o que seu modelo produz e, como desenvolvedor, há mais do que apenas escrever código”, disse Ines Montani, pesquisadora da Python Software Foundation e cofundadora e CEO da Explosion.

Além disso, **as boas práticas de engenharia de software são mais valiosas do que nunca. **Essas práticas incluem planejamento de design de sistema e arquitetura de software, e os programadores podem usar ferramentas de inteligência artificial para prever com mais eficiência qual código será necessário a seguir.

"Os engenheiros de programação precisam descobrir as estruturas de dados para um pedaço de código, as abstrações corretas para organizar o código e os requisitos para diferentes interfaces. Tudo isso é fundamental para a prática da engenharia de software e não vai desaparecer por muito tempo ainda."

Encontre a ferramenta que atende às suas necessidades

Encontrar as ferramentas de IA certas é fundamental. Cada ferramenta tem sua própria maneira de interagir e cada ferramenta pode ser integrada ao fluxo de trabalho de desenvolvimento de maneiras diferentes, seja criando automaticamente testes de unidade, gerando dados de teste ou escrevendo documentação.

Por exemplo, o GitHub Copilot e outros assistentes de codificação AI podem aumentar nossas habilidades de codificação e nos fornecer sugestões de codificação. O ChatGPT e o Bard do Google, por outro lado, são mais como programadores de IA conversacionais que podem ser usados para responder perguntas sobre uma API (interface de programação de aplicativos) ou gerar trechos de código.

** A chave é experimentar. Experimente uma ferramenta de IA, familiarize-se com seu funcionamento, considere a qualidade de sua saída e mantenha a mente aberta para outras ferramentas de IA. **Abraham disse: "O campo da inteligência artificial está mudando rapidamente. Você não pode simplesmente usar uma determinada ferramenta para sempre, então você precisa se adaptar a novas ferramentas rapidamente."

Além disso, considere o caso de uso apropriado. As ferramentas generativas de inteligência artificial podem nos ajudar a aprender rapidamente uma nova linguagem de programação e também podem criar protótipos de projetos em um curto período de tempo.

Diálogos claros e precisos são essenciais

Ao usar um assistente de codificação AI, elabore suas necessidades e pense nisso como um processo iterativo. Abraham sugere escrever um comentário que explique o código, para que o assistente possa gerar um código que atenda aos seus requisitos com base no comentário.

Para um programador de IA conversacional, você precisa saber como configurar os prompts da melhor maneira possível, e é aí que entra a engenharia de prompts.

Abraham sugeriu o uso do método de inspiração da cadeia de pensamento. Na verdade, esse método envolve uma estratégia de "dividir para conquistar", ou seja, decomponha o problema em várias etapas, resolva-as uma a uma e, por fim, resolva o problema inteiro. "Peça a um modelo para fazer muitas coisas em um determinado período de tempo e ele não funcionará bem. O que ele precisa fazer é ser capaz de processar pedaços gerenciáveis de informação e gerar pedaços gerenciáveis de código", disse ele.

Por exemplo, em vez de pedir a um programador de IA para codificar um programa inteiro do zero, pense bem em todas as tarefas que o programa precisa realizar. **Dividir ainda mais essas tarefas requer que o modelo escreva funções específicas para cada tarefa, o que requer ir e vir com o modelo nas etapas que precisam ser executadas para realizar uma determinada tarefa. **

"Pense nisso como um estagiário inteligente que tem conhecimento de um assunto, mas não muita experiência", diz Abraham.

A precisão e a clareza da engenharia da ponta são muito importantes. Abraham mencionou: "Você precisa dizer ao modelo com muita clareza o que deseja, dizer com muita precisão qual problema você está pedindo que ele resolva e certificar-se de que está seguindo adiante."

**Também é valioso aprender os conceitos básicos de inteligência artificial e aprendizado de máquina, bem como entender como funcionam os grandes modelos de linguagem e seus pontos fortes e fracos. **Você precisará fazer sua pesquisa, mas algum bom senso é essencial para julgar o resultado.

Para ajudá-lo a começar, Abraham recomenda o OpenAI Cookbook, que inclui capítulos sobre bibliotecas e ferramentas de dicas, guias de dicas, videoaulas e muito mais, enquanto Weisslingame recomenda a leitura do Illustrated Transformer para aprender mais sobre os conceitos básicos de modelos e aprendizado de máquina.

Seja crítico e esteja ciente dos riscos

Os engenheiros de software devem ser críticos em relação à saída de grandes modelos de linguagem porque eles tendem a alucinar e gerar códigos fictícios, imprecisos ou até mesmo errôneos. “O uso cego de código gerado por IA pode facilmente levar a becos sem saída e é difícil detectar erros sutis”, disse Weisslingame.

"É por isso que é fundamental verificar o código gerado, que, embora adicione algum trabalho, pode fazer mais mal do que bem à produtividade", disse Weisslingame. Mas Abraham argumenta que "em alguns casos, verificar o código é muito mais fácil do que escrever código de zero, e é uma maneira muito mais rápida de gerar código, validá-lo e integrá-lo a uma base de código existente."

Vamos analisar a saída desses modelos e fazer as seguintes perguntas: **Em quais dados esse modelo foi treinado? Quais dados foram filtrados e quais dados não foram incluídos? Qual é a idade dos dados de treinamento? Em qual versão da linguagem de programação, pacote de software ou biblioteca o modelo foi treinado? As respostas a essas perguntas podem influenciar os resultados e fornecer informações mais relevantes. **

Os desenvolvedores também devem ter cuidado ao inserir código proprietário nesses modelos. Algumas empresas, como a Tabnine, oferecem versões corporativas de assistentes de codificação baseados em IA que aprendem padrões e estilos de codificação corporativa enquanto fornecem privacidade.

Os direitos autorais são outra consideração, embora se você estiver usando essas ferramentas para concluir algumas linhas de código ou gerar código para tarefas comuns e triviais, os problemas de direitos autorais são menos preocupantes do que gerar grandes blocos de código.

"Os programadores devem ter alguma consciência da engenhosidade do que estão tentando fazer e de como essa engenhosidade se encaixa em seu ambiente", disse Lesama. “Se o código gerado pelo modelo tiver alguma originalidade, deve-se tratá-lo com desconfiança e desconfiança antes de colocá-lo na base de código”.

Uma preocupação maior é a segurança do código, pois esses modelos podem gerar código que contém vulnerabilidades. Weisslingame acredita que as melhores práticas de desenvolvimento de software, como revisões de código e fortes pipelines de teste, podem ajudar a proteger contra esse risco.

"Uma das coisas que os engenheiros de software mais experientes podem trazer para a mesa são as vulnerabilidades mais comuns no código e as formas mais comuns pelas quais o código é vulnerável", disse Lesama. "Eles desenvolverão uma intuição sobre onde procurar, quais lugares causará estado de alerta. No futuro, essas tecnologias se tornarão uma parte ainda mais importante do portfólio de engenharia de software. "

Para que os programadores sobrevivam em um mundo generativo de IA, eles precisam ver a IA como uma ferramenta e integrá-la ao seu fluxo de trabalho, reconhecendo as oportunidades e limitações dessas ferramentas e contando com a capacidade de codificação humana para crescer e se desenvolver.

Tradutor: Araon_

Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • Comentário
  • Repostar
  • Compartilhar
Comentário
0/400
Sem comentários
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)