Guia de Sobrevivência
0 Guia de Sobrevivência
Vão Encravar. É Normal. É BOM, até.
“Não funciona! Estou a fazer alguma coisa mal?”
SIM. E está TUDO BEM. Literalmente todos nós já passámos (e continuamos a passar) por isso.
Programadores profissionais passam metade do tempo a debugar código. O erro não é sinal de incompetência—é parte integral do processo de aprendizagem.
Quando Encravarem: O Protocolo de Debug
RESPIREM. Frustração é normal, mas não ajuda.
LEIAM A MENSAGEM DE ERRO. A sério. Palavra por palavra. O R está a tentar ajudar!
Error in ../.: indica onde o problema está- Muitas vezes diz explicitamente o que está mal
IDENTIFIQUEM A LINHA PROBLEMÁTICA.
- O R normalmente indica qual linha causou o erro
- Se não indica, corram o código linha a linha até encontrar
CHECKLIST DE PROBLEMAS COMUNS:
GOOGLE IT. Copiem a mensagem de erro e pesquisem. Alguém já teve o mesmo problema!
PEÇAM AJUDA! (ver secção seguinte)
Se estiverem encravados no mesmo problema há mais de 15 minutos:
→ CHAMEM-ME!
Não vale a pena sofrer sozinhos. Debugging a dois é 10× mais rápido e vão aprender mais com a explicação do que a martelar a cabeça contra o problema.
Como Pedir Ajuda Eficazmente
Quando me chamarem (ou postarem online), facilita MUITO se:
- Mostrarem o código que estão a tentar correr
- Mostrarem a mensagem de erro completa (não digam apenas “dá erro”)
- Explicarem o que esperavam que acontecesse
- Partilharem o que já tentaram (para não sugerirmos o mesmo)
Exemplo BOM: > “Estou a tentar fazer um boxplot com ggplot(dados, aes(x = grupo, y = resposta)) + geom_boxplot() mas dá erro ‘object ’grupo’ not found’. Já verifiquei e a coluna existe no data frame. O que estou a fazer mal?”
Exemplo MENOS BOM: > “O meu gráfico não funciona.”
Trabalhar em Pares (Se Quiserem)
Pair programming é uma técnica usada profissionalmente. E funciona!
Podem escolher: - Trabalhar sozinhos: Totalmente válido! Algumas pessoas preferem. - Trabalhar em pares: Dividem tarefas, discutem abordagens, resolvem problemas juntos.
Se Trabalharem em Pares:
✅ FAÇAM: - Alternem quem está ao teclado (driver/navigator) - Expliquem o raciocínio em voz alta (“vou fazer X porque…”) - Façam perguntas um ao outro - Celebrem pequenas vitórias juntos!
❌ EVITEM: - Uma pessoa fazer tudo enquanto outra vê - Avançar sem o par perceber o que aconteceu - Assumir que o par sabe algo que vocês não explicaram
Comuniquem!
“Podes esperar um momento? Quero perceber melhor esta parte antes de avançarmos.”
OU
“Queres que te explique esta secção ou preferes ler primeiro no tutorial?”
Não há problema em ter ritmos diferentes. O importante é que ambos aprendam!
O Vosso Ritmo é Válido
Alguns participantes vão terminar exercícios em 10 minutos. Outros vão precisar de 40. Ambos estão perfeitamente bem.
- Se forem rápidos:
- Ajudem colegas (ensinar consolida a vossa aprendizagem!)
- Explorem exercícios avançados dos tutoriais
- Experimentem aplicar aos vossos próprios dados
- Personalizem gráficos até ficarem bonitos
- Se precisarem de mais tempo:
- NÃO SE COMPAREM! Cada um tem o seu background e facilidades
- Foquem-se nos exercícios obrigatórios (o resto pode ficar para depois)
- Peçam ajuda sem hesitar
- Os tutoriais ficam online—podem rever ao vosso ritmo
- Se não terminarem tudo no tempo do workshop:
- É COMPLETAMENTE NORMAL! Planeei material a mais propositadamente
- O objectivo não é terminar tudo
- O objectivo é construir bases sólidas e autonomia
- Tudo o que não derem fica acessível online para revisitarem
O objectivo NÃO é: - ❌ Completar todos os tutoriais - ❌ Fazer todos os exercícios - ❌ Memorizar todas as funções
O objectivo É: - ✅ Perder o medo do R - ✅ Construir uma base conceptual sólida - ✅ Saber onde procurar informação quando precisarem - ✅ Ficarem autónomos para continuar a aprender sozinhos - ✅ Ter um script funcional que podem adaptar aos vossos projectos
Se conseguirem estes 5 pontos, o workshop foi um sucesso retumbante! 🎉
Perguntas São Sempre Bem-Vindas
“Isto é uma pergunta parva?”
NÃO EXISTEM PERGUNTAS PARVAS.
Se têm uma dúvida, garantidamente metade da sala tem a mesma dúvida mas não se atreveu a perguntar.
Quando perguntar: - ✅ Durante o trabalho autónomo (chamem-me discretamente) - ✅ Nos checkpoints (é para isso que existem!) - ✅ Nas sínteses de fim de módulo - ✅ Durante as pausas - ✅ No final do dia - ✅ Por email depois do workshop - ✅ No RUGGED
Tipos de perguntas que adoramos: - “Não percebi o que é X” - “Porque é que fazemos Y desta forma e não daquela?” - “Isto funcionou mas não sei bem porquê…” - “Há uma forma mais fácil de fazer Z?” - “Como é que isto se aplica ao meu contexto específico?”
Seriamente. PERGUNTEM. É para isso que estou aqui!
Façam Pausas (Mesmo Que Não Sintam que Precisam)
Programação é cognitivamente esgotante. O vosso cérebro está a processar: - Sintaxe nova - Conceitos abstractos - Lógica computacional - Resolução de problemas - Gestão de frustração
Isto é MUITO. Não tentem fazer 8 horas seguidas sem parar.
Sinais de Que Precisam de Uma Pausa:
- Começam a cometer erros “parvos” que não cometiam antes
- Relêem a mesma linha de código 5 vezes sem perceber
- Sentem-se irritados com erros triviais
- Os olhos ardem
- A cabeça dói
- Estão a procrastinar (redes sociais, emails, etc.)
Durante as Pausas:
- Levantam-se e esticam-se (sério, o corpo agradece!)
- Hidratam-se (café ≠ água!)
- Descansem os olhos (olhem para longe, não para outro ecrã!)
- Conversem com colegas sobre coisas não relacionadas com R
- Saiam da sala se possível (ar fresco faz milagres!)
- NÃO continuem a trabalhar “só mais um exerciciozinho”
Experimentem: - 25 minutos de trabalho concentrado - 5 minutos de pausa (levantar, esticar, respirar) - Após 4 pomodoros: 15-30 minutos de pausa mais longa
Há apps e timers online que vos ajudam. Procurem “pomodoro timer”!
Esta técnica é usada por programadores profissionais. Não é “perder tempo”—é optimizar produtividade.
1 🆘 Troubleshooting Rápido
Problemas Comuns e Soluções
“object not found”
O que significa: O R não consegue encontrar o objecto/variável que mencionaram.
Causas mais comuns: - Typo no nome (gralha) - Case sensitivity: Dados ≠ dados ≠ DADOS - Esqueceram de correr a linha que cria o objecto - Esqueceram de carregar o pacote: library(...)
Solução: # Ver todos os objectos que existem: ls()
2 Ver estrutura dos dados:
str(nome_do_objecto)
“could not find function”
O que significa: A função que tentaram usar não existe (ou o R não a conhece).
Causas mais comuns: - Typo no nome da função - Esqueceram de carregar o pacote que contém a função
Solução: # Carregar o pacote: library(nome_do_pacote)
3 Se não têm o pacote instalado:
install.packages(“nome_do_pacote”) library(nome_do_pacote)
“unexpected X”
O que significa: O R encontrou algo inesperado na vossa sintaxe.
Causas mais comuns: - Falta fechar parênteses: mean(dados - Falta fechar aspas: `“texto - Vírgula extra ou em falta - Operador errado
Solução: - Contem parênteses: cada ( precisa de ) - Contem aspas: cada " precisa de outra " - Verifiquem vírgulas na sintaxe de funções
“+” aparece na consola em vez de “>”
O que significa: O R está à espera que completem um comando.
Causa: Esqueceram-se de fechar parênteses, aspas, ou chavetas.
Solução: - Completem a sintaxe, OU - Carreguem Esc para cancelar e recomeçarem
Gráfico não aparece / aparece em branco
Causas mais comuns: - Esqueceram + entre camadas do ggplot - Nome de variável errado no aes() - Dados têm NAs - Escala dos eixos não adequada aos dados
Solução: # Verificar dados: summary(dados)
4 Versão minimal do gráfico:
ggplot(dados, aes(x = var1, y = var2)) + geom_point()
5 Adicionar camadas gradualmente
Mensagens de Warning (vs. Error)
Warning: O código correu, mas o R avisa que algo pode estar estranho. - Podem normalmente ignorar (mas leiam!) - Às vezes indicam problemas sérios (ex: NAs removidos)
Error: O código NÃO correu. Têm de resolver. - Não podem avançar sem corrigir
6 📚 Links Rápidos de Referência
Tutoriais do Workshop
| Tutorial | Tópico | Link |
|---|---|---|
| 00 | Primeiras Palavras | 📖 |
| 01 | Gramática do R | 📖 |
| 02 | Data Frames | 📖 |
| 03 | Importação de Dados | |
| 04 | Limpeza de Dados | |
| 05 | Reformatação de Dados | |
| 06 | Descritivas Numéricas | |
| 07 | Gráficos no R | 📖 |
| 08 | Modelos Lineares | 📖 |
| 09 | Medidas Repetidas | 📖 |
Cheatsheets Essenciais
Recursos Externos Recomendados
Manuais Completos (Gratuitos!)
- R for Data Science (2nd ed) - Hadley Wickham
- Learning Statistics with R - Danielle Navarro
- Statistical Thinking for the 21st Century - Russ Poldrack
Tutoriais Especializados
- PsyTeachR - Universidade de Glasgow
- R for Psychological Science
- Modern Statistics for Modern Biology
Para Dúvidas Específicas
- Stack Overflow [r]
- RStudio Community
- Cross Validated - Para questões estatísticas
7 📧 Contactos e Apoio Pós-Workshop
Formador:
João Oliveira Santos
📧 joao.santos@ispa.pt
Website do RUGGED:
🌐 https://rggd.gitlab.io
Tutoriais NRB:
🌐 https://rggd.gitlab.io/nrb
O vosso feedback é precioso para melhorar futuras edições!
Por favor preencham o formulário de avaliação (link será partilhado no final do Dia 2).
Digam-nos: - O que correu bem - O que pode melhorar - Tópicos que gostariam de ver em workshops futuros - Sugestões de formato/estrutura
8 🎯 Checklist Final: Estou Pronto para o Workshop?
Antes do Dia 1, certifiquem-se:
Aprender R é uma maratona, não um sprint.
Ninguém sai deste workshop a dominar R completamente. E está tudo bem!
O que esperamos é que saiam: - Com menos medo do R - Com bases sólidas para continuarem a aprender - Com autonomia para procurar ajuda - Com um script funcional que podem adaptar - Com vontade de continuar a explorar!
Se conseguirmos isto, terá sido um workshop fantástico.
Estou ansioso para trabalhar convosco nos próximos dois dias!
— João