Exemplo de como usar o ChatGPT para ajudar seus estudos em programação
Primeiro post aqui! Espero poder ajudar alguém ou iniciar alguma discussão nos comentários.
Se você está estudando por conta própria ou para uma disciplina da faculdade/curso, o ChatGPT pode ser uma ótima ferramenta de apoio, com o objetivo de aprender e não apenas obter respostas para problemas.
No meu caso, estou estudando shell (unix) e para isso, estou resolvendo alguns exercícios. Eu poderia simplesmente copiar a questão e colocar no ChatGPT para obter a resposta e até mesmo uma explicação. No entanto, isso é muito superficial! Na vida real, muitos problemas não são tão simples de serem resolvidos e exigem que você divida o problema em partes menores, obtenha respostas para essas partes menores e, finalmente, resolva o problema principal.
Vamos ao exemplo de como utilizar o ChatGPT como um meio de estudo, resolvendo o seguinte problema:
Escreva um comando que exibirá a lista de grupos em que o login, contido na variável de ambiente FT_USER, é um membro, separando o resultado por vírgulas e sem espaços. (Dica: use man id
)
Se eu inserir esse problema diretamente no ChatGPT, ele me retornará a seguinte resposta:
Para exibir a lista de grupos em que o login contido na variável de ambiente FT_USER é um membro, usando o comando id, você pode usar o seguinte comando:
id -Gn $FT_USER | tr ' ' ','
Isso usa o comando id com a opção -Gn para exibir os nomes dos grupos aos quais o usuário especificado pertence, em seguida, usa o comando tr para substituir todos os espaços por vírgulas. Isso resultará em uma lista de grupos separados por vírgulas, sem espaços.
Observe que essa solução supõe que a variável de ambiente FT_USER está configurada com o login do usuário desejado. Se essa variável não estiver definida, o comando falhará.
Isso não é uma forma muito eficaz de utilizar o ChatGPT para o estudo, pois no final, o conhecimento adquirido é muito limitado.
Para um aprendizado mais profundo, vamos dividir o problema principal em alguns problemas menores (Foram os que consegui identificar, com meu conhecimento inicial):
- O que o comando
man id
faz? - Como listar grupos de um usuario?
- Como obter o valor de uma variável de ambiente?
Ao executar o comando man id
, descobri algumas informações:
- O comando
man id
exibe, no terminal, um manual do comandoid
. - O comando
id
exibe no terminal os IDs reais e efetivos do usuário e de seus grupos. - Ao passar um usuário como argumento, ele exibe informações sobre esse usuário.
- Entre os argumentos possíveis para o comando
id
, temos o argumento-G
, que exibe todos os IDs dos grupos, e o argumento-n
, que exibe os nomes em vez dos números dos IDs dos grupos.
Vamos então testar o comando id -G -n mileto
, onde 'mileto' é o meu usuário. No meu caso, ele retorna:
mileto adm dialout cdrom floppy sudo audio dip video plugdev netdev
Bom, já descobrimos algo que parece ser o caminho para a nossa resposta final e identificamos um outro problema para resolver:
- Como substituir espaços por vírgulas em um retorno de comando no Unix?
Agora, podemos utilizar o ChatGPT para tentar obter a resposta acima (e sim, é possível dividi-lo em partes ainda menores). Copiando o problema acima e colando no ChatGPT, ele me retornou a seguinte resposta (resumida):
Para substituir os espaços em branco de um retorno de comando no Unix por uma vírgula, você pode usar o comando "tr". O comando "tr" é usado para traduzir ou excluir caracteres de um arquivo ou de uma sequência de entrada.
Para substituir os espaços em branco por uma vírgula, use o seguinte comando:
\[COMMAND] | tr ' ' ','
Onde [COMMAND] é o comando cuja saída você deseja modificar. Os apóstrofos indicam que os caracteres a serem substituídos são os espaços em branco e o caractere entre os apóstrofos é o caractere pelo qual os espaços em branco serão substituídos.
Ótimo, parece que temos a resposta. No nosso caso, temos o seguinte comando:
id -G -n mileto | tr ' ' ','
Que retorna:
mileto,adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev
Agora precisamos obter o valor da váriavel de ambiente e passá-lo no lugar do argumento 'mileto'.
Para isso, vamos novamente usar o ChatGPT:
'obter valor da variável de ambiente no unix'
Ele respondeu:
Para obter o valor de uma variável de ambiente no Unix, você pode usar o comando "echo" seguido pelo nome da variável entre colchetes. Por exemplo:
echo $[NOME_DA_VARIAVEL]
Por exemplo, para obter o valor da variável de ambiente "HOME", você pode usar o seguinte comando:
echo $[HOME]
Nesse ponto, pensei já estar com a resposta mas, me surgiu uma duvida. Como usar o retorno do comando acima, como argumento para o comando id
? Perguntando ao ChatGPT, tive como resposta:
Para usar o retorno do comando "echo $[FT_USER]" como parâmetro para o comando "id", você pode usar o símbolo "`" (acento grave) para indicar que o comando deve ser executado primeiro. O acento grave é geralmente localizado acima do tab no teclado.
O comando ficaria assim:
id `echo $[FT_USER]`
Esse comando irá executar o comando "echo $[FT_USER]" primeiro, o que irá exibir o valor da variável de ambiente "FT_USER", e em seguida, esse valor será passado como parâmetro para o comando "id". O comando "id" irá exibir informações sobre o usuário especificado, como o nome do usuário, o número do grupo principal e os números de grupos secundários.
Agora sim, consegui montar o quebra-cabeças ao quebrar o problema principal em partes menores e resolver cada uma delas. A solução final foi:
id `echo $[FT_USER]` -G -n | tr ' ' ','
Ficou claro que, ao dividir o problema em questões menores e usar o ChatGPT como apoio, foi possível obter a resposta final e aprender no processo. Existem outras maneiras de resolver esse problema, inclusive a resposta direta do ChatGPT é um pouco diferente. No entanto, ambas levam ao mesmo resultado.
Outro ponto é que, neste caso, foi possível testar efetivamente as respostas do ChatGPT, pois sim, o ChatGPT pode responder algo de forma incorreta. Sempre há a necessidade de verificar. Ele também pode não fornecer as melhores respostas. Nesse caso, acredito que as respostas foram boas, considerando que o objetivo aqui é ganhar conhecimento.
Espero que este post possa ajudar e inspirar alguém a utilizar o ChatGPT em seus estudos.