Mas aí entra a questão: se eu não tenho uma base mínima do conhecimento, como posso confiar 100% em uma dúvida respondida por IA? Eu nem teria como avaliar se o que ela disse é realmente o correto pois estou aprendendo sobre o assunto.
Cara, vc nunca deve confiar 100% na resposta de uma IA. Ela não é perfeita, e ao meu ver, nunca será.
Assim, isso é mais questionamento para quem trabalha, mas qndo eu penso sobre IA, ela é capaz de ver o q vc escreveu, mas ela é capaz de entender as nuances do q vc quis dizer? Nem sempre qndo escrevemos um prompt, a gente msm tem 100% de certeza do q escrevemos, pois não sabemos exatamente o q procuramos em algumas vezes. Então o q pode acontecer nesse cenário é: eu pergunto e quero saber sobre A, mas por ser mal escrito ele diz sobre B. Por isso no final temos q ir perguntando de novo para ele entender o q a gente quer. Se alguém q inicia num assunto nem sabe exatamente como quer, ela não vai conseguir gerar uma resposta com precisão sobre o assunto, então esse é apenas 1 motivo pra nunca confiar 100% nela. Até no google search a gente tem esse problema q nem sempre ele retornava o q buscávamos.
Outro ponto q tbm faz a gente não confiar é por causa dos dados de treinamento. Posso usar os códigos msm como exemplo. Para treinar uma IA, é necessário dados para ela aprender. Então q q o google, facebook, openAI faz para treinar? SImples, vamos usar códigos para ela aprender como programar. Mas... q código? Oras, código aberto. Então ao pegar o código aberto, vc vai no github por exemplo, vc irá ver toneladas de códigos por lá. Tem de python, tem de C#, Java, etc. Nada como uma mina de códigos disponível. Até ai tudo certo né? Sim, mas tem algo q pouca gente percebe. Q tipo de código é esse? Qual é a qualidade desse código? Ele é um código bom? Não, não é na grande maioria dos casos. Vou dizer pq. Lá com certeza deve ter códigos bons de projetos grandes ou pequenos, mas ao mesmo tempo tem um monte de códigos ruins, como projeto de testes/estudos (eu por exemplo faço um monte no meu github e não me importo com a qualidade pq estou aprendendo no momento sobre algo em específico), tem códigos legados (códigos velhos q estão mal feitos) e tbm tem códigos desatualizados (imagina vc usa um plugin na versão x, mas hj o plugin está na versão x+1000 e mudou o estilo dele).
Então o q acontece é q as IAs são treinadas na vdd com um monte de códigos "ruins". Ai o q acontece qndo vc treina uma IA com algo ruim? Ela vai gerar dados ruins.
Claro q não precisa ficar 100% achando q sempre irá gerar código ruim, mas é ai q acaba entrando o fator da experiência da pessoa e outro motivo pq é meio problemático iniciante usar IA, pq se ela não entende, não vai saber do problema q está acontecendo. Tem um plugin q uso no meu projeto. Eu já gerei e já pedi pra IA pegar sempre o mais atual. Mas não dá, ela sempre irá gerar código com a estrutura antiga do plugin, por isso já desisti de gerar códigos relacionados a aquele plugin, pq simplesmente ela não foi treinada com dados da nova versão do plugin.
Claro q hj as IAs estão mudando para elas pesquisarem na net em tempo real, mas nem sempre isso salva elas de gerarem algo inconsistente.
Então assim, nunca confie 100% numa resposta gerada por IA. O q faço normalmente qndo percebo q ele pode gerar algo ruim, simples, peça por referências de onde pesquisou para achar as respostas. Nem sempre eles darão 100% de precisão (pelo menos o copilot web q uso, ahahaha), pois eles podem mandar para links dos sites q estão quebrados, links das páginas principais dos sites. Tbm pode abrir uma nova conversa, pois algumas vezes a conversa fica enviesada demais com as respostas anteriores e ele ainda irá persistir no erro.
Tem alguma dica de como tirar as dúvidas que tenho quando estou estudando?
Cara, isso depende de vc. Eu por exemplo, sou da era do google search, ele era meu tira dúvida. Hj vc pode usar a IA. Mas o q vc tem q fazer é sempre pensar e analisar o q está acontecendo. Por exemplo, qndo eu vejo um código novo, não adianta copiar e colar, precisa analisar o código. Ou pode tbm fazer é criar um projetinho apenas para testar esses códigos q vc acha de dúvidas. Eu tenho um projeto só pra testar coisas pequenas, ai eu executo, faço o debug dele pra ver o q está acontecendo e tento entender o pq ele fez daquele jeito. Nem nós experientes sabemos fazer tudo.
Tbm a gente pode consultar os próprios docs dos plugins/frameworks. Se for uma linguagem de programação nova, dá pra pesquisar sobre ela pesquisando em vários sites e comparando como é feito, ou até ler em um livro (o q acho mais cansativo, por isso o ideal é ler tudo e depois usar ele como referência pq vc já terá uma base de onde achar a informação), pode tbm perguntar em fóruns/grupos de discord especializados de tal tecnologia, pq sempre pode ter alguém q saiba resolver aquele problema q vc não consegue entender. Se for um bug, por exemplo, o próprio stackoverflow pode ajudar.
Bem, alternativas de como tirar dúvidas existem de montão, mas pra ajduar msm, qualquer coisa q vc estiver lendo, sempre analise e questione o q está acontecendo lá. Qnto mais vc bota seu cérebro para entender o q o código faz, mais fácil fica no futuro, vc meio q criará um debug manual em seu cérebro, kkk.
Edit: sei q não tem mto haver com a parte de IA, mas tem haver com estudos.
Se vc quer treinar mais algoritmos/estrutura de dados e linguagem de programação, vc pode usar sites como beecrowd. Tem vários, mas uso esse como referência pq é o q lembro, aahahah. Esses sites tem um monte de exercícios onde ele mostra um problema e vc tem q gerar o código para resolver esse problema. Tem gente q usa pra competição (maratona de programação) para otimizar o código dele, mas vc não precisa fazer isso, vc pode usar para aprender a linguagem específica além de treinar mais algoritmos/estrutura de dados.
Se vc quiser aprender a usar algum framework, eu recomendo vc estudar através do estilo de mini-projetos. Como seria isso? Ao invés de vc criar um projetão completo, vc cria vários projetos pequenos onde vc tem o objetivo de aprender apenas um pedaço dele.
Por exemplo, quero aprender como criar uma API usando um framework tal. Ai vc faz apenas isso. Todos dados de testes vc deixa na memória msm pra vc só focar em como é criar a API. Ai vc pode buscar por N exemplos de como fazer isso. Ou vc quer aprender como usar o banco de dados no framework. Crie um projeto focado nisso, onde vc fará chamadas de banco de dados, como feitos de CRUD, sem focar mto em tela. Ai vc quer avançar mais e criar algo com API e banco de dados. Agora q vc tem experiencia dos 2, vc apenas faz com outra temática e junta os 2. Ai agora eu quero aprender sobre como criar um mapa. Vc aprende como encaixar o google maps, openstreetmap ou qqr outro software de mapa nele. Ou vc quer aprender sobre como fazer um formulário, ai vc foca só nessa parte de como gerar o formulário e como os dados serão transmitidos para o backend. Ou se vc quiser algo mais de frontend, como criar aquela parte de stories do instagram, ai vc só foca naquilo.
Viu q todos casos eu sempre fui objetivo, não fiquei criando objetivo de criar um whatsapp completo, instagram completo, um sistema completo. É tipo "dividir pra conquistar", pq nesse momento o objetivo é aprender coisas pequenas e aos poucos tentar fazer algo grande sem a experiência prévia.
Um software grande é mais fácil construir qndo a gente já tem conhecimento sobre algo. Não precisa ser um conhecimento profundo sobre aquilo, mas ter aquele contato inicial para q um dia qnto for, por exemplo, colocar o google maps no seu site, vc tem uma noção como fazer, ai vc já sabe o q procurar, onde procurar, como procurar sobre o assunto. Como as tecnologias sempre evoluem, então precisará dessa atualização.
E se vc puder revisar seus projetos q vc tinha terminado e buscar refatorar ele depois de um tempo, vc tbm estará reforçando o q vc tinha visto anteriormente, sem contar q tbm estará melhorando ele.
Bom, esse é mais o estilo q recomendo pro pessoal de como estudar, existem várias maneiras, mas pelo menos pra mim esse foi o mais eficiente. O problema é q não sei se funciona mto com iniciantes, pois aprendi isso depois de um bommmm tempo. Mas no final eu entendi q o segredo de aprender algo é ter bte contato com aquela tecnologia e qnto mais vc fizer e repetir, mais será gravado em seu cérebro. Eu chamo isso de ambientar com a tecnologia, seja linguagem de programação, framework, conhecimentos gerais e qqr outra coisa q tenha relação.