Curso gratuito
Curso de Python Avançado
Domine tipagem, async, metaclasses, performance e engenharia de software de verdade. O terceiro e último curso da trilha Python do ValorFinal, para quem já escreve código organizado (orientação a objetos, decoradores, geradores e testes) e quer pensar como engenheiro. Você vai dominar tipagem estática com type hints e mypy, dataclasses, programação funcional com functools e itertools, decoradores avançados, context managers, geradores e iteradores avançados, concorrência com threads, async e asyncio, orientação a objetos avançada, metaclasses e descritores, exceções e logging, testes com pytest, performance e profiling, empacotamento e boas práticas de projeto, e vai fechar com uma biblioteca completa, tipada e testada. Cada aula tem exemplos comentados, exercícios com correção automática no Playground e fontes oficiais da documentação em português. É o topo da trilha: sem promessa de emprego, só engenharia de verdade e código do jeito que profissionais escrevem.
Por Cesar Gargiulo, especialista em segurança da informação (GUARDIASEC). Revisão editorial da equipe ValorFinal.
- Preço
- Grátis, sem cadastro para ler
- Carga horária
- 12 horas
- Conteúdo
- 16 módulos e 78 aulas
- Nível
- Avançado
- Formato
- Texto, vídeo e áudio
- Prática
- Exercício em cada aula, laboratório e missão prática
- Exame final
- 20 questões, aprovação com 70%
- Certificado
- Verificável, para assinantes VIP
Em resumo
O Curso de Python Avançado fecha a trilha Python do ValorFinal, depois do Básico e do Intermediário, e continua gratuito e online. São 16 módulos e 78 aulas, perto de 12 horas no total, com vídeo em cada módulo e resumo em áudio nas aulas. O conteúdo cobre tipagem estática com type hints e mypy, dataclasses e Enum, programação funcional com functools e itertools, decoradores avançados, context managers, geradores avançados, concorrência com threads, async e asyncio, orientação a objetos avançada, metaclasses e descritores, logging, testes com pytest, profiling e empacotamento com pyproject.toml. A maior parte dos exercícios roda no Playground, com Python de verdade no navegador, e o projeto final é uma mini biblioteca tipada e testada. Qualquer pessoa lê as aulas sem cadastro; o certificado verificável é dos assinantes do ValorFinal VIP.
Comece do jeito certo
Por onde você quer começar?
Escolha o seu ponto de partida. Você pode mudar quando quiser: todo o conteúdo fica liberado.
Para quem é este curso
Para quem já escreve Python organizado, com classes, decoradores, geradores e testes, e quer passar a projetar código que outras pessoas conseguem manter. Serve a quem terminou o Curso de Python Intermediário e a quem já usa Python no trabalho e quer decidir com critério quando vale tipar, usar threads ou async e organizar o projeto em pacote.
Antes de começar: Conhecer o conteúdo do Curso de Python Intermediário: orientação a objetos, decoradores, geradores, exceções e noções de teste. A maior parte das práticas roda no Playground do curso, e o mypy e o pytest são instalados com pip no computador, nos módulos em que o curso os usa.
O que você vai saber fazer
- Anotar tipos com typing, Optional, generics e Protocol e verificar o código com mypy
- Modelar dados com @dataclass, field, frozen, __post_init__ e Enum
- Aplicar functools, lru_cache e itertools em código funcional
- Escrever decoradores com argumentos, decoradores de classe e context managers com contextlib
- Rodar tarefas concorrentes com threading, Lock, queue, ThreadPoolExecutor e asyncio
- Usar @property, métodos dunder, MRO, descritores e metaclasses
- Testar com pytest, fixtures, parametrize e mocks e achar gargalos com timeit e cProfile
- Estruturar pacotes com pyproject.toml e seguir a PEP 8 com black e ruff
O que você leva neste curso
O conteúdo é todo gratuito. Veja o que cada plano libera antes de começar.
Conta grátis
R$ 0
- ✓ Ler todas as aulas, sem login
- ✓ Salvar o progresso só neste aparelho
- ✓ Fazer as mini-provas de cada módulo
- ✓ Conquistar e ver todas as medalhas
- ✓ Compartilhar as conquistas no LinkedIn
♛ ValorFinal VIP
Certificado + extras
- ✦ Tudo do plano grátis
- ✦ Certificado de conclusão verificável em PDF com o seu nome
- ✦ Open Badge do certificado (credencial aberta, padrão 1EdTech, para o LinkedIn e carteiras de medalhas)
- ✦ Certificado ancorado no Bitcoin (OpenTimestamps), com comprovante verificável de forma independente
- ✦ Anotações nas aulas, com grifar para anotar e sincronizadas entre aparelhos
- ✦ Valim, o tutor de IA, dentro das aulas
- ✦ Comunidade de dúvidas por aula, com a 1a resposta do Valim
- ✦ Liga semanal de XP e Hall da Fama do curso
- ✦ Progresso salvo na sua conta e sincronizado entre aparelhos (no mesmo computador, cada conta vê só o seu avanço)
- ✦ Portal inteiro sem anúncios
Conteúdo do curso
Módulo 1: Boas-vindas ao Python Avançado
3 aulasO ponto de partida do topo da trilha: o que você já domina do Intermediário, o que muda quando o objetivo deixa de ser só organizar e passa a ser projetar com intenção. Uma revisão relâmpago da orientação a objetos e dos recursos avançados, e as ferramentas de engenharia que acompanham todo o curso.
Módulo 2: Tipagem estática
5 aulasO primeiro pilar da engenharia em Python: declarar os tipos que o seu código espera e devolve. Você aprende os type hints, o módulo typing com Optional, Union, list, dict e Callable, o começo de generics com TypeVar, o Protocol para duck typing tipado e o verificador mypy que confere tudo antes de rodar.
Módulo 3: Dataclasses e estruturas de dados
5 aulasComo modelar dados com elegância em Python. O decorador @dataclass gera automaticamente o construtor, a representação e a comparação de uma classe de dados. Você aprende field com default_factory, a imutabilidade com frozen, a validação no __post_init__, o Enum para constantes nomeadas e como escolher entre dataclass, namedtuple, dicionário e tupla.
Módulo 4: Programação funcional
5 aulasUm estilo de programação que trata funções como valores e evita efeitos colaterais. Você aprende funções puras e imutabilidade, as ferramentas do functools (reduce, partial e o cache do lru_cache), os geradores infinitos e combinadores do itertools, e quando preferir map e filter às compreensões de lista.
Módulo 5: Decoradores avançados
5 aulasO decorador simples do Intermediário era só o começo. Aqui você aprende a preservar a identidade da função com functools.wraps, a construir decoradores que recebem argumentos, a decorar classes inteiras, a empilhar decoradores na ordem certa e a reconhecer os padrões que aparecem em qualquer código profissional: log, cronômetro, cache, validação e retry.
Módulo 6: Context managers e o with
5 aulasO comando with que você usa para abrir arquivos guarda um mecanismo elegante por baixo: o context manager, que garante a limpeza de um recurso aconteça o que acontecer. Aqui você aprende o protocolo __enter__ e __exit__, o atalho com @contextlib.contextmanager e yield, e monta seus próprios gerenciadores para arquivos, locks, transações e cronômetros.
Módulo 7: Geradores e iteradores avançados
5 aulasPor trás de todo for existe o protocolo do iterador, e por trás dele está o poder dos geradores. Aqui você desce ao __iter__ e __next__, monta pipelines preguiçosos que processam dados enormes com pouca memória, delega com yield from, dompteia sequências infinitas com islice e conhece o send, o passo que faz a ponte para a programação assíncrona.
Módulo 8: Concorrência com threads
5 aulasO primeiro passo para lidar com muitas tarefas ao mesmo tempo. Você entende a diferença entre concorrência e paralelismo, o famoso GIL e o que ele implica, cria threads na prática, aprende a evitar a race condition com Lock, coordena produtor e consumidor com fila e usa o ThreadPoolExecutor para trabalho de I/O em lote.
Módulo 9: Async e asyncio
5 aulasOutra forma de fazer muitas tarefas de I/O ao mesmo tempo, sem threads. Você entende por que a espera desperdiça tempo, escreve corrotinas com async def e await, roda o event loop com asyncio.run, dispara várias tarefas juntas com asyncio.gather e aprende quando async é melhor que threads e quando não é.
Módulo 10: Orientação a objetos avançada
5 aulasO coração do projeto de software em Python. Você aprende a proteger atributos com @property e validação, a criar métodos de classe e estáticos, a fazer suas classes se integrarem à linguagem com os métodos dunder, a economizar memória com __slots__, a entender herança múltipla e a ordem de resolução de métodos, e a escolher entre composição e herança com critério.
Módulo 11: Metaclasses e descritores
5 aulasO andar de baixo da orientação a objetos em Python. Aqui você descobre que classes também são objetos, entende como type() fabrica classes, o que é uma metaclass e quando (raramente) vale usar, e como os descritores fazem @property funcionar por dentro. Poder de verdade, para usar com parcimônia.
Módulo 12: Exceções, logging e robustez
5 aulasO módulo que separa um script que funciona de um programa em que se pode confiar. Você desenha uma hierarquia de exceções própria do seu domínio, encadeia erros sem perder a causa, usa o módulo logging no lugar do print e adota uma postura defensiva: validar cedo e falhar de forma clara.
Módulo 13: Testes avançados
5 aulasTestar de verdade, do jeito profissional. Você troca os asserts soltos pelo pytest, o framework de testes mais usado do Python, e aprende a organizar o teste com fixtures, cobrir muitos casos com parametrize, testar erros e dependências com pytest.raises e mocks, medir cobertura e adotar o ciclo TDD.
Módulo 14: Performance e profiling
5 aulasAntes de acelerar qualquer código, você precisa saber onde ele é lento. Este módulo ensina a medir com timeit, a achar o gargalo real com cProfile e pstats, a raciocinar sobre complexidade sem matemática pesada, a escolher a estrutura de dados certa e a usar memoização e geradores. A regra é uma só: meça primeiro, otimize depois.
Módulo 15: Empacotamento e boas práticas
5 aulasEscrever funções que funcionam é só metade do trabalho de engenharia. A outra metade é organizar tudo num projeto navegável, com estrutura de pacote clara, imports bem resolvidos, estilo consistente e princípios de design que mantêm o código fácil de mudar. Este módulo reúne a estrutura de projetos, o pyproject.toml, PEP 8, SOLID e os padrões pythônicos de código limpo.
Módulo 16: Projeto final: mini biblioteca de utilidades
5 aulasChegou a hora de juntar tudo. Neste módulo você constrói, passo a passo, uma mini biblioteca de utilidades tipada e testada, o pacote catalogo, para gerenciar produtos e preços. Cada aula acrescenta uma camada: dataclasses e Enum, decoradores próprios e context manager, exceções e logging, e por fim testes com pytest e empacotamento. É o código que prova, para você mesmo, que você projeta software.
Por causa do GIL, threads não servem para nada em Python?
Servem, mas para um tipo específico de tarefa. O GIL, a trava do interpretador CPython, deixa só uma thread executar bytecode Python por vez, então threads não aceleram cálculo pesado, como fatorar números enormes. Só que a thread solta o GIL enquanto espera entrada e saída, como baixar uma página, ler um arquivo ou consultar um banco de dados. Um programa que baixa cinquenta páginas passa quase todo o tempo esperando, e com threads essas esperas se sobrepõem. O módulo 8 do Curso de Python Avançado mostra essa divisão, usa o ProcessPoolExecutor para cálculo pesado e lembra que o GIL é do CPython, não da linguagem. O módulo 9 compara threads com async e asyncio.
Exercícios de Python avançado com respostas
As perguntas de verificação de todas as aulas, reunidas numa página só, com o gabarito comentado e o link para a aula que ensina cada assunto. Dá para revisar antes do exame final ou testar o que você já sabe antes de começar.
Abrir a lista de exercíciosPerguntas frequentes
O Curso de Python Avançado é gratuito?
Sim. As aulas, os exercícios do Playground, as mini-provas e o exame final do Curso de Python Avançado são gratuitos, e ninguém precisa se cadastrar para ler as aulas. O pagamento só entra para quem assina o ValorFinal VIP, que libera o certificado de conclusão verificável, o progresso sincronizado entre aparelhos, o tutor de IA dentro das aulas e o portal sem anúncios.
Preciso ter feito o Python Intermediário antes do avançado?
É o ideal. O Curso de Python Avançado parte de orientação a objetos, decoradores, geradores e exceções, que são o conteúdo do Curso de Python Intermediário, e o módulo 1 faz uma revisão relâmpago desses temas. Testes não são pré-requisito rígido, porque o módulo 13 retoma o assunto do começo com pytest. O nivelamento da página do curso também permite começar pela tipagem ou pelo async.
Preciso instalar mypy e pytest para começar o curso de Python avançado?
Não para começar. A maioria dos exercícios do Curso de Python Avançado roda no Playground, que executa Python de verdade no navegador, e os type hints funcionam ali porque o Python os aceita e ignora na execução. O mypy é instalado no módulo de tipagem e o pytest no módulo de testes, os dois com pip, do jeito que o Curso de Python Intermediário ensina.
Quanto tempo leva o curso de Python avançado?
O Curso de Python Avançado soma cerca de 12 horas de estudo entre as 78 aulas, as práticas no Playground, as mini-provas, a Missão prática e o exame final. O próprio curso sugere de 30 a 40 minutos por dia e avisa que alguns temas, como async e metaclasses, pedem releitura. O plano de estudo da página do curso transforma o seu tempo diário numa data prevista de conclusão.
O curso de Python avançado tem certificado?
Tem, para quem assina o ValorFinal VIP. A emissão do certificado do Curso de Python Avançado depende de aprovação nas mini-provas de todos os módulos e no exame final, que sorteia 20 questões do curso inteiro e exige 70% de acerto. O certificado leva o seu nome e um código de verificação público, vem com um Open Badge e recebe carimbo de data no Bitcoin pelo OpenTimestamps.
Type hints deixam o Python mais rápido?
Não. O Python aceita as anotações de tipo e as ignora quando o programa roda, então passar um texto onde a função espera list[float] não gera erro na execução. O ganho está em outro lugar: as anotações documentam o contrato da função para quem lê e para o editor, e o mypy confere os tipos sem executar nada, apontando a incoerência antes que ela vire bug. O Curso de Python Avançado ensina typing, Optional, Union, TypeVar, Protocol e o mypy na prática.
Quando usar async e quando usar threads em Python?
Async e threads servem para tarefas que esperam entrada e saída, e nenhum dos dois acelera cálculo puro, que pede processos. Threads encaixam mais fácil em código que já existe e em bibliotecas bloqueantes comuns. O async escala melhor para milhares de conexões, desde que existam bibliotecas assíncronas para o que você chama, porque um time.sleep dentro de uma corrotina trava o event loop inteiro. O módulo 9 do Curso de Python Avançado traz esse guia de decisão.
O que é uma metaclass em Python e quando usar?
Uma metaclass é uma subclasse de type, ou seja, uma fábrica de classes: ela roda quando a classe é criada, e não quando um objeto da classe é instanciado. No Curso de Python Avançado, a metaclass aparece como recurso de framework, e programas comuns quase nunca precisam de uma. Para registrar subclasses automaticamente, a primeira escolha ensinada é o __init_subclass__, mais simples e legível, e a metaclass fica para os casos que nenhuma alternativa mais leve resolve.
Qual a diferença entre o Python intermediário e o avançado?
O Curso de Python Intermediário ensina a escrever programas organizados, com classes, decoradores, geradores, arquivos JSON e CSV e testes. O Curso de Python Avançado parte daí para decisões de engenharia: tipos conferidos pelo mypy, dataclasses, concorrência com threads e asyncio, metaclasses e descritores, profiling, empacotamento e princípios SOLID. Em cada recurso, o avançado mostra quando usar e também quando não usar, que é o critério de quem mantém código em produção.
Qual é o projeto final do Curso de Python Avançado?
O projeto final do Curso de Python Avançado é o pacote catalogo, uma mini biblioteca de utilidades para gerenciar produtos e preços. Cada aula acrescenta uma camada: dataclasses e Enum para o domínio, decoradores próprios e um context manager, uma hierarquia de exceções com logging e, por último, testes com pytest e empacotamento. Na Missão prática, uma caixa de ferramentas tipada e testada é montada em missões, e cada peça é validada na própria página pela saída que produz.
O que estudar depois do Python avançado?
O ValorFinal sugere, como complemento, o Curso de Inteligência Artificial para Pequenos Negócios, sobre usar a IA no dia a dia com método. Quem programa também pode seguir para o Curso de Claude Code, que ensina a trabalhar com um agente de IA no terminal. Para aprofundar algoritmos e estruturas de dados, como grafos, árvores e programação dinâmica, os cursos intermediário e avançado de lógica de programação tratam do tema em pseudocódigo.
Guias para ler antes ou depois do curso
Outros cursos gratuitos da mesma área
- Curso de Informática BásicaDo zero ao computador no dia a dia
- Curso de Python BásicoDo zero ao seu primeiro programa de verdade, programando desde a primeira aula
- Curso de Python IntermediárioAprofunde em POO, decoradores, geradores, testes e projetos de verdade
- Curso de Lógica de ProgramaçãoAprenda a pensar como programador, com jogos e desenhos em toda aula
- Curso de Lógica de Programação IntermediárioO próximo degrau: dados de verdade, algoritmos clássicos e código que se lê
- Curso de Lógica de Programação AvançadoO topo da trilha: estruturas de dados, algoritmos clássicos e pensamento de projeto
Quem fez este curso
Cesar Gargiulo
Especialista em Cloud Security e Segurança da Informação
Cesar Gargiulo é fundador do ValorFinal e especialista em segurança da informação. Reúne atuação técnica em ambientes AWS, proteção de aplicações e infraestrutura crítica com a experiência de tocar as próprias empresas. A trajetória passa por Nomad, Núclea e UOL EdTech, além dos projetos de segurança ofensiva e defensiva conduzidos na GUARDIASEC. É pós-graduado em Offensive Cyber Security pela FIAP e tem MBA em Governança Estratégica de TI pela FHO Uniararas.
Python avançado é o que separa o script que funciona do código que dura: tipagem, testes, concorrência e desempenho. Quem mantém código em produção aprendeu essas lições na prática, algumas doendo, e cada aula passa esse critério adiante: quando usar cada recurso e, tão importante quanto, quando não usar.