O Impacto da IA no Nosso Aprendizado
Minha Experiência com a Programação
Comecei a estudar programação em meados de 2015, em um curso técnico onde enfrentei muitas dificuldades devido à falta de acesso a informações e ao meu inglês limitado. Programávamos em C usando uma IDE chamada Dev C++, com recursos super limitados e pouco suporte, como IntelliSense e extensões que facilitam a vida do desenvolvedor, como as que vemos hoje no Visual Studio Code (VSC) e outras IDEs. No final do curso, precisávamos criar uma interface no VC++ do "extinto" .NET Framework e conectar a um banco de dados com um pouco de SQL.
Infelizmente, naquela época não tínhamos o boom da inteligência artificial (IA) e dependíamos muito dos professores e colegas. Meu professor, em particular, era extremamente rude, respondendo de forma grosseira e desencorajando os alunos a fazerem perguntas, somente no último semestre onde eu me juntei a colegas que ja tinham algum conhecimento foi que eu comecei a aprender, porem essa péssima experiência inicial acabou me afastando da programação.
O Papel da IA no Aprendizado Atual
Felizmente, o cenário mudou. Hoje temos acesso a uma quantidade enorme de informações e ferramentas que facilitam o aprendizado. Meu inglês melhorou com cursos, permitindo-me ler documentações inteiras em inglês. Além disso, temos mentores como o ChatGPT e o Gemini, que oferecem explicações detalhadas, resumos de documentações em português e feedbacks sobre como melhorar um código. Ferramentas como Amazon Q e Copilot completam blocos inteiros de código, poupando tempo, minimizando possíveis erros de sintaxe e deixando o código mais limpo.
Algumas das Ferramentas de IA no Desenvolvimento de Software
ChatGPT
O ChatGPT atua como um professor sempre disponível para esclarecer dúvidas e explicar conceitos de forma compreensível. Sua capacidade de oferecer feedbacks detalhados sobre o código ajuda a melhorar a qualidade do trabalho.
Amazon Q
Amazon Q é uma ferramenta que pode auxiliar na depuração e otimização de código, sugerindo melhorias baseadas em práticas recomendadas.
Copilot
O GitHub Copilot, desenvolvido pela OpenAI, é uma extensão para editores de código que sugere linhas inteiras ou blocos de código enquanto você digita. Ele usa aprendizado de máquina para prever o que você quer programar, economizando tempo e reduzindo erros.
Exemplos Práticos
Aqui estão alguns exemplos de como essas ferramentas podem ser utilizadas:
ChatGPT:
- Resolução de Problemas de Algoritmos: Se você está enfrentando dificuldades para entender ou implementar um algoritmo de ordenação, pode descrever o problema para o ChatGPT e obter uma explicação detalhada. Por exemplo, "Estou tentando implementar o algoritmo de ordenação por inserção, mas não entendo por que meu código não está funcionando corretamente. Pode me ajudar a depurar isso?"
- Aprendizado de Novas Tecnologias: Você quer aprender uma nova tecnologia, como React, e pode pedir ao ChatGPT para explicar os conceitos básicos e fornece exemplos de código. Por exemplo, "Pode me ensinar como criar um componente simples em React?"
# Exemplo do algoritmo de ordenação insertion implementado em Python
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
# Explicação detalhada de cada passo fornecida pelo ChatGPT.
-------------------------------------------------------------------------------------------
# Exemplo da sintaxe no React
import React from 'react';
class HelloWorld extends React.Component {
render() {
return (
<div>
<h1>Hello, World!</h1>
</div>
);
}
}
export default HelloWorld;
// ChatGPT explica a estrutura e a sintaxe do código.
Amazon Q:
- Depuração de Código: Você tem um código complexo em Java que está apresentando erros e não sabe como corrigi-los. Usando o Amazon Q, você pode obter sugestões de depuração e melhorias. Por exemplo, "Estou recebendo uma NullPointerException no meu código Java. O que posso fazer para identificar e corrigir a causa desse erro?"
- Otimização de Consultas SQL: Você escreveu uma consulta SQL para um banco de dados grande, mas ela está demorando muito para executar. O Amazon Q pode sugerir melhorias para otimizar a consulta. Por exemplo, "Como posso otimizar esta consulta SQL para melhorar o desempenho?"
// Exemplo em Java
public class Main {
public static void main(String[] args) {
String str = null;
System.out.println(str.length()); // Isso causará NullPointerException
}
}
// Amazon Q sugere verificações de nulidade antes de acessar métodos em objetos.
-------------------------------------------------------------------------------------------
-- Exemplo em SQL
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = 10
ORDER BY last_name;
-- Amazon Q sugere adicionar índices para melhorar o desempenho da consulta.
Copilot:
- Autocompletar Funções Inteiras: Você está escrevendo uma função em Python para calcular a média de uma lista de números. O Copilot pode sugerir automaticamente o código completo baseado no que você já escreveu. Por exemplo, "Escreva uma função em Python que calcula a média de uma lista de números."
- Sugestão de Código para Funcionalidades Comuns: Durante o desenvolvimento de uma aplicação web, você precisa adicionar uma funcionalidade de autenticação. O Copilot pode sugerir o código necessário para criar um sistema de login básico. Por exemplo, "Preciso de uma função de login em Node.js que valide o nome de usuário e a senha contra um banco de dados."
# Exemplo em Python
def calculate_average(numbers):
if len(numbers) == 0:
return 0
return sum(numbers) / len(numbers)
# Copilot sugere automaticamente a função completa.
-------------------------------------------------------------------------------------------
// Exemplo em JavaScript
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const users = [{ username: 'user1', password: 'pass1' }];
app.use(bodyParser.json());
app.post('/login', (req, res) => {
const { username, password } = req.body;
const user = users.find(u => u.username === username && u.password === password);
if (user) {
res.status(200).send('Login successful');
} else {
res.status(401).send('Invalid credentials');
}
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
// Copilot sugere automaticamente o código de autenticação.
Considerações Críticas sobre o Uso da IA
Embora as ferramentas de IA sejam extremamente úteis, é importante não depender totalmente delas. A IA ainda comete erros e pode fornecer sugestões inadequadas. Sempre revise o código gerado e busque entender os conceitos por trás das sugestões. O pensamento crítico é essencial para garantir a qualidade e a segurança do seu trabalho. Além disso, é crucial estar atento à segurança de dados importantes e privados, pois sabemos que uma LLM pode utilizar os dados fornecidos para aprendizado, o que não é sábio se os dados forem sensíveis.
Conclusão
A IA transformou significativamente o aprendizado e a prática da programação, oferecendo ferramentas poderosas que podem economizar tempo e melhorar a qualidade do código. No entanto, é crucial manter um equilíbrio e não confiar cegamente nas sugestões da IA. Desenvolva um pensamento crítico e aprofunde seus conhecimentos para aproveitar ao máximo essas tecnologias.
É isso, desde já se você leu até aqui muito obrigado! de verdade e até uma próxima. Se você tiver comentários ou quiser debater sobre o impacto da IA no aprendizado, sinta-se à vontade para entrar em contato comigo por aqui ou pelo meu LinkedIn que deixarei logo abaixo 😊.
Contato: LinkedIn