Vibe Coding: o que aprendi depois de criar 3 aplicativos
Sou curioso por natureza e autodidata por escolha. Gosto de explorar tecnologias, experimentar ferramentas e descobrir como a inteligência artificial pode resolver problemas reais. Nos últimos meses, tenho dedicado parte do meu tempo a testar soluções de IA, especialmente o GPT Codex, transformando necessidades pessoais em aplicativos e, principalmente, aprendendo muito durante o processo.
O que é Vibe Coding e por que resolvi experimentar?
O termo Vibe Coding ganhou popularidade para descrever uma forma de desenvolver software utilizando inteligência artificial, na qual descrevemos em linguagem natural o que queremos construir e deixamos que a IA gere boa parte do código.
Em outras palavras, em vez de escrever cada linha de programação, posso explicar o problema, descrever uma funcionalidade e pedir à inteligência artificial que implemente a solução.
Parece simples, certo?
Na teoria, basta conversar com a IA. Na prática, descobri que existe uma diferença enorme entre pedir que a IA crie um aplicativo e conseguir desenvolver um aplicativo que realmente funcione.
Minha experiência profissional com tecnologia, análise de dados e auditoria interna certamente ajudou. Estou acostumado a entender processos, identificar problemas, estabelecer regras e testar resultados.
Mas o Vibe Coding me colocou diante de desafios diferentes e trouxe uma oportunidade interessante: utilizar a IA não apenas para desenvolver soluções, mas também para aprender enquanto desenvolvo.
Os 3 aplicativos que desenvolvi utilizando inteligência artificial
Não comecei procurando uma grande ideia de negócio ou tentando criar o próximo aplicativo revolucionário.
Comecei com problemas do meu cotidiano.
1. Neurodiário: organizando pensamentos, tarefas e rotinas
O primeiro projeto foi o Neurodiário, um aplicativo que criei para organizar diferentes aspectos da minha rotina.
Eu queria uma solução que reunisse tarefas, compromissos, pensamentos, emoções, qualidade do sono e outras informações importantes em um único lugar.
O desafio era transformar necessidades bastante pessoais em funcionalidades organizadas, intuitivas e realmente úteis.
Com o auxílio do GPT Codex, desenvolvi um aplicativo desktop com registros, acompanhamento de atividades, lembretes e relatórios.
Durante o desenvolvimento, precisei aprender a especificar regras, corrigir comportamentos inesperados e validar o funcionamento das funcionalidades.
Principal aprendizado: antes de pedir para a IA programar, preciso entender exatamente o problema que desejo resolver.
Contei mais detalhes dessa experiência no artigo Criei um aplicativo com o GPT Codex: do zero ao Neurodiário.
2. SecondBrain: transformando áudios em conhecimento organizado
O segundo projeto nasceu de outra necessidade: registrar ideias sem depender da minha memória.
Frequentemente tenho pensamentos, ideias para projetos ou informações que gostaria de guardar para consultar posteriormente.
Foi assim que surgiu o SecondBrain, um aplicativo para gravar áudios, transformar gravações em texto e organizar as transcrições em arquivos Markdown.
A proposta também inclui pesquisar o conteúdo dos registros e permitir que eu consulte e edite minhas anotações.
O principal desafio foi conectar diferentes funcionalidades em um fluxo simples: gravar, transcrever, armazenar, encontrar e reutilizar informações.
Também passei a explorar possibilidades de integração com modelos de linguagem locais, utilizando ferramentas como o Ollama para resumir e interpretar conteúdos.
Esse interesse por IA local não surgiu agora. Já explorei o assunto no artigo Como utilizar modelos LLM como o Llama 3 na auditoria.
Principal aprendizado: um aplicativo não precisa fazer tudo. Precisa executar bem aquilo que realmente importa. Funcionalidades adicionais podem ser incorporadas gradualmente.
3. Controle financeiro pessoal: tornando informações mais fáceis de analisar
O terceiro projeto explorou uma necessidade bastante comum: organizar informações financeiras.
A ideia era reunir dados de cartões de crédito, compras, faturas e compromissos financeiros em uma solução que facilitasse o acompanhamento dos valores e a visualização das informações.
O desafio não estava apenas na interface. Era necessário transformar dados e regras de cálculo em resultados consistentes e fáceis de interpretar.
Nesse projeto, explorei uma abordagem mais simples, com tecnologias web e recursos de visualização.
Principal aprendizado: nem todo problema exige uma arquitetura sofisticada. Muitas vezes, uma solução pequena e objetiva entrega mais valor do que um aplicativo repleto de funcionalidades.
O maior desafio do Vibe Coding não foi programar
Uma das primeiras coisas que percebi é que a IA consegue gerar código rapidamente. O problema começa quando precisamos manter tudo funcionando depois de várias alterações.
Uma mudança aparentemente simples pode afetar outra funcionalidade. Uma correção pode introduzir um novo erro. E um pedido mal formulado pode fazer a IA alterar arquivos que não precisavam ser modificados.
Passei a entender que o verdadeiro desafio envolve três atividades:
Saber o que pedir, compreender o que foi entregue e validar se o resultado atende à necessidade.
A IA acelera a execução, mas não elimina a necessidade de planejamento, pensamento crítico e testes.
Também percebi que tentar desenvolver muitas funcionalidades simultaneamente aumenta a complexidade e dificulta a identificação de problemas.
Foi nesse momento que comecei a mudar minha abordagem.
Minha estratégia: usar o próprio GPT para planejar o trabalho do Codex
Aqui está uma das descobertas mais interessantes dessa experiência.
Em vez de simplesmente abrir o Codex e começar a solicitar funcionalidades, passei a utilizar o próprio ChatGPT para criar prompts estruturados, encadeados e organizados logicamente.
A ideia era transformar um projeto relativamente complexo em pequenas etapas de implementação.
Por exemplo, eu pedia ao GPT que analisasse os requisitos do aplicativo e elaborasse uma sequência de prompts considerando:
- Planejamento inicial: identificar funcionalidades essenciais, dependências e decisões de arquitetura.
- Implementação progressiva: dividir o desenvolvimento em partes pequenas, executáveis e logicamente conectadas.
- Economia de recursos: escolher modelos adequados, reduzir o consumo de tokens e evitar processamento desnecessário.
- Preservação do projeto: impedir alterações em arquivos e funcionalidades que não fazem parte da tarefa atual.
- Testes e validação: definir critérios de aceite e executar verificações proporcionais ao que foi modificado.
Também passei a incluir instruções explícitas para não compilar o aplicativo após cada pequena alteração, não repetir tarefas já concluídas e não investigar novamente questões que já estavam resolvidas.
Isso não significa deixar de testar o software. Significa concentrar os testes e compilações nos momentos apropriados, sem prejudicar a qualidade.
Outra orientação importante era solicitar que o Codex examinasse apenas os arquivos relevantes para a tarefa, sempre que possível.
O resultado foi uma abordagem mais organizada, com menos retrabalho e maior controle sobre o desenvolvimento.
Na prática, comecei a tratar o ChatGPT como um parceiro de planejamento e o Codex como uma ferramenta de implementação, mantendo para mim as decisões e a validação final.
Entendendo os limites do Codex: 5 horas, 7 dias e consumo de tokens
Quem utiliza o GPT Codex com frequência provavelmente já encontrou alguma restrição de uso.
Dependendo do plano, existem duas janelas importantes: 5 horas e 7 dias.
É importante compreender que isso não significa ter apenas cinco horas para programar ou sete dias para concluir um aplicativo.
São períodos utilizados para contabilizar e renovar as franquias de uso.
- Janela de 5 horas: controla o consumo permitido durante um período mais curto.
- Janela de 7 dias: estabelece uma limitação adicional sobre o uso ao longo da semana.
Quando as duas restrições se aplicam, preciso ter saldo disponível em ambas.
O consumo também não corresponde necessariamente a um número fixo de mensagens.
Uma tarefa complexa, que exige análise de muitos arquivos, execução de ferramentas e raciocínio aprofundado, pode consumir mais recursos do que várias alterações simples.
Foi por isso que comecei a prestar mais atenção aos tokens, unidades utilizadas pelos modelos para processar e gerar informações.
Prompts, respostas, arquivos analisados, histórico da conversa e resultados de ferramentas podem influenciar esse consumo.
Passei a perceber que economizar tokens não significa escrever instruções vagas ou curtas demais.
Significa fornecer o contexto necessário, evitar informações irrelevantes e delimitar claramente o resultado esperado.
Para conferir as regras vigentes, utilizo a documentação oficial de uso do Codex.
Escolher o modelo certo faz diferença
Outro aprendizado importante foi perceber que utilizar sempre o modelo mais poderoso não é necessariamente a melhor decisão.
Os modelos disponíveis no Codex apresentam diferenças de capacidade, velocidade e consumo de recursos.
Passei a considerar a complexidade de cada tarefa antes de selecionar um modelo.
Para pequenas alterações visuais, ajustes de textos ou mudanças pontuais, modelos mais leves podem ser suficientes.
Para implementar funcionalidades, integrar componentes e resolver problemas moderadamente complexos, prefiro modelos que ofereçam equilíbrio entre capacidade e eficiência.
Já para investigar erros difíceis, revisar decisões de arquitetura ou resolver problemas que envolvem várias partes do sistema, considero modelos com maior capacidade de raciocínio.
A complexidade de pensamento também importa
Além do modelo, o Codex permite configurar, quando disponível, diferentes níveis de esforço de raciocínio.
De maneira simplificada:
Raciocínio baixo: tarefas simples e bem delimitadas.
Raciocínio médio: implementação de funcionalidades e resolução de problemas que exigem alguma análise.
Raciocínio alto: desafios complexos, decisões arquiteturais e investigações mais profundas.
Aprendi que aumentar o nível de raciocínio indiscriminadamente não garante resultados melhores.
Em alguns casos, um modelo avançado com menor esforço de raciocínio pode resolver a tarefa com mais eficiência do que outra combinação aparentemente mais sofisticada.
A lógica que procuro aplicar é simples: usar a capacidade necessária para cada problema, sem desperdiçar recursos.
Cinco lições que levo para os próximos projetos
Depois dessas experiências, algumas conclusões ficaram bastante claras.
1. Começar pequeno aumenta as chances de sucesso. Prefiro desenvolver uma primeira versão funcional e depois acrescentar recursos, em vez de tentar construir tudo de uma vez.
2. Um bom prompt economiza muito mais do que tokens. Instruções claras ajudam a reduzir interpretações incorretas, retrabalho e correções desnecessárias.
3. A inteligência artificial também pode ser uma excelente professora. Quando encontro uma dificuldade, procuro entender sua causa e aprender com a solução, em vez de simplesmente aceitar o código gerado.
4. Testar continua sendo indispensável. O fato de a IA afirmar que uma funcionalidade está pronta não significa que ela realmente funcione como esperado.
5. Saber formular problemas é uma competência cada vez mais valiosa. Conhecer a necessidade, estabelecer regras e avaliar resultados faz diferença, independentemente da linguagem de programação utilizada.
O que o Vibe Coding tem a ver com minha atuação profissional?
Embora esses aplicativos tenham surgido de necessidades pessoais, vejo uma conexão muito clara com minha atuação em auditoria interna, análise de dados, automação e inteligência artificial.
No meu trabalho, utilizo tecnologia para identificar padrões, compreender desvios, automatizar atividades e transformar informações em resultados úteis.
No desenvolvimento desses aplicativos, apliquei essencialmente o mesmo raciocínio: identificar um problema, compreender suas causas, estruturar uma solução, testar e melhorar.
Essa abordagem também está presente em meus artigos sobre Auditoria Contínua e Data Analytics e mapeamento de padrões, desvios e causa raiz.
A grande diferença é que agora consigo experimentar ideias e desenvolver protótipos com muito mais autonomia.
Também valorizo cada vez mais o controle sobre o que foi alterado, a rastreabilidade das decisões e a preservação de versões estáveis, princípios que apresentei no artigo Git: Controle de Versões.
Não vejo a IA como substituta do conhecimento, mas como uma ferramenta para ampliar minha capacidade de aprender, experimentar e resolver problemas.
Conclusão: mais importante do que criar aplicativos é aprender a resolver problemas
Quando comecei a experimentar o Vibe Coding, meu objetivo era construir aplicativos que facilitassem minha rotina.
Acabei descobrindo algo ainda mais interessante.
Cada projeto me apresentou desafios que eu não conhecia, conceitos que precisei estudar e problemas que tive de aprender a resolver.
O GPT Codex facilitou o desenvolvimento, mas o maior ganho foi perceber como a combinação entre curiosidade, pensamento crítico, aprendizado contínuo e inteligência artificial pode transformar uma ideia em algo concreto.
Não preciso dominar previamente todas as tecnologias envolvidas para começar a experimentar. Preciso, porém, compreender o problema, fazer boas perguntas e manter uma postura crítica diante das respostas.
E é justamente isso que mais me motiva: não apenas utilizar a tecnologia, mas descobrir novas maneiras de aplicá-la para resolver desafios reais.
Continuo explorando novas ferramentas, modelos de IA e possibilidades de automação. E, a cada aplicativo, aprendo algo que levo para o próximo projeto.
E você? Que problema do seu cotidiano gostaria de resolver criando seu próprio aplicativo com inteligência artificial?
Se você também gosta de tecnologia, inovação, inteligência artificial e análise de dados, conecte-se comigo no LinkedIn. Será interessante trocar experiências e acompanhar o que estamos aprendendo.
Aproveite também para explorar outros artigos do Audit Insight, onde compartilho experiências e conteúdos sobre auditoria, automação, Data Analytics e inteligência artificial.
Até o próximo experimento!
