# Trilha de Engenharia de Dados

ID: data-engineer
Versão: 2026-10-12.51d51124
Versão do formato: 1
Idioma: pt-BR
Licença do catálogo: MIT

Para quem quer construir pipelines e preparar dados para análise.

Objetivo: Um pipeline incremental com testes de qualidade, agendamento e recuperação de falhas.

## Comece com programação e dados

ID da etapa: dataEngineering.comece-com-programacao-e-dados
Percurso: Obrigatório · Fundamentos e prática

Engenharia de Dados exige programação, SQL e operação de pipelines. Análise de dados, BI e estágio em dados também podem servir como etapas de entrada.

### Python para dados

ID do grupo: dataEngineering.python-para-dados

Aprenda funções, coleções, arquivos, ambientes virtuais, dependências, erros e testes. Use pandas depois de conseguir ler CSV e JSON com Python.

Objetivos essenciais: dataEngineering.python-para-dados.basics, dataEngineering.python-para-dados.practice

Modo simple: dataEngineering.python-para-dados.basics, dataEngineering.python-para-dados.practice
Modo standard: dataEngineering.python-para-dados.basics, dataEngineering.python-para-dados.practice
Modo deep: dataEngineering.python-para-dados.basics, dataEngineering.python-para-dados.practice, dataEngineering.python-para-dados.deepening

#### O básico

ID: dataEngineering.python-para-dados.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [Curso em Vídeo: Python, mundo 1 (português; conteúdo gratuito, certificado opcional pago)](https://www.cursoemvideo.com/curso/python-3-mundo-1/) | ID: resource.pythonCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Python: tutorial oficial (português)](https://docs.python.org/pt-br/3/tutorial/) | ID: resource.python | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [pandas: tutoriais introdutórios (inglês)](https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html) | ID: resource.pandas | Idioma: en | Gratuito: sim | Duração: não estimada
- [Curso em Vídeo: Python 3, mundo 1 (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLHz_AreHm4dlKP6QQCekuIPky1CiwmdI6) | ID: resource.youtubePythonCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Eduardo Mendes: Python profundo (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@Dunossauro) | ID: resource.youtubeDunossauro | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Let's Data: Python para dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@letsdataAI) | ID: resource.youtubeLetsData | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.python-para-dados.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: dataEngineering.python-para-dados.basics

Leia um CSV, valide tipos e valores faltantes e produza uma saída com um relatório de rejeições.

Referências:

- [Curso em Vídeo: Python, mundo 1 (português; conteúdo gratuito, certificado opcional pago)](https://www.cursoemvideo.com/curso/python-3-mundo-1/) | ID: resource.pythonCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Python: tutorial oficial (português)](https://docs.python.org/pt-br/3/tutorial/) | ID: resource.python | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [pandas: tutoriais introdutórios (inglês)](https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html) | ID: resource.pandas | Idioma: en | Gratuito: sim | Duração: não estimada
- [Curso em Vídeo: Python 3, mundo 1 (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLHz_AreHm4dlKP6QQCekuIPky1CiwmdI6) | ID: resource.youtubePythonCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Eduardo Mendes: Python profundo (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@Dunossauro) | ID: resource.youtubeDunossauro | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Let's Data: Python para dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@letsdataAI) | ID: resource.youtubeLetsData | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.python-para-dados.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.python-para-dados.basics, dataEngineering.python-para-dados.practice

Escolha uma decisão de Python para dados no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Curso em Vídeo: Python, mundo 1 (português; conteúdo gratuito, certificado opcional pago)](https://www.cursoemvideo.com/curso/python-3-mundo-1/) | ID: resource.pythonCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Python: tutorial oficial (português)](https://docs.python.org/pt-br/3/tutorial/) | ID: resource.python | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [pandas: tutoriais introdutórios (inglês)](https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html) | ID: resource.pandas | Idioma: en | Gratuito: sim | Duração: não estimada
- [Curso em Vídeo: Python 3, mundo 1 (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLHz_AreHm4dlKP6QQCekuIPky1CiwmdI6) | ID: resource.youtubePythonCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Eduardo Mendes: Python profundo (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@Dunossauro) | ID: resource.youtubeDunossauro | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Let's Data: Python para dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@letsdataAI) | ID: resource.youtubeLetsData | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

### Controle de Versão

ID do grupo: curriculum.controle-de-versao

Use Git desde o primeiro exercício: commits pequenos, branches, pull requests, revisão e resolução de conflitos. Não publique credenciais.

Objetivos essenciais: curriculum.controle-de-versao.basics, curriculum.controle-de-versao.practice

Modo simple: curriculum.controle-de-versao.basics, curriculum.controle-de-versao.practice
Modo standard: curriculum.controle-de-versao.basics, curriculum.controle-de-versao.practice
Modo deep: curriculum.controle-de-versao.basics, curriculum.controle-de-versao.practice, curriculum.controle-de-versao.deepening

#### O básico

ID: curriculum.controle-de-versao.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: como contribuir com projetos (português)](https://docs.github.com/pt/get-started/exploring-projects-on-github/contributing-to-a-project) | ID: resource.contribute | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Willian Justen: Git e GitHub para iniciantes (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLlAbYrWSYTiPA2iEiQ2PF_A9j__C4hi0A) | ID: resource.youtubeGitJusten | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Curso em Vídeo: Git e GitHub (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLHz_AreHm4dm7ZULPAmadvNhH6vk9oNZA) | ID: resource.youtubeGitCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: curriculum.controle-de-versao.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: curriculum.controle-de-versao.basics

Crie um repositório com README, abra um pull request e resolva um conflito em uma branch de exercício. Peça à IA que explique o diff e confira a explicação no histórico do Git.

Referências:

- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: como contribuir com projetos (português)](https://docs.github.com/pt/get-started/exploring-projects-on-github/contributing-to-a-project) | ID: resource.contribute | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Willian Justen: Git e GitHub para iniciantes (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLlAbYrWSYTiPA2iEiQ2PF_A9j__C4hi0A) | ID: resource.youtubeGitJusten | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Curso em Vídeo: Git e GitHub (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLHz_AreHm4dm7ZULPAmadvNhH6vk9oNZA) | ID: resource.youtubeGitCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: curriculum.controle-de-versao.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: curriculum.controle-de-versao.basics, curriculum.controle-de-versao.practice

Escolha uma decisão de Controle de Versão no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: como contribuir com projetos (português)](https://docs.github.com/pt/get-started/exploring-projects-on-github/contributing-to-a-project) | ID: resource.contribute | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Willian Justen: Git e GitHub para iniciantes (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLlAbYrWSYTiPA2iEiQ2PF_A9j__C4hi0A) | ID: resource.youtubeGitJusten | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Curso em Vídeo: Git e GitHub (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLHz_AreHm4dm7ZULPAmadvNhH6vk9oNZA) | ID: resource.youtubeGitCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

### Carreira em dados

ID do grupo: dataEngineering.carreira-em-dados

Entenda o que faz um engenheiro de dados, quais habilidades as vagas de entrada pedem e como projetos de dados se conectam ao trabalho real.

Objetivos essenciais: dataEngineering.carreira-em-dados.basics, dataEngineering.carreira-em-dados.practice

Modo simple: dataEngineering.carreira-em-dados.basics, dataEngineering.carreira-em-dados.practice
Modo standard: dataEngineering.carreira-em-dados.basics, dataEngineering.carreira-em-dados.practice
Modo deep: dataEngineering.carreira-em-dados.basics, dataEngineering.carreira-em-dados.practice, dataEngineering.carreira-em-dados.deepening

#### O básico

ID: dataEngineering.carreira-em-dados.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [André Sionek: carreira em engenharia de dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/AndreSionek) | ID: resource.youtubeSionekCareer | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Comunidade DS: jornada e profissões em dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@ComunidadeDS) | ID: resource.youtubeComunidadeDsCareer | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.carreira-em-dados.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: dataEngineering.carreira-em-dados.basics

Escreva o que faz um engenheiro de dados, compare três vagas de entrada e marque as habilidades que ainda faltam.

Referências:

- [André Sionek: carreira em engenharia de dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/AndreSionek) | ID: resource.youtubeSionekCareer | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Comunidade DS: jornada e profissões em dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@ComunidadeDS) | ID: resource.youtubeComunidadeDsCareer | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.carreira-em-dados.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.carreira-em-dados.basics, dataEngineering.carreira-em-dados.practice

Escolha uma decisão de Carreira em dados no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [André Sionek: carreira em engenharia de dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/AndreSionek) | ID: resource.youtubeSionekCareer | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Comunidade DS: jornada e profissões em dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@ComunidadeDS) | ID: resource.youtubeComunidadeDsCareer | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

### Seu assistente de estudos

ID do grupo: aiLearning.seu-assistente-de-estudos

Aprenda programação e uso de IA em paralelo. Escolha uma ferramenta a que já tenha acesso; os exercícios também funcionam em um chat, compartilhando trechos pequenos. Documentação gratuita não significa serviço gratuito: consulte os limites da sua conta. Você não precisa assinar nem dominar três ferramentas.

Objetivos essenciais: aiLearning.escolha-uma-ferramenta, aiLearning.pratique-tutoria

Modo simple: aiLearning.escolha-uma-ferramenta, aiLearning.pratique-tutoria
Modo standard: aiLearning.escolha-uma-ferramenta, aiLearning.pratique-tutoria
Modo deep: aiLearning.escolha-uma-ferramenta, aiLearning.pratique-tutoria, aiLearning.seu-assistente-de-estudos.deepening

IA: Desenvolvimento com IA

#### Escolha uma ferramenta

ID: aiLearning.escolha-uma-ferramenta
Tipo: concept
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: nenhum

Experimente uma opção neste momento. Para concluir esta etapa, basta abrir um exercício em uma ferramenta e localizar como conversar, fornecer contexto e revisar uma mudança.

Cursor: abra um projeto no editor, converse sobre um arquivo e forneça trechos ou arquivos como contexto. Peça uma alteração pequena, examine o diff e execute o exemplo.

Claude: use o chat com trechos fornecidos por você, ou Claude Code para trabalhar no projeto por terminal ou integrações de editor, se já tiver acesso. Siga o quickstart e peça uma explicação do repositório antes da primeira mudança.

Codex: consulte o quickstart e escolha a superfície disponível para sua conta, como aplicativo, editor ou terminal. Peça que explique o projeto e como executar o exercício; depois experimente uma mudança pequena.

Se ainda não tiver acesso a uma IA, siga os exercícios de programação e retome estas práticas quando uma opção estiver disponível.

Referências:

- [Cursor: uso do agente (inglês; documentação gratuita)](https://cursor.com/docs/agent/overview) | ID: resource.cursor | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: primeiros passos (inglês; documentação gratuita)](https://code.claude.com/docs/en/quickstart) | ID: resource.claude | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: primeiros passos com Codex (inglês; documentação gratuita)](https://developers.openai.com/codex/quickstart/) | ID: resource.codex | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique tutoria

ID: aiLearning.pratique-tutoria
Tipo: practice
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: aiLearning.escolha-uma-ferramenta

Faça uma tentativa, peça uma explicação ou pista e confira o resultado executando o exemplo. Solicite perguntas e exercícios de revisão. Quando a IA gerar código, leia, altere e teste esse código. Conclua esta etapa após responder uma pergunta sobre o exemplo e resolver uma pequena variação.

Prompt de estudo:

```text
Estou aprendendo [conceito] na trilha [nome].
Meu objetivo é [resultado pequeno e observável].
Já tentei [tentativa] e observei [resultado ou erro].
Use este trecho como contexto: [código ou exemplo sem dados privados].
Explique a ideia com um exemplo curto e faça uma pergunta para conferir minha compreensão.
Depois proponha uma variação do exercício. Aguarde minha tentativa antes de dar feedback.
```

Referências:

- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: aiLearning.seu-assistente-de-estudos.deepening
Tipo: challenge
Percurso: Aprofundamento opcional · Desenvolvimento com IA
Pré-requisitos: aiLearning.escolha-uma-ferramenta, aiLearning.pratique-tutoria

Escolha uma decisão de Seu assistente de estudos no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Cursor: uso do agente (inglês; documentação gratuita)](https://cursor.com/docs/agent/overview) | ID: resource.cursor | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: primeiros passos (inglês; documentação gratuita)](https://code.claude.com/docs/en/quickstart) | ID: resource.claude | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: primeiros passos com Codex (inglês; documentação gratuita)](https://developers.openai.com/codex/quickstart/) | ID: resource.codex | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

## SQL antes de ferramentas distribuídas

ID da etapa: dataEngineering.sql-antes-de-ferramentas-distribuidas
Percurso: Obrigatório · Fundamentos e prática



### SQL e PostgreSQL

ID do grupo: curriculum.sql-e-postgresql

Aprenda SELECT, filtros, JOIN, agregações, CTEs, chaves, constraints, transações, índices e migrações. Comece com um banco relacional.

Objetivos essenciais: curriculum.sql-e-postgresql.basics, curriculum.sql-e-postgresql.practice

Modo simple: curriculum.sql-e-postgresql.basics, curriculum.sql-e-postgresql.practice
Modo standard: curriculum.sql-e-postgresql.basics, curriculum.sql-e-postgresql.practice
Modo deep: curriculum.sql-e-postgresql.basics, curriculum.sql-e-postgresql.practice, curriculum.sql-e-postgresql.deepening

#### O básico

ID: curriculum.sql-e-postgresql.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [Microsoft Learn: introdução a Transact-SQL (português)](https://learn.microsoft.com/pt-br/training/paths/get-started-querying-with-transact-sql/) | ID: resource.sql | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: curriculum.sql-e-postgresql.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: curriculum.sql-e-postgresql.basics

Modele usuários e pedidos, consulte com JOIN e execute uma transação. Peça à IA uma consulta e compare o resultado com uma amostra calculada manualmente. Compare um plano de consulta antes e depois de um índice.

Referências:

- [Microsoft Learn: introdução a Transact-SQL (português)](https://learn.microsoft.com/pt-br/training/paths/get-started-querying-with-transact-sql/) | ID: resource.sql | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: curriculum.sql-e-postgresql.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: curriculum.sql-e-postgresql.basics, curriculum.sql-e-postgresql.practice

Compare o plano de uma consulta com e sem índice. Demonstre uma transação que falha, verifique o rollback e justifique as constraints escolhidas.

Referências:

- [Microsoft Learn: introdução a Transact-SQL (português)](https://learn.microsoft.com/pt-br/training/paths/get-started-querying-with-transact-sql/) | ID: resource.sql | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada

### SQL analítico

ID do grupo: dataEngineering.sql-analitico

Pratique agregações, CTEs, window functions, deduplicação e análise de plano. Diferencie granularidade e chaves ao combinar tabelas.

Objetivos essenciais: dataEngineering.sql-analitico.basics, dataEngineering.sql-analitico.practice

Modo simple: dataEngineering.sql-analitico.basics, dataEngineering.sql-analitico.practice
Modo standard: dataEngineering.sql-analitico.basics, dataEngineering.sql-analitico.practice
Modo deep: dataEngineering.sql-analitico.basics, dataEngineering.sql-analitico.practice, dataEngineering.sql-analitico.deepening

#### O básico

ID: dataEngineering.sql-analitico.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada
- [Microsoft Learn: introdução a Transact-SQL (português)](https://learn.microsoft.com/pt-br/training/paths/get-started-querying-with-transact-sql/) | ID: resource.sql | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Curso em Vídeo: bancos de dados e MySQL (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLHz_AreHm4dkBs-795Dsgvau_ekxg8g1r) | ID: resource.youtubeMysqlCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Hashtag Treinamentos: SQL para análise de dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/HashtagTreinamentos) | ID: resource.youtubeHashtagSql | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.sql-analitico.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: dataEngineering.sql-analitico.basics

Calcule totais por período e ranking, evitando dupla contagem em JOINs. Explique a granularidade do resultado.

Referências:

- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada
- [Microsoft Learn: introdução a Transact-SQL (português)](https://learn.microsoft.com/pt-br/training/paths/get-started-querying-with-transact-sql/) | ID: resource.sql | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Curso em Vídeo: bancos de dados e MySQL (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLHz_AreHm4dkBs-795Dsgvau_ekxg8g1r) | ID: resource.youtubeMysqlCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Hashtag Treinamentos: SQL para análise de dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/HashtagTreinamentos) | ID: resource.youtubeHashtagSql | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.sql-analitico.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.sql-analitico.basics, dataEngineering.sql-analitico.practice

Escolha uma decisão de SQL analítico no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada
- [Microsoft Learn: introdução a Transact-SQL (português)](https://learn.microsoft.com/pt-br/training/paths/get-started-querying-with-transact-sql/) | ID: resource.sql | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Curso em Vídeo: bancos de dados e MySQL (português; playlist gratuita no YouTube)](https://www.youtube.com/playlist?list=PLHz_AreHm4dkBs-795Dsgvau_ekxg8g1r) | ID: resource.youtubeMysqlCourse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Hashtag Treinamentos: SQL para análise de dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/HashtagTreinamentos) | ID: resource.youtubeHashtagSql | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

## IA: prompting e contexto

ID da etapa: aiLearning.ia-prompting-e-contexto
Percurso: Obrigatório · Desenvolvimento com IA

Depois dos primeiros fundamentos, pratique transformar uma dúvida em uma tarefa verificável. Use uma ferramenta por vez.

### Prompts para aprender e construir

ID do grupo: aiLearning.prompts-para-aprender-e-construir

Expresse objetivo, contexto, limites e como conferir o resultado. Mostre sua tentativa e exemplos de entrada/saída. Peça uma resposta no nível de quem está aprendendo e faça perguntas quando algo não estiver claro. Ajuste o prompt a partir do resultado, sem decorar fórmulas.

Objetivos essenciais: aiLearning.prompts-para-aprender-e-construir.basics, aiLearning.prompts-para-aprender-e-construir.practice

Modo simple: aiLearning.prompts-para-aprender-e-construir.basics, aiLearning.prompts-para-aprender-e-construir.practice
Modo standard: aiLearning.prompts-para-aprender-e-construir.basics, aiLearning.prompts-para-aprender-e-construir.practice
Modo deep: aiLearning.prompts-para-aprender-e-construir.basics, aiLearning.prompts-para-aprender-e-construir.practice, aiLearning.prompts-para-aprender-e-construir.deepening

IA: Desenvolvimento com IA

#### O básico

ID: aiLearning.prompts-para-aprender-e-construir.basics
Tipo: concept
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: nenhum



Referências:

- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: aiLearning.prompts-para-aprender-e-construir.practice
Tipo: practice
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: aiLearning.prompts-para-aprender-e-construir.basics

Compare um pedido vago com um pedido que inclui sua tentativa e critérios. Execute os exemplos e registre qual informação melhorou a resposta.

Prompt de estudo:

```text
Estou aprendendo [conceito] na trilha [nome].
Meu objetivo é [resultado pequeno e observável].
Já tentei [tentativa] e observei [resultado ou erro].
Use este trecho como contexto: [código ou exemplo sem dados privados].
Explique a ideia com um exemplo curto e faça uma pergunta para conferir minha compreensão.
Depois proponha uma variação do exercício. Aguarde minha tentativa antes de dar feedback.
```

Referências:

- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: aiLearning.prompts-para-aprender-e-construir.deepening
Tipo: challenge
Percurso: Aprofundamento opcional · Desenvolvimento com IA
Pré-requisitos: aiLearning.prompts-para-aprender-e-construir.basics, aiLearning.prompts-para-aprender-e-construir.practice

Escolha uma decisão de Prompts para aprender e construir no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada

### Contexto útil e dados protegidos

ID do grupo: aiLearning.contexto-util-e-dados-protegidos

Forneça os arquivos relevantes, o erro completo sanitizado, a versão usada e o comportamento esperado. Diferencie conversar sobre código de permitir edição e execução. Use dados de laboratório; não compartilhe senhas, tokens ou dados pessoais.

Objetivos essenciais: aiLearning.contexto-util-e-dados-protegidos.basics, aiLearning.contexto-util-e-dados-protegidos.practice

Modo simple: aiLearning.contexto-util-e-dados-protegidos.basics, aiLearning.contexto-util-e-dados-protegidos.practice
Modo standard: aiLearning.contexto-util-e-dados-protegidos.basics, aiLearning.contexto-util-e-dados-protegidos.practice
Modo deep: aiLearning.contexto-util-e-dados-protegidos.basics, aiLearning.contexto-util-e-dados-protegidos.practice, aiLearning.contexto-util-e-dados-protegidos.deepening

IA: Desenvolvimento com IA

#### O básico

ID: aiLearning.contexto-util-e-dados-protegidos.basics
Tipo: concept
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: nenhum



Referências:

- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: aiLearning.contexto-util-e-dados-protegidos.practice
Tipo: practice
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: aiLearning.contexto-util-e-dados-protegidos.basics

Peça ajuda para a mesma dúvida com e sem o trecho relevante. Identifique uma suposição incorreta e corrija o contexto antes de aceitar a solução.

Referências:

- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: aiLearning.contexto-util-e-dados-protegidos.deepening
Tipo: challenge
Percurso: Aprofundamento opcional · Desenvolvimento com IA
Pré-requisitos: aiLearning.contexto-util-e-dados-protegidos.basics, aiLearning.contexto-util-e-dados-protegidos.practice

Escolha uma decisão de Contexto útil e dados protegidos no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

## Projeto: Análise reproduzível

ID da etapa: dataEngineering.analise-reproduzivel.stage
Percurso: Obrigatório · Projeto: entrega prática

Construa antes de avançar. Registre as decisões e peça uma revisão.

### Análise reproduzível

ID do grupo: dataEngineering.analise-reproduzivel

Importe um conjunto de dados públicos em PostgreSQL ou DuckDB e responda perguntas de negócio com SQL.

Objetivos essenciais: dataEngineering.analise-reproduzivel.criteria, dataEngineering.analise-reproduzivel.ai-practice, dataEngineering.analise-reproduzivel.verification

Modo simple: dataEngineering.analise-reproduzivel.criteria, dataEngineering.analise-reproduzivel.ai-practice, dataEngineering.analise-reproduzivel.verification
Modo standard: dataEngineering.analise-reproduzivel.criteria, dataEngineering.analise-reproduzivel.ai-practice, dataEngineering.analise-reproduzivel.verification
Modo deep: dataEngineering.analise-reproduzivel.criteria, dataEngineering.analise-reproduzivel.ai-practice, dataEngineering.analise-reproduzivel.verification, dataEngineering.analise-reproduzivel.deepening

IA: IA aplicada

#### Critérios de conclusão

ID: dataEngineering.analise-reproduzivel.criteria
Tipo: criteria
Percurso: Obrigatório
Pré-requisitos: nenhum

Registre origem e licença, valide dados, explique granularidade e entregue consultas reproduzíveis com resultados e limitações.

Referências:

- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada
- [pandas: tutoriais introdutórios (inglês)](https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html) | ID: resource.pandas | Idioma: en | Gratuito: sim | Duração: não estimada

#### Prática de IA neste projeto

ID: dataEngineering.analise-reproduzivel.ai-practice
Tipo: practice
Percurso: Obrigatório · IA aplicada
Pré-requisitos: dataEngineering.analise-reproduzivel.criteria

Planeje e explique o primeiro recorte antes de implementar. Adapte o prompt ao que você já construiu nesta etapa. Insira um registro duplicado ou nulo e demonstre como o teste detecta o problema.

Prompt de estudo:

```text
Projeto: Análise reproduzível.
Objetivo: revisar uma consulta ou etapa do pipeline e procurar dupla contagem, nulos ou duplicação após reexecução.
Contexto: [schema, granularidade esperada, consulta ou código e uma pequena amostra pública ou sintética].
Nesta etapa: Planeje e explique o primeiro recorte antes de implementar.
Limites: apenas este projeto de laboratório; use as ferramentas já escolhidas, dados públicos ou sintéticos e não exponha segredos.
Critérios: o resultado é comparado com uma amostra calculada manualmente; cargas repetidas não duplicam dados quando aplicável.
Mostre as hipóteses e como verificá-las. Informe o que foi executado e o que ainda falta conferir.
```

Referências:

- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada

#### Registre sua verificação

ID: dataEngineering.analise-reproduzivel.verification
Tipo: practice
Percurso: Obrigatório · IA aplicada
Pré-requisitos: dataEngineering.analise-reproduzivel.criteria

Registre um prompt sanitizado, uma sugestão aceita ou corrigida, a verificação executada e seu resultado. Explique a mudança com suas palavras. Conclua o projeto após demonstrar os critérios, mesmo quando parte do código vier de IA.

Referências:

- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.analise-reproduzivel.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.analise-reproduzivel.criteria, dataEngineering.analise-reproduzivel.ai-practice, dataEngineering.analise-reproduzivel.verification

Escolha uma decisão de Análise reproduzível no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada
- [pandas: tutoriais introdutórios (inglês)](https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html) | ID: resource.pandas | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

## Modelagem e armazenamento

ID da etapa: dataEngineering.modelagem-e-armazenamento
Percurso: Obrigatório · Fundamentos e prática



### Modelagem analítica e formatos

ID do grupo: dataEngineering.modelagem-analitica-e-formatos

Entenda tabelas fato/dimensão, esquema estrela, granularidade, histórico e particionamento. Compare CSV, JSON e Parquet; diferencie OLTP de OLAP.

Objetivos essenciais: dataEngineering.modelagem-analitica-e-formatos.basics, dataEngineering.modelagem-analitica-e-formatos.practice

Modo simple: dataEngineering.modelagem-analitica-e-formatos.basics, dataEngineering.modelagem-analitica-e-formatos.practice
Modo standard: dataEngineering.modelagem-analitica-e-formatos.basics, dataEngineering.modelagem-analitica-e-formatos.practice
Modo deep: dataEngineering.modelagem-analitica-e-formatos.basics, dataEngineering.modelagem-analitica-e-formatos.practice, dataEngineering.modelagem-analitica-e-formatos.deepening

#### O básico

ID: dataEngineering.modelagem-analitica-e-formatos.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada
- [Comunidade DS: data warehouse e data lake (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@ComunidadeDS) | ID: resource.youtubeComunidadeDsWarehouse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Data Hackers: arquitetura de dados modernas (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/DataHackers) | ID: resource.youtubeDataHackers | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.modelagem-analitica-e-formatos.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: dataEngineering.modelagem-analitica-e-formatos.basics

Modele vendas com fato e dimensões e compare tamanho e leitura do mesmo conjunto em CSV e Parquet.

Referências:

- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada
- [Comunidade DS: data warehouse e data lake (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@ComunidadeDS) | ID: resource.youtubeComunidadeDsWarehouse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Data Hackers: arquitetura de dados modernas (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/DataHackers) | ID: resource.youtubeDataHackers | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.modelagem-analitica-e-formatos.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.modelagem-analitica-e-formatos.basics, dataEngineering.modelagem-analitica-e-formatos.practice

Escolha uma decisão de Modelagem analítica e formatos no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada
- [Comunidade DS: data warehouse e data lake (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@ComunidadeDS) | ID: resource.youtubeComunidadeDsWarehouse | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Data Hackers: arquitetura de dados modernas (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/DataHackers) | ID: resource.youtubeDataHackers | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

## Ingestão e transformação

ID da etapa: dataEngineering.ingestao-e-transformacao
Percurso: Obrigatório · Fundamentos e prática



### Pipelines batch

ID do grupo: dataEngineering.pipelines-batch

Extraia arquivos ou APIs, valide esquema e separe dados brutos de transformados. Trate paginação, limites, carga incremental e idempotência.

Objetivos essenciais: dataEngineering.pipelines-batch.basics, dataEngineering.pipelines-batch.practice

Modo simple: dataEngineering.pipelines-batch.basics, dataEngineering.pipelines-batch.practice
Modo standard: dataEngineering.pipelines-batch.basics, dataEngineering.pipelines-batch.practice
Modo deep: dataEngineering.pipelines-batch.basics, dataEngineering.pipelines-batch.practice, dataEngineering.pipelines-batch.deepening

#### O básico

ID: dataEngineering.pipelines-batch.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [Python: tutorial oficial (português)](https://docs.python.org/pt-br/3/tutorial/) | ID: resource.python | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [pandas: tutoriais introdutórios (inglês)](https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html) | ID: resource.pandas | Idioma: en | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.pipelines-batch.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: dataEngineering.pipelines-batch.basics

Execute a mesma carga duas vezes sem duplicar registros e reprocesse um período com falha.

Referências:

- [Python: tutorial oficial (português)](https://docs.python.org/pt-br/3/tutorial/) | ID: resource.python | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [pandas: tutoriais introdutórios (inglês)](https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html) | ID: resource.pandas | Idioma: en | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.pipelines-batch.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.pipelines-batch.basics, dataEngineering.pipelines-batch.practice

Escolha uma decisão de Pipelines batch no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Python: tutorial oficial (português)](https://docs.python.org/pt-br/3/tutorial/) | ID: resource.python | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [pandas: tutoriais introdutórios (inglês)](https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html) | ID: resource.pandas | Idioma: en | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada

### Transformações com dbt

ID do grupo: dataEngineering.transformacoes-com-dbt

Versione transformações SQL, dependências, testes e documentação. Comece com um banco local e uma ferramenta por vez; a documentação não exige contratar uma plataforma.

Objetivos essenciais: dataEngineering.transformacoes-com-dbt.basics, dataEngineering.transformacoes-com-dbt.practice

Modo simple: dataEngineering.transformacoes-com-dbt.basics, dataEngineering.transformacoes-com-dbt.practice
Modo standard: dataEngineering.transformacoes-com-dbt.basics, dataEngineering.transformacoes-com-dbt.practice
Modo deep: dataEngineering.transformacoes-com-dbt.basics, dataEngineering.transformacoes-com-dbt.practice, dataEngineering.transformacoes-com-dbt.deepening

#### O básico

ID: dataEngineering.transformacoes-com-dbt.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.transformacoes-com-dbt.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: dataEngineering.transformacoes-com-dbt.basics

Crie modelos staging e analíticos, teste unicidade e relacionamentos e documente a linhagem.

Referências:

- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.transformacoes-com-dbt.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.transformacoes-com-dbt.basics, dataEngineering.transformacoes-com-dbt.practice

Escolha uma decisão de Transformações com dbt no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [PostgreSQL: tutorial de SQL (inglês)](https://www.postgresql.org/docs/current/tutorial.html) | ID: resource.postgres | Idioma: en | Gratuito: sim | Duração: não estimada

## IA: programação em parceria

ID da etapa: aiLearning.ia-programacao-em-parceria
Percurso: Obrigatório · Desenvolvimento com IA

Use o primeiro projeto como contexto. Alterne pequenas implementações, leitura de código, depuração e testes.

### Planejar, implementar e revisar

ID do grupo: aiLearning.planejar-implementar-e-revisar

Defina um recorte pequeno e peça um plano. Decida o que implementar você e o que delegar. Revise cada diff, rode a aplicação e confira o comportamento antes de seguir para outra tarefa. A IA pode gerar código, testes e documentação, mas a evidência precisa ser executada.

Objetivos essenciais: aiLearning.planejar-implementar-e-revisar.basics, aiLearning.planejar-implementar-e-revisar.practice

Modo simple: aiLearning.planejar-implementar-e-revisar.basics, aiLearning.planejar-implementar-e-revisar.practice
Modo standard: aiLearning.planejar-implementar-e-revisar.basics, aiLearning.planejar-implementar-e-revisar.practice
Modo deep: aiLearning.planejar-implementar-e-revisar.basics, aiLearning.planejar-implementar-e-revisar.practice, aiLearning.planejar-implementar-e-revisar.deepening

IA: Desenvolvimento com IA

#### O básico

ID: aiLearning.planejar-implementar-e-revisar.basics
Tipo: concept
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: nenhum



Referências:

- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: uso do agente (inglês; documentação gratuita)](https://cursor.com/docs/agent/overview) | ID: resource.cursor | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: aiLearning.planejar-implementar-e-revisar.practice
Tipo: practice
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: aiLearning.planejar-implementar-e-revisar.basics

Implemente uma pequena mudança em parceria. Explique o diff, rejeite ou ajuste uma sugestão e acrescente um caso de teste que não veio da mesma proposta.

Prompt de estudo:

```text
Quero implementar [mudança pequena] neste projeto.
Contexto: [arquivos relevantes, comportamento atual e versão].
Resultado esperado: [exemplo de entrada e saída].
Limites: [arquivos que podem mudar e requisitos que devem ser preservados].
Primeiro proponha um plano curto e a verificação. Depois trabalharemos uma etapa por vez.
Ao implementar, mostre o diff, explique as decisões e informe os comandos executados e seus resultados.
```

Referências:

- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: uso do agente (inglês; documentação gratuita)](https://cursor.com/docs/agent/overview) | ID: resource.cursor | Idioma: en | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: aiLearning.planejar-implementar-e-revisar.deepening
Tipo: challenge
Percurso: Aprofundamento opcional · Desenvolvimento com IA
Pré-requisitos: aiLearning.planejar-implementar-e-revisar.basics, aiLearning.planejar-implementar-e-revisar.practice

Escolha uma decisão de Planejar, implementar e revisar no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: uso do agente (inglês; documentação gratuita)](https://cursor.com/docs/agent/overview) | ID: resource.cursor | Idioma: en | Gratuito: sim | Duração: não estimada

### Depuração com evidências

ID do grupo: aiLearning.depuracao-com-evidencias

Reproduza o problema e registre esperado versus observado. Peça hipóteses e uma forma de distinguir entre elas antes de tentar correções. Não confunda uma explicação plausível com uma causa confirmada.

Objetivos essenciais: aiLearning.depuracao-com-evidencias.basics, aiLearning.depuracao-com-evidencias.practice

Modo simple: aiLearning.depuracao-com-evidencias.basics, aiLearning.depuracao-com-evidencias.practice
Modo standard: aiLearning.depuracao-com-evidencias.basics, aiLearning.depuracao-com-evidencias.practice
Modo deep: aiLearning.depuracao-com-evidencias.basics, aiLearning.depuracao-com-evidencias.practice, aiLearning.depuracao-com-evidencias.deepening

IA: Desenvolvimento com IA

#### O básico

ID: aiLearning.depuracao-com-evidencias.basics
Tipo: concept
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: nenhum



Referências:

- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: aiLearning.depuracao-com-evidencias.practice
Tipo: practice
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: aiLearning.depuracao-com-evidencias.basics

Introduza um bug no laboratório, confirme uma hipótese por log, breakpoint ou teste e verifique uma correção mínima.

Prompt de estudo:

```text
Problema reproduzível: [passos].
Esperado: [resultado]. Observado: [resultado ou erro sanitizado].
Contexto: [trecho, configuração e versões relevantes].
Liste até três hipóteses e uma verificação para distinguir cada uma.
Primeiro vamos confirmar a causa. Depois proponha a menor correção e um teste de regressão.
```

Referências:

- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: aiLearning.depuracao-com-evidencias.deepening
Tipo: challenge
Percurso: Aprofundamento opcional · Desenvolvimento com IA
Pré-requisitos: aiLearning.depuracao-com-evidencias.basics, aiLearning.depuracao-com-evidencias.practice

Escolha uma decisão de Depuração com evidências no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada

## Projeto: Pipeline local de dados

ID da etapa: dataEngineering.pipeline-local-de-dados.stage
Percurso: Obrigatório · Projeto: entrega prática

Construa antes de avançar. Registre as decisões e peça uma revisão.

### Pipeline local de dados

ID do grupo: dataEngineering.pipeline-local-de-dados

Construa uma carga batch de dados públicos com camadas bruta, tratada e analítica.

Objetivos essenciais: dataEngineering.pipeline-local-de-dados.criteria, dataEngineering.pipeline-local-de-dados.ai-practice, dataEngineering.pipeline-local-de-dados.verification

Modo simple: dataEngineering.pipeline-local-de-dados.criteria, dataEngineering.pipeline-local-de-dados.ai-practice, dataEngineering.pipeline-local-de-dados.verification
Modo standard: dataEngineering.pipeline-local-de-dados.criteria, dataEngineering.pipeline-local-de-dados.ai-practice, dataEngineering.pipeline-local-de-dados.verification
Modo deep: dataEngineering.pipeline-local-de-dados.criteria, dataEngineering.pipeline-local-de-dados.ai-practice, dataEngineering.pipeline-local-de-dados.verification, dataEngineering.pipeline-local-de-dados.deepening

IA: IA aplicada

#### Critérios de conclusão

ID: dataEngineering.pipeline-local-de-dados.criteria
Tipo: criteria
Percurso: Obrigatório
Pré-requisitos: nenhum

A execução é reproduzível e idempotente, tem testes de qualidade e produz uma tabela para consumo. Documente como corrigir uma carga inválida.

Referências:

- [Python: tutorial oficial (português)](https://docs.python.org/pt-br/3/tutorial/) | ID: resource.python | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada
- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada

#### Prática de IA neste projeto

ID: dataEngineering.pipeline-local-de-dados.ai-practice
Tipo: practice
Percurso: Obrigatório · IA aplicada
Pré-requisitos: dataEngineering.pipeline-local-de-dados.criteria

Implemente em parceria uma etapa pequena e compare com sua própria solução. Adapte o prompt ao que você já construiu nesta etapa. Insira um registro duplicado ou nulo e demonstre como o teste detecta o problema.

Prompt de estudo:

```text
Projeto: Pipeline local de dados.
Objetivo: revisar uma consulta ou etapa do pipeline e procurar dupla contagem, nulos ou duplicação após reexecução.
Contexto: [schema, granularidade esperada, consulta ou código e uma pequena amostra pública ou sintética].
Nesta etapa: Implemente em parceria uma etapa pequena e compare com sua própria solução.
Limites: apenas este projeto de laboratório; use as ferramentas já escolhidas, dados públicos ou sintéticos e não exponha segredos.
Critérios: o resultado é comparado com uma amostra calculada manualmente; cargas repetidas não duplicam dados quando aplicável.
Mostre as hipóteses e como verificá-las. Informe o que foi executado e o que ainda falta conferir.
```

Referências:

- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada

#### Registre sua verificação

ID: dataEngineering.pipeline-local-de-dados.verification
Tipo: practice
Percurso: Obrigatório · IA aplicada
Pré-requisitos: dataEngineering.pipeline-local-de-dados.criteria

Registre um prompt sanitizado, uma sugestão aceita ou corrigida, a verificação executada e seu resultado. Explique a mudança com suas palavras. Conclua o projeto após demonstrar os critérios, mesmo quando parte do código vier de IA.

Referências:

- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.pipeline-local-de-dados.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.pipeline-local-de-dados.criteria, dataEngineering.pipeline-local-de-dados.ai-practice, dataEngineering.pipeline-local-de-dados.verification

Escolha uma decisão de Pipeline local de dados no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Python: tutorial oficial (português)](https://docs.python.org/pt-br/3/tutorial/) | ID: resource.python | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [DuckDB: introdução (inglês)](https://duckdb.org/docs/stable/) | ID: resource.duckdb | Idioma: en | Gratuito: sim | Duração: não estimada
- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

## Orquestração e confiabilidade

ID da etapa: dataEngineering.orquestracao-e-confiabilidade
Percurso: Obrigatório · Fundamentos e prática



### Orquestração com Airflow

ID do grupo: dataEngineering.orquestracao-com-airflow

Aprenda tarefas, dependências, agendamento, retries, backfill e logs. Use Airflow ou uma alternativa depois de ter um pipeline que funciona sem o orquestrador.

Objetivos essenciais: dataEngineering.orquestracao-com-airflow.basics, dataEngineering.orquestracao-com-airflow.practice

Modo simple: dataEngineering.orquestracao-com-airflow.basics, dataEngineering.orquestracao-com-airflow.practice
Modo standard: dataEngineering.orquestracao-com-airflow.basics, dataEngineering.orquestracao-com-airflow.practice
Modo deep: dataEngineering.orquestracao-com-airflow.basics, dataEngineering.orquestracao-com-airflow.practice, dataEngineering.orquestracao-com-airflow.deepening

#### O básico

ID: dataEngineering.orquestracao-com-airflow.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [Apache Airflow: tutoriais de orquestração (inglês)](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/index.html) | ID: resource.airflow | Idioma: en | Gratuito: sim | Duração: não estimada
- [André Sionek: Apache Airflow (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/AndreSionek) | ID: resource.youtubeSionekAirflow | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.orquestracao-com-airflow.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: dataEngineering.orquestracao-com-airflow.basics

Agende o pipeline, simule uma falha e recupere apenas a etapa necessária; execute um backfill sem duplicar dados.

Referências:

- [Apache Airflow: tutoriais de orquestração (inglês)](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/index.html) | ID: resource.airflow | Idioma: en | Gratuito: sim | Duração: não estimada
- [André Sionek: Apache Airflow (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/AndreSionek) | ID: resource.youtubeSionekAirflow | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.orquestracao-com-airflow.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.orquestracao-com-airflow.basics, dataEngineering.orquestracao-com-airflow.practice

Escolha uma decisão de Orquestração com Airflow no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Apache Airflow: tutoriais de orquestração (inglês)](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/index.html) | ID: resource.airflow | Idioma: en | Gratuito: sim | Duração: não estimada
- [André Sionek: Apache Airflow (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/AndreSionek) | ID: resource.youtubeSionekAirflow | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

### Qualidade e governança

ID do grupo: dataEngineering.qualidade-e-governanca

Defina contratos, testes de completude e atualidade, linhagem, controle de acesso e retenção. Use dados públicos ou sintéticos; reduza a exposição de dados pessoais.

Objetivos essenciais: dataEngineering.qualidade-e-governanca.basics, dataEngineering.qualidade-e-governanca.practice

Modo simple: dataEngineering.qualidade-e-governanca.basics, dataEngineering.qualidade-e-governanca.practice
Modo standard: dataEngineering.qualidade-e-governanca.basics, dataEngineering.qualidade-e-governanca.practice
Modo deep: dataEngineering.qualidade-e-governanca.basics, dataEngineering.qualidade-e-governanca.practice, dataEngineering.qualidade-e-governanca.deepening

#### O básico

ID: dataEngineering.qualidade-e-governanca.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenTelemetry: conceitos de observabilidade (português)](https://opentelemetry.io/pt/docs/concepts/observability-primer/) | ID: resource.otel | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [OWASP: guia de segurança de aplicações (inglês)](https://cheatsheetseries.owasp.org/) | ID: resource.security | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.qualidade-e-governanca.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: dataEngineering.qualidade-e-governanca.basics

Bloqueie uma carga com esquema inválido, alerte sobre atraso e documente acesso e retenção das tabelas.

Referências:

- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenTelemetry: conceitos de observabilidade (português)](https://opentelemetry.io/pt/docs/concepts/observability-primer/) | ID: resource.otel | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [OWASP: guia de segurança de aplicações (inglês)](https://cheatsheetseries.owasp.org/) | ID: resource.security | Idioma: en | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.qualidade-e-governanca.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.qualidade-e-governanca.basics, dataEngineering.qualidade-e-governanca.practice

Escolha uma decisão de Qualidade e governança no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenTelemetry: conceitos de observabilidade (português)](https://opentelemetry.io/pt/docs/concepts/observability-primer/) | ID: resource.otel | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [OWASP: guia de segurança de aplicações (inglês)](https://cheatsheetseries.owasp.org/) | ID: resource.security | Idioma: en | Gratuito: sim | Duração: não estimada

## Entrega e armazenamento em nuvem

ID da etapa: dataEngineering.entrega-e-armazenamento-em-nuvem
Percurso: Obrigatório · Fundamentos e prática

Conceitos de nuvem são úteis, mas o portfólio pode rodar localmente. Serviços e warehouses podem ter custo.

### Containers, CI e nuvem

ID do grupo: dataEngineering.containers-ci-e-nuvem

Empacote o pipeline, rode testes em CI e entenda object storage, IAM, custos e warehouse. Escolha um provedor conforme o contexto.

Objetivos essenciais: dataEngineering.containers-ci-e-nuvem.basics, dataEngineering.containers-ci-e-nuvem.practice

Modo simple: dataEngineering.containers-ci-e-nuvem.basics, dataEngineering.containers-ci-e-nuvem.practice
Modo standard: dataEngineering.containers-ci-e-nuvem.basics, dataEngineering.containers-ci-e-nuvem.practice
Modo deep: dataEngineering.containers-ci-e-nuvem.basics, dataEngineering.containers-ci-e-nuvem.practice, dataEngineering.containers-ci-e-nuvem.deepening

#### O básico

ID: dataEngineering.containers-ci-e-nuvem.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [Docker Compose: primeiros passos (inglês)](https://docs.docker.com/compose/gettingstarted/) | ID: resource.compose | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub Actions: integração contínua (português)](https://docs.github.com/pt/actions/get-started/continuous-integration) | ID: resource.actions | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Microsoft Learn: conceitos de nuvem (português; laboratório local recomendado)](https://learn.microsoft.com/pt-br/training/paths/microsoft-azure-fundamentals-describe-cloud-concepts/) | ID: resource.cloud | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Comunidade DS: cloud AWS para dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@ComunidadeDS) | ID: resource.youtubeComunidadeDsCloud | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [LINUXtips: certificações de nuvem e Azure (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/linuxtips) | ID: resource.youtubeLinuxtipsAzure | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.containers-ci-e-nuvem.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: dataEngineering.containers-ci-e-nuvem.basics

Reproduza o ambiente local por Compose e faça um teste de qualidade falhar na CI. Estime custos antes de criar recursos externos.

Referências:

- [Docker Compose: primeiros passos (inglês)](https://docs.docker.com/compose/gettingstarted/) | ID: resource.compose | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub Actions: integração contínua (português)](https://docs.github.com/pt/actions/get-started/continuous-integration) | ID: resource.actions | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Microsoft Learn: conceitos de nuvem (português; laboratório local recomendado)](https://learn.microsoft.com/pt-br/training/paths/microsoft-azure-fundamentals-describe-cloud-concepts/) | ID: resource.cloud | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Comunidade DS: cloud AWS para dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@ComunidadeDS) | ID: resource.youtubeComunidadeDsCloud | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [LINUXtips: certificações de nuvem e Azure (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/linuxtips) | ID: resource.youtubeLinuxtipsAzure | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.containers-ci-e-nuvem.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.containers-ci-e-nuvem.basics, dataEngineering.containers-ci-e-nuvem.practice

Escolha uma decisão de Containers, CI e nuvem no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Docker Compose: primeiros passos (inglês)](https://docs.docker.com/compose/gettingstarted/) | ID: resource.compose | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub Actions: integração contínua (português)](https://docs.github.com/pt/actions/get-started/continuous-integration) | ID: resource.actions | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Microsoft Learn: conceitos de nuvem (português; laboratório local recomendado)](https://learn.microsoft.com/pt-br/training/paths/microsoft-azure-fundamentals-describe-cloud-concepts/) | ID: resource.cloud | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Comunidade DS: cloud AWS para dados (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@ComunidadeDS) | ID: resource.youtubeComunidadeDsCloud | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [LINUXtips: certificações de nuvem e Azure (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/linuxtips) | ID: resource.youtubeLinuxtipsAzure | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

## IA: agentes, regras e verificação

ID da etapa: aiLearning.ia-agentes-regras-e-verificacao
Percurso: Obrigatório · Desenvolvimento com IA

Depois de conseguir ler diffs, depurar e testar, delegue uma tarefa limitada no repositório de laboratório.

### Instruções do projeto e escopo do agente

ID do grupo: aiLearning.instrucoes-do-projeto-e-escopo-do-agente

Documente como rodar, testar e organizar o projeto. Pratique regras do Cursor, CLAUDE.md ou AGENTS.md conforme a ferramenta escolhida. Defina arquivos, tarefa, limites e permissões. Comece com uma branch e uma alteração pequena; deixe MCP, múltiplos agentes e automações amplas para aprofundamento.

Objetivos essenciais: aiLearning.instrucoes-do-projeto-e-escopo-do-agente.basics, aiLearning.instrucoes-do-projeto-e-escopo-do-agente.practice

Modo simple: aiLearning.instrucoes-do-projeto-e-escopo-do-agente.basics, aiLearning.instrucoes-do-projeto-e-escopo-do-agente.practice
Modo standard: aiLearning.instrucoes-do-projeto-e-escopo-do-agente.basics, aiLearning.instrucoes-do-projeto-e-escopo-do-agente.practice
Modo deep: aiLearning.instrucoes-do-projeto-e-escopo-do-agente.basics, aiLearning.instrucoes-do-projeto-e-escopo-do-agente.practice, aiLearning.instrucoes-do-projeto-e-escopo-do-agente.deepening

IA: Desenvolvimento com IA

#### O básico

ID: aiLearning.instrucoes-do-projeto-e-escopo-do-agente.basics
Tipo: concept
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: nenhum



Referências:

- [Cursor: regras do projeto (inglês; documentação gratuita)](https://cursor.com/docs/rules) | ID: resource.cursorRules | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: instruções de projeto com AGENTS.md (inglês; documentação gratuita)](https://developers.openai.com/codex/guides/agents-md/) | ID: resource.codexRules | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: aiLearning.instrucoes-do-projeto-e-escopo-do-agente.practice
Tipo: practice
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: aiLearning.instrucoes-do-projeto-e-escopo-do-agente.basics

Escreva instruções curtas com comandos reais do projeto. Peça uma alteração pequena e confira que as instruções foram usadas e que o diff respeita o escopo.

Referências:

- [Cursor: regras do projeto (inglês; documentação gratuita)](https://cursor.com/docs/rules) | ID: resource.cursorRules | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: instruções de projeto com AGENTS.md (inglês; documentação gratuita)](https://developers.openai.com/codex/guides/agents-md/) | ID: resource.codexRules | Idioma: en | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: aiLearning.instrucoes-do-projeto-e-escopo-do-agente.deepening
Tipo: challenge
Percurso: Aprofundamento opcional · Desenvolvimento com IA
Pré-requisitos: aiLearning.instrucoes-do-projeto-e-escopo-do-agente.basics, aiLearning.instrucoes-do-projeto-e-escopo-do-agente.practice

Escolha uma decisão de Instruções do projeto e escopo do agente no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Cursor: regras do projeto (inglês; documentação gratuita)](https://cursor.com/docs/rules) | ID: resource.cursorRules | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: instruções de projeto com AGENTS.md (inglês; documentação gratuita)](https://developers.openai.com/codex/guides/agents-md/) | ID: resource.codexRules | Idioma: en | Gratuito: sim | Duração: não estimada

### Validar trabalho gerado por IA

ID do grupo: aiLearning.validar-trabalho-gerado-por-ia

Confira comportamento e requisitos além dos testes produzidos pelo próprio agente. Verifique casos negativos, dependências, documentação da versão e o resultado dos comandos. Para interface, faça inspeção visual e por teclado; para dados, use uma amostra com resultado conhecido.

Objetivos essenciais: aiLearning.validar-trabalho-gerado-por-ia.basics, aiLearning.validar-trabalho-gerado-por-ia.practice

Modo simple: aiLearning.validar-trabalho-gerado-por-ia.basics, aiLearning.validar-trabalho-gerado-por-ia.practice
Modo standard: aiLearning.validar-trabalho-gerado-por-ia.basics, aiLearning.validar-trabalho-gerado-por-ia.practice
Modo deep: aiLearning.validar-trabalho-gerado-por-ia.basics, aiLearning.validar-trabalho-gerado-por-ia.practice, aiLearning.validar-trabalho-gerado-por-ia.deepening

IA: Desenvolvimento com IA

#### O básico

ID: aiLearning.validar-trabalho-gerado-por-ia.basics
Tipo: concept
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: nenhum



Referências:

- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: aiLearning.validar-trabalho-gerado-por-ia.practice
Tipo: practice
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: aiLearning.validar-trabalho-gerado-por-ia.basics

Revise uma proposta que parece correta, mas tem um caso-limite errado. Acrescente uma verificação independente, corrija e documente a evidência.

Referências:

- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: aiLearning.validar-trabalho-gerado-por-ia.deepening
Tipo: challenge
Percurso: Aprofundamento opcional · Desenvolvimento com IA
Pré-requisitos: aiLearning.validar-trabalho-gerado-por-ia.basics, aiLearning.validar-trabalho-gerado-por-ia.practice

Escolha uma decisão de Validar trabalho gerado por IA no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada

## Projeto: Pipeline operável

ID da etapa: dataEngineering.pipeline-operavel.stage
Percurso: Obrigatório · Projeto: entrega prática

Construa antes de avançar. Registre as decisões e peça uma revisão.

### Pipeline operável

ID do grupo: dataEngineering.pipeline-operavel

Entregue ingestão incremental, transformação, orquestração e uma camada analítica documentada.

Objetivos essenciais: dataEngineering.pipeline-operavel.criteria, dataEngineering.pipeline-operavel.ai-practice, dataEngineering.pipeline-operavel.verification

Modo simple: dataEngineering.pipeline-operavel.criteria, dataEngineering.pipeline-operavel.ai-practice, dataEngineering.pipeline-operavel.verification
Modo standard: dataEngineering.pipeline-operavel.criteria, dataEngineering.pipeline-operavel.ai-practice, dataEngineering.pipeline-operavel.verification
Modo deep: dataEngineering.pipeline-operavel.criteria, dataEngineering.pipeline-operavel.ai-practice, dataEngineering.pipeline-operavel.verification, dataEngineering.pipeline-operavel.deepening

IA: IA aplicada

#### Critérios de conclusão

ID: dataEngineering.pipeline-operavel.criteria
Tipo: criteria
Percurso: Obrigatório
Pré-requisitos: nenhum

Demonstre idempotência, testes, backfill, logs, recuperação de falha e uma consulta de negócio. Inclua diagrama, origem/licença dos dados e execução local.

Referências:

- [Apache Airflow: tutoriais de orquestração (inglês)](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/index.html) | ID: resource.airflow | Idioma: en | Gratuito: sim | Duração: não estimada
- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [Docker Compose: primeiros passos (inglês)](https://docs.docker.com/compose/gettingstarted/) | ID: resource.compose | Idioma: en | Gratuito: sim | Duração: não estimada

#### Prática de IA neste projeto

ID: dataEngineering.pipeline-operavel.ai-practice
Tipo: practice
Percurso: Obrigatório · IA aplicada
Pré-requisitos: dataEngineering.pipeline-operavel.criteria

Delegue uma tarefa pequena e revise o diff e a evidência de execução. Adapte o prompt ao que você já construiu nesta etapa. Insira um registro duplicado ou nulo e demonstre como o teste detecta o problema.

Prompt de estudo:

```text
Projeto: Pipeline operável.
Objetivo: revisar uma consulta ou etapa do pipeline e procurar dupla contagem, nulos ou duplicação após reexecução.
Contexto: [schema, granularidade esperada, consulta ou código e uma pequena amostra pública ou sintética].
Nesta etapa: Delegue uma tarefa pequena e revise o diff e a evidência de execução.
Limites: apenas este projeto de laboratório; use as ferramentas já escolhidas, dados públicos ou sintéticos e não exponha segredos.
Critérios: o resultado é comparado com uma amostra calculada manualmente; cargas repetidas não duplicam dados quando aplicável.
Mostre as hipóteses e como verificá-las. Informe o que foi executado e o que ainda falta conferir.
```

Referências:

- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada

#### Registre sua verificação

ID: dataEngineering.pipeline-operavel.verification
Tipo: practice
Percurso: Obrigatório · IA aplicada
Pré-requisitos: dataEngineering.pipeline-operavel.criteria

Registre um prompt sanitizado, uma sugestão aceita ou corrigida, a verificação executada e seu resultado. Explique a mudança com suas palavras. Conclua o projeto após demonstrar os critérios, mesmo quando parte do código vier de IA.

Referências:

- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.pipeline-operavel.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: dataEngineering.pipeline-operavel.criteria, dataEngineering.pipeline-operavel.ai-practice, dataEngineering.pipeline-operavel.verification

Escolha uma decisão de Pipeline operável no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Apache Airflow: tutoriais de orquestração (inglês)](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/index.html) | ID: resource.airflow | Idioma: en | Gratuito: sim | Duração: não estimada
- [dbt: introdução às transformações de dados (inglês)](https://docs.getdbt.com/docs/introduction) | ID: resource.dbt | Idioma: en | Gratuito: sim | Duração: não estimada
- [Docker Compose: primeiros passos (inglês)](https://docs.docker.com/compose/gettingstarted/) | ID: resource.compose | Idioma: en | Gratuito: sim | Duração: não estimada
- [OpenAI: prompting para tarefas de código (inglês; documentação gratuita)](https://developers.openai.com/codex/prompting/) | ID: resource.codexPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Cursor: prompts e contexto (inglês; documentação gratuita)](https://cursor.com/docs/agent/prompting) | ID: resource.cursorPrompts | Idioma: en | Gratuito: sim | Duração: não estimada
- [Claude Code: boas práticas (inglês; documentação gratuita)](https://code.claude.com/docs/en/best-practices) | ID: resource.claudePractices | Idioma: en | Gratuito: sim | Duração: não estimada
- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

## Preparação para oportunidades

ID da etapa: curriculum.preparacao-para-oportunidades
Percurso: Obrigatório · Fundamentos e prática

Comece a buscar estágio ou vagas compatíveis com seus projetos. Ajuste o estudo aos requisitos recorrentes da sua região; concluir a trilha não garante contratação.

### Portfólio e candidatura

ID do grupo: curriculum.portfolio-e-candidatura

Publique projetos com problema, instruções de execução, testes, decisões e limitações. Prepare currículo conciso, uma demonstração e exemplos de colaboração. Pratique leitura de documentação em inglês aos poucos.

Objetivos essenciais: curriculum.portfolio-e-candidatura.basics, curriculum.portfolio-e-candidatura.practice

Modo simple: curriculum.portfolio-e-candidatura.basics, curriculum.portfolio-e-candidatura.practice
Modo standard: curriculum.portfolio-e-candidatura.basics, curriculum.portfolio-e-candidatura.practice
Modo deep: curriculum.portfolio-e-candidatura.basics, curriculum.portfolio-e-candidatura.practice, curriculum.portfolio-e-candidatura.deepening

#### O básico

ID: curriculum.portfolio-e-candidatura.basics
Tipo: concept
Percurso: Obrigatório
Pré-requisitos: nenhum



Referências:

- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: como contribuir com projetos (português)](https://docs.github.com/pt/get-started/exploring-projects-on-github/contributing-to-a-project) | ID: resource.contribute | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: curriculum.portfolio-e-candidatura.practice
Tipo: practice
Percurso: Obrigatório
Pré-requisitos: curriculum.portfolio-e-candidatura.basics

Peça feedback sobre um projeto, corrija uma issue e explique sua contribuição. Compare vagas de entrada e escolha uma lacuna concreta para estudar.

Referências:

- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: como contribuir com projetos (português)](https://docs.github.com/pt/get-started/exploring-projects-on-github/contributing-to-a-project) | ID: resource.contribute | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: curriculum.portfolio-e-candidatura.deepening
Tipo: challenge
Percurso: Aprofundamento opcional
Pré-requisitos: curriculum.portfolio-e-candidatura.basics, curriculum.portfolio-e-candidatura.practice

Escolha uma decisão de Portfólio e candidatura no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Pro Git: livro gratuito (português)](https://git-scm.com/book/pt-br/v2) | ID: resource.git | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [GitHub: como contribuir com projetos (português)](https://docs.github.com/pt/get-started/exploring-projects-on-github/contributing-to-a-project) | ID: resource.contribute | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

### IA no fluxo de trabalho

ID do grupo: curriculum.ia-no-fluxo-de-trabalho

Use IA para explicar erros, propor testes e revisar hipóteses. Confira a documentação, o diff e os resultados. Proteja dados privados e segredos.

Objetivos essenciais: curriculum.ia-no-fluxo-de-trabalho.basics, curriculum.ia-no-fluxo-de-trabalho.practice

Modo simple: curriculum.ia-no-fluxo-de-trabalho.basics, curriculum.ia-no-fluxo-de-trabalho.practice
Modo standard: curriculum.ia-no-fluxo-de-trabalho.basics, curriculum.ia-no-fluxo-de-trabalho.practice
Modo deep: curriculum.ia-no-fluxo-de-trabalho.basics, curriculum.ia-no-fluxo-de-trabalho.practice, curriculum.ia-no-fluxo-de-trabalho.deepening

IA: Desenvolvimento com IA

#### O básico

ID: curriculum.ia-no-fluxo-de-trabalho.basics
Tipo: concept
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: nenhum



Referências:

- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: curriculum.ia-no-fluxo-de-trabalho.practice
Tipo: practice
Percurso: Obrigatório · Desenvolvimento com IA
Pré-requisitos: curriculum.ia-no-fluxo-de-trabalho.basics

Compare uma sugestão de IA com sua solução, identifique uma limitação e teste a mudança. Explique o código sem depender da ferramenta.

Referências:

- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: curriculum.ia-no-fluxo-de-trabalho.deepening
Tipo: challenge
Percurso: Aprofundamento opcional · Desenvolvimento com IA
Pré-requisitos: curriculum.ia-no-fluxo-de-trabalho.basics, curriculum.ia-no-fluxo-de-trabalho.practice

Escolha uma decisão de IA no fluxo de trabalho no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [GitHub: uso responsável de sugestões de IA (português)](https://docs.github.com/pt/copilot/responsible-use/copilot-code-completion) | ID: resource.ai | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

## Escala e streaming opcionais (opcional)

ID da etapa: dataEngineering.escala-e-streaming-opcionais
Percurso: Opcional · Fundamentos e prática

Spark, Kafka, lakehouse e processamento distribuído vêm depois de SQL e pipelines locais. Escolha quando volume ou latência justificarem.

### Spark e streaming

ID do grupo: dataEngineering.spark-e-streaming

Compare batch e streaming, particionamento, checkpoints, eventos atrasados e semântica de entrega. Meça o problema antes de distribuir.

Objetivos essenciais: dataEngineering.spark-e-streaming.basics, dataEngineering.spark-e-streaming.practice

Modo simple: dataEngineering.spark-e-streaming.basics, dataEngineering.spark-e-streaming.practice
Modo standard: dataEngineering.spark-e-streaming.basics, dataEngineering.spark-e-streaming.practice
Modo deep: dataEngineering.spark-e-streaming.basics, dataEngineering.spark-e-streaming.practice, dataEngineering.spark-e-streaming.deepening

#### O básico

ID: dataEngineering.spark-e-streaming.basics
Tipo: concept
Percurso: Opcional
Pré-requisitos: nenhum



Referências:

- [Apache Spark: primeiros passos (inglês)](https://spark.apache.org/docs/latest/quick-start.html) | ID: resource.spark | Idioma: en | Gratuito: sim | Duração: não estimada
- [Apache Kafka: introdução e primeiros passos (inglês)](https://kafka.apache.org/quickstart) | ID: resource.kafka | Idioma: en | Gratuito: sim | Duração: não estimada
- [André Sionek: Apache Spark e Databricks (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/AndreSionek) | ID: resource.youtubeSionekSpark | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Luan Moreno: engenharia de dados na prática (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@LuanMorenoMMaciel) | ID: resource.youtubeLuanMorenoSpark | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Michelli Brito: RabbitMQ e Kafka na prática (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/MichelliBrito) | ID: resource.youtubeMichelliMessaging | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Full Cycle: Apache Kafka descomplicado (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/FullCycle) | ID: resource.youtubeFullCycleKafka | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Pratique e confira

ID: dataEngineering.spark-e-streaming.practice
Tipo: practice
Percurso: Opcional
Pré-requisitos: dataEngineering.spark-e-streaming.basics

Compare uma transformação local com a versão distribuída e documente quando o custo adicional se justifica.

Referências:

- [Apache Spark: primeiros passos (inglês)](https://spark.apache.org/docs/latest/quick-start.html) | ID: resource.spark | Idioma: en | Gratuito: sim | Duração: não estimada
- [Apache Kafka: introdução e primeiros passos (inglês)](https://kafka.apache.org/quickstart) | ID: resource.kafka | Idioma: en | Gratuito: sim | Duração: não estimada
- [André Sionek: Apache Spark e Databricks (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/AndreSionek) | ID: resource.youtubeSionekSpark | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Luan Moreno: engenharia de dados na prática (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@LuanMorenoMMaciel) | ID: resource.youtubeLuanMorenoSpark | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Michelli Brito: RabbitMQ e Kafka na prática (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/MichelliBrito) | ID: resource.youtubeMichelliMessaging | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Full Cycle: Apache Kafka descomplicado (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/FullCycle) | ID: resource.youtubeFullCycleKafka | Idioma: pt-BR | Gratuito: sim | Duração: não estimada

#### Desafio de aprofundamento

ID: dataEngineering.spark-e-streaming.deepening
Tipo: challenge
Percurso: Opcional
Pré-requisitos: dataEngineering.spark-e-streaming.basics, dataEngineering.spark-e-streaming.practice

Escolha uma decisão de Spark e streaming no seu projeto. Construa uma segunda solução, compare os resultados com um caso de teste e explique os limites de cada abordagem. Use as referências para verificar sua conclusão.

Referências:

- [Apache Spark: primeiros passos (inglês)](https://spark.apache.org/docs/latest/quick-start.html) | ID: resource.spark | Idioma: en | Gratuito: sim | Duração: não estimada
- [Apache Kafka: introdução e primeiros passos (inglês)](https://kafka.apache.org/quickstart) | ID: resource.kafka | Idioma: en | Gratuito: sim | Duração: não estimada
- [André Sionek: Apache Spark e Databricks (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/AndreSionek) | ID: resource.youtubeSionekSpark | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Luan Moreno: engenharia de dados na prática (português; vídeos gratuitos no YouTube)](https://www.youtube.com/@LuanMorenoMMaciel) | ID: resource.youtubeLuanMorenoSpark | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Michelli Brito: RabbitMQ e Kafka na prática (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/MichelliBrito) | ID: resource.youtubeMichelliMessaging | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
- [Full Cycle: Apache Kafka descomplicado (português; vídeos gratuitos no YouTube)](https://www.youtube.com/c/FullCycle) | ID: resource.youtubeFullCycleKafka | Idioma: pt-BR | Gratuito: sim | Duração: não estimada
