ChatGPT, plágio, e desafios de código: feito é melhor que perfeito
- #JavaScript
- #Python
- #Java
Ato I: Toda empresa é uma empresa de tecnologia
O mundo está cada vez mais rápido e conectado, e é praticamente impossível para uma empresa crescer no mercado sem usar tecnologia. Controle de caixa, acompanhamento de suprimentos, comunicação interna e externa, gestão de RH, tudo isso depende de sistemas informatizados.
Pense em alguma marca um pouco maior, e imagine o tamanho da estrutura tecnológica para sustentá-la. Considere a necessidade de manter ativos e seguros website, loja virtual, banco de dados de clientes, atendimento online - e tudo isso escalando conforme a marca cresce.
Black Friday deixando tudo fora do ar? Inaceitável. Um escritório de arquitetura ou advocacia que faz tudo no papel? Impossível.
“Hoje em dia, praticamente toda empresa é uma empresa de tecnologia.”
Logo se vê que, apesar de flutuações de mercado causadas por inúmeros fatores, a demanda por profissionais da área de tecnologia só tende a crescer…
…e, com ela, a quantidade de pessoas tentando entrar no mercado.
Como avaliar tantos candidatos? Como separar aqueles que vão conseguir entregar resultados - ainda que depois de um período de treinamento e adaptação - daqueles que conseguiram impressionar o RH com uso de termos técnicos e chavões?
Ato II: O papagaio é mais inteligente
Imagine uma pessoa que mantém um papagaio como animal de estimação. Buscando interação com seu tutor, o papagaio imita o som de frases e palavras. Algumas palavras são ignoradas, outras são recompensadas com guloseimas, carinho ou riso, e no fim não há dúvida de quais serão as palavras que o animal aprenderá a falar perfeitamente. Imitar, pra falar a verdade.
Imitar, como um modelo de linguagem imita a formação de frases humanas baseado em input e depois feedback de moderadores e usuários, talvez?
Não, o papagaio é mais inteligente. Papagaios são animais surpreendentemente inteligentes, que conseguem aprender com humanos ou outros animais. São capazes de interação social, travessuras, brincadeiras, e carinho. O papagaio dessa história não reage apenas aos afagos e guloseimas do dono, mas também pode aprender a agir de modo diferente para alegrá-lo ou acalmá-lo. Pode aprender também a se expressar para obter algo que queira, como água ou uma televisão ligada num canal específico.
Papagaios são seres orgânicos de inteligência natural e muito mais inteligentes que modelos de linguagem como o ChatGPT.
E você é muito mais inteligente que um papagaio.
Ato III: Pode copiar, só não copia igual
Aposto que já falou algo como isso, ou algum colega já falou pra você. Não tem problema, aqui somos honestos.
Parte da trajetória escolar, se você parar bem pra refletir, não depende do conteúdo ficar mais “difícil” e sim das perguntas dependerem mais de você. É aqui que mora a diferença entre “2 + 2 = 4”, e “calcule a diferença da distância percorrida entre os dois carros”, ou a diferença entre “qual é o nome do personagem principal?” e “podemos acreditar em um narrador em primeira pessoa?”.
É essa evolução de raciocínio e independência que importa, ainda que seja necessária uma nota mínima na matéria pra passar de ano. Essa evolução não é fácil, especialmente quando esperada de estudantes tão jovens e sem experiência de vida que os permita traçar paralelos entre o conteúdo e a realidade. Essa necessidade de evolução faz cada série escolar ou semestre na universidade parecer mais difícil.
Por isso já há tanto tempo o ambiente acadêmico se importe com plágio, e algumas instituições já adotem há anos programas de detecção de cópia ou plágio. Uma coisa é utilizar fontes para basear sua pesquisa ou fala, outra é “copiar, só não copiar igual”: aquela permite que você cresça e expanda seus horizontes, enquanto esta mantém você refém dos outros.
Nem mesmo o papagaio se limita a imitar.
Concluímos que tempo é dinheiro
Vamos trazer de volta a questão das empresas precisarem filtrar seus candidatos, e como isso é custoso ou complicado.
Opção 1: Basear contratação em análise de currículo.
Certo, mas todos nós temos ciência de que você pode ter quatrocentos cursos e não saber de nada, ou saber muito sem ter um certificado para mostrar. As chances de uma contratação “alarme falso” são altas. No fim, além de todas as custas relacionadas à contratação e demissão de um funcionário, existirão também outros fatores como lentidão no desenvolvimento ou manutenção de um projeto por falta de mão de obra, necessidade de ainda mais tempo para encontrar um candidato, e também o risco de profissionais dentro da empresa sentirem-se sobrecarregados e pedirem demissão - uma verdadeira bola de neve. Fácil concluir que, na área de tecnologia, basear contratação em análise de currículo não dá certo.
Opção 2: O processo seletivo será guiado por profissionais de tecnologia do time que receberá o novo contratado, e que têm conhecimento das tecnologias utilizadas.
Parece ideal, ser avaliado exclusivamente por gente que também vai lidar com o mesmo que você. Gente que não necessariamente tem conhecimentos de como guiar uma entrevista ou avaliar um candidato, gente que não foi contratado pra ser entrevistador, gente que tem muita coisa pra fazer e não tem como entregar tudo e ainda entrevistar um tanto de candidato, gente que vai ficar cada vez mais frustrada ou sobrecarregada e com mais chance de pedir demissão… Uma coisa são 15-30 minutos com candidatos pré-selecionados, em etapas finais, pra dar aquele último pente fino… outra coisa é eu ser contratada como programadora e mais entrevistar do que tocar em código! Ah, pera aí. Talvez não seja uma boa ideia.
Opção 3: Um desafio-teste onde você tem que criar uma funcionalidade (ou parte dela) de acordo com especificações
Aqui já não é tão ruim! É menos pressão do que ter que fazer ao vivo e a cores, e você pode utilizar pesquisas como faria na vida real. Bem mais legal…
…a não ser quando a empresa pede pra você montar um projeto inteiro, tomando horas e horas do seu tempo para no fim nem enviarem um e-mail de rejeição. Horas e horas que você poderia estar estudando, descansando, ou mesmo fazendo outras entrevistas.
Além do mais, quem vai analisar seu código? Aqui enveredamos novamente pelo caminho que toma tempo excessivo dos profissionais de tecnologia da empresa, que passarão horas e horas analisando o código de muitos candidatos. Com sorte terão algum “gabarito”, que também deverão criar, e conseguirão manter consistência nas avaliações pois não ficarão cansados ou estafados… certo? É, acho que não.
Opção 4: Contratar uma plataforma especializada em cuidar dos desafios de código para filtragem inicial de candidatos
Existem várias plataformas - HackerRank, Codility, etc. - nas quais a empresa pode usar questões pré-formuladas ou mesmo inserir as próprias para montar um teste online.
Só não se empolgue achando que será suficiente trocar de janela para perguntar ao ChatGPT: normalmente os movimentos do seu mouse serão gravados e podem ser analisados pelos entrevistadores, que poderão assistir o vídeo inteiro para ver sua velocidade de digitação ou ritmo de desenvolvimento do problema. Também costuma ser contabilizada a quantidade de vezes que você trocou de janela, e mostrado se ou o que você colou no editor de código do teste. Isso quando você não precisa compartilhar a imagem da própria webcam durante o teste, para verem que você é você e que não estava usando o celular ou outro computador durante a prova.
Você só passa pra próxima etapa se a inteligência artificial analisar seu código, sua porcentagem de plágio, e julgar que passou.
É bastante pressão em cima do candidato, mas já se torna uma opção melhor pra empresa.
E tempo é dinheiro.
Concluímos, parte II, o Retorno
“O seu código falhou em dois dos testes ocultos, você se importa de dar uma segunda olhada e ver se consegue identificar o que ficou faltando?”
Essa foi uma das perguntas de uma entrevista, guiada por desenvolvedores da empresa, após eu passar pela segunda etapa do processo seletivo - o teste online, que veio depois da entrevista com a recrutadora interna.
Essa análise do código que eu entreguei foi no formato de conversa. Eu pude falar sobre como cheguei àquele resultado, sobre possibilidades de otimização, e até mesmo pedir dicas de como poderia melhor organizar para cobrir os dois testes que faltaram. Eu consegui cobrir mais um dos testes, mas não resolvi o último. Também não tinha mais tempo para a análise, foi uma conversa curta de cerca de 20 minutos que mais pareceram uma eternidade.
"Gostamos muito de como você demonstrou sua linha de raciocínio e organizou seu pensamento. Alguns candidatos chegam a passar em todos os testes do desafio, mas não conseguem explicar o que fizeram."
Olha, é óbvio que não faltam respostas na internet. Google, StackOverflow, Reddit, as próprias seções de respostas do LeetCode: tudo isso estava disponível quando ChatGPT ainda era mato.
Só que do que adianta copiar, sem entender? Como entender e não conseguir explicar? Como criar na sua cabeça todo um caminho para a solução, e não saber falar disso para o recrutador? Como planejar a solução com todas as ferramentas das quais dispõe mentalmente, e não conseguir traduzir em código?
É isso que será avaliado, e isso o ChatGPT não poderia fazer por você mesmo que fosse conhecido por criar trechos de código perfeito e sem erros - o que está bem longe da verdade.
Não tema o robozinho, mas também não dependa dele. Use-o pra ajudar a se preparar, como um apoio na sua jornada se quiser, e tenha em mente que os processos seletivos também usarão robôs para avaliá-lo.
E está tudo bem.
Mesmo errando na implementação, você é ainda mais inteligente que um papagaio que é mais inteligente que um modelo de linguagem.
Feito é melhor do que perfeito.
#DesafioDIO
Sobre o tema ChatGPT, leia também:
- Conheça a História da Inteligência Artificial do Início até o ChatGPT
- ChatGPT e IA, além do hype
- O lado oculto da IA
- ChatGPT e o futuro da Programação: O que realmente você deve se questionar?
- A revolução da saúde mental: ChatGPT, meditação e PNL
- Uma entrevista com o Chat GPT - conheça algumas das funcionalidades desta ferramenta
- Como o ChatGPT pode ajudar a programar