Trilha de estudo
Trilha Python: tudo o que estudar, tópico por tópico
Avaliação abrangente de Python cobrindo desde fundamentos até tópicos de nível especialista, incluindo programação assíncrona, metaclasses e internos do CPython.
Resposta curta
Para aprender Python, percorra 6 módulos e 49 tópicos na ordem em que um apoia o próximo. Comece por Fundamentos e siga para Estruturas de Dados e POO e Design. Use o mapa como checklist, ou meça seu nível e estude só o que falta.
O que você vai estudar
Os tópicos estão agrupados por módulo. Abra um para ver os objetivos e os conceitos-chave.
1 · Fundamentos9 tópicos
Sintaxe Python
Regras básicas de sintaxe Python, indentação, comentários e estrutura de programas
Objetivos
- Escrever código Python sintaticamente válido
- Compreender as regras de indentação
Conceitos-chave
- indentação
- comentários
- continuação de linha
- ponto e vírgula
- instrução pass
Variáveis e Tipos de Dados
Atribuição de variáveis, nomenclatura, tipos primitivos (int, float, str, bool, None) e conversão de tipos
Objetivos
- Explicar a tipagem dinâmica
- Converter entre tipos corretamente
Conceitos-chave
- tipagem dinâmica
- type()
- isinstance()
- conversão de tipos
- None
- mutabilidade
Fluxo de Controle
if/elif/else, laços for, laços while, break, continue, match/case
Objetivos
- Escrever lógica condicional correta
- Utilizar laços de forma eficiente com itertools
Conceitos-chave
- if/elif/else
- laços for
- laços while
- break/continue
- range()
- enumerate()
- zip()
- match/case
Funções
Definição de funções, argumentos, valores de retorno, escopo, *args/**kwargs e lambda
Objetivos
- Definir funções com diversos tipos de argumentos
- Explicar as regras de escopo do Python
Conceitos-chave
- def
- return
- argumentos padrão
- *args/**kwargs
- lambda
- escopo (LEGB)
- docstrings
- funções de primeira classe
Operações com Strings
Métodos de string, formatação (f-strings, .format), fatiamento e codificação
Objetivos
- Manipular strings com métodos nativos
- Utilizar f-strings de forma eficaz
Conceitos-chave
- f-strings
- .format()
- fatiamento
- split/join
- strip()
- replace()
- codificação/decodificação
Manipulação de Arquivos e I/O
open(), gerenciadores de contexto para arquivos, leitura e escrita de JSON/CSV/YAML, pathlib e arquivos binários
Objetivos
- Ler e escrever arquivos de forma segura
- Analisar formatos de dados estruturados
Conceitos-chave
- open()
- gerenciadores de contexto para arquivos
- leitura/escrita de JSON
- leitura/escrita de CSV
- leitura/escrita de YAML
- pathlib
- arquivos binários
Estruturas de Dados e Algoritmos
Arrays, listas encadeadas, tabelas hash, pilhas, filas, árvores, ordenação, busca e complexidade
Objetivos
- Analisar a complexidade de tempo e espaço de algoritmos
- Escolher estruturas de dados adequadas para diferentes problemas
Conceitos-chave
- arrays e listas
- listas encadeadas
- tabelas hash
- pilhas e filas
- árvores binárias
- algoritmos de ordenação
- algoritmos de busca
- complexidade de tempo
Conversão de Tipos
Conversão explícita e implícita de tipos, funções de casting, regras de coerção e armadilhas comuns
Objetivos
- Converter entre tipos Python de forma segura
- Prever o resultado de conversões implícitas e explícitas de tipos
Conceitos-chave
- int()
- float()
- str()
- bool()
- casting implícito vs explícito
- regras de coerção de tipos
- erros de casting
Expressões Lambda
Sintaxe lambda, funções anônimas, map/filter/reduce, ordenação com lambda e estilo funcional
Objetivos
- Escrever expressões lambda concisas para operações inline
- Decidir quando lambda é apropriado vs uma função nomeada
Conceitos-chave
- sintaxe lambda
- funções anônimas
- map/filter/reduce
- lambda vs def
- ordenação com lambda
- limitações do lambda
- estilo funcional
2 · Estruturas de Dados5 tópicos
Listas e Tuplas
Operações com listas/tuplas, métodos, fatiamento, desempacotamento e tuplas nomeadas
Objetivos
- Escolher entre listas e tuplas
- Utilizar fatiamento e desempacotamento
Conceitos-chave
- métodos de lista
- imutabilidade de tupla
- fatiamento
- desempacotamento
- sorted()
- namedtuple
- desempenho de lista vs tupla
Dicionários e Conjuntos
Operações com dicionários, operações com conjuntos, defaultdict, OrderedDict e hashability
Objetivos
- Utilizar dicionários para busca de dados
- Compreender os requisitos de hashability
Conceitos-chave
- métodos de dict
- operações com conjuntos
- hashability
- dict comprehensions
- .get()
- .setdefault()
- desempacotamento de dict (**)
Módulo Collections
defaultdict, Counter, deque, ChainMap e contêineres especializados
Objetivos
- Escolher o tipo de coleção adequado para cada caso de uso
Conceitos-chave
- defaultdict
- Counter
- deque
- ChainMap
- OrderedDict
- namedtuple
Comprehensions
Comprehensions de lista, dict e set, comprehensions aninhadas e expressões geradoras
Objetivos
- Reescrever laços como comprehensions
- Saber quando comprehensions prejudicam a legibilidade
Conceitos-chave
- list comprehension
- dict comprehension
- set comprehension
- comprehension aninhada
- expressão geradora
- comprehension condicional
Expressões Regulares
Módulo re, match/search/findall, grupos, lookahead/lookbehind, compile e substituição
Objetivos
- Escrever e depurar expressões regulares
- Escolher entre regex e métodos de string
Conceitos-chave
- módulo re
- match/search/findall
- grupos
- lookahead/lookbehind
- re.compile
- substituição
3 · POO e Design5 tópicos
Classes e Herança
Definição de classes, __init__, herança, super(), MRO, atributos de classe vs atributos de instância
Objetivos
- Projetar hierarquias de classes
- Compreender MRO e super()
Conceitos-chave
- __init__
- self
- herança
- super()
- MRO
- atributos de classe vs atributos de instância
- herança múltipla
Métodos Mágicos
Métodos dunder: __repr__, __str__, __eq__, __hash__, __len__, __getitem__ e protocolos
Objetivos
- Implementar protocolos Python via métodos dunder
Conceitos-chave
- __repr__
- __str__
- __eq__/__hash__
- __len__
- __getitem__
- __contains__
- __iter__
- sobrecarga de operadores
Padrões de Design
Padrões comuns em Python: Singleton, Factory, Strategy, Observer e Iterator
Objetivos
- Aplicar padrões de design comuns de forma idiomática em Python
Conceitos-chave
- Singleton
- Factory
- Strategy
- Observer
- Iterator
- padrão Decorator vs @decorator
Princípios SOLID
Responsabilidade única, Aberto/Fechado, Substituição de Liskov, Segregação de interface e Inversão de dependência
Objetivos
- Identificar violações SOLID e refatorar adequadamente
Conceitos-chave
- Responsabilidade Única
- Aberto/Fechado
- Substituição de Liskov
- Segregação de Interface
- Inversão de Dependência
- ABC
Dataclasses
Decorador @dataclass, field(), dataclasses congeladas, __post_init__, herança e slots=True
Objetivos
- Criar dataclasses para dados estruturados com mínimo boilerplate
- Utilizar as opções frozen e slots para imutabilidade e desempenho
Conceitos-chave
- decorador @dataclass
- função field()
- dataclasses congeladas
- __post_init__
- herança de dataclass
- slots=True
- comparação e ordenação
4 · Python Avançado7 tópicos
Closures e Escopo
Closures, variáveis livres, palavra-chave nonlocal e functools.partial
Objetivos
- Explicar o que uma closure captura
- Evitar armadilhas de late binding
Conceitos-chave
- closure
- variáveis livres
- nonlocal
- late binding
- functools.partial
- objetos cell
Decoradores
Decoradores de função, decoradores de classe, @wraps, decoradores parametrizados e empilhamento
Objetivos
- Escrever decoradores com e sem argumentos
- Compreender o uso de wraps()
Conceitos-chave
- @decorator
- functools.wraps
- decoradores parametrizados
- decoradores de classe
- ordem de empilhamento de decoradores
Geradores e Iteradores
yield, funções geradoras, expressões geradoras, itertools e avaliação preguiçosa
Objetivos
- Utilizar geradores para processamento eficiente em memória
- Encadear geradores
Conceitos-chave
- yield
- yield from
- expressão geradora
- itertools
- avaliação preguiçosa
- StopIteration
- __iter__/__next__
Async / Await
asyncio, corrotinas, loop de eventos, geradores assíncronos e padrões aiohttp
Objetivos
- Escrever I/O concorrente com asyncio
- Evitar armadilhas comuns de async
Conceitos-chave
- async def
- await
- asyncio.gather
- loop de eventos
- gerenciador de contexto assíncrono
- gerador assíncrono
- asyncio.Queue
Gerenciadores de Contexto
Instrução with, __enter__/__exit__, contextlib e gerenciadores de contexto personalizados
Objetivos
- Implementar gerenciadores de contexto para limpeza de recursos
Conceitos-chave
- __enter__
- __exit__
- contextlib.contextmanager
- contextlib.suppress
- gerenciadores de contexto aninhados
Metaclasses
type(), __new__, __init_subclass__, programação com metaclasses e fluxo de criação de classes
Objetivos
- Explicar quando metaclasses são apropriadas
- Rastrear o fluxo de criação de classes
Conceitos-chave
- type()
- __new__
- __init_subclass__
- metaclass=
- ordem de criação de classes
- __prepare__
GIL (Global Interpreter Lock)
Propósito do GIL, impacto em threading, CPU-bound vs I/O-bound, liberação do GIL e alternativas
Objetivos
- Explicar por que o GIL existe e seu impacto na concorrência
- Escolher entre threading e multiprocessing com base no tipo de carga de trabalho
Conceitos-chave
- propósito do GIL
- impacto do GIL em threading
- CPU-bound vs I/O-bound
- liberação do GIL
- multiprocessing como alternativa
- extensões C e GIL
- propostas de Python sem GIL
5 · Ecossistema e Ferramentas13 tópicos
Empacotamento e Dependências
pip, venv, pyproject.toml, setuptools, poetry e gestão de dependências
Objetivos
- Configurar um projeto Python com empacotamento adequado
Conceitos-chave
- venv
- pip
- pyproject.toml
- setuptools
- poetry
- wheel
- requirements.txt
- resolução de dependências
Testes
pytest, unittest, mocking, fixtures, parametrize e cobertura de testes
Objetivos
- Escrever testes eficazes com pytest
- Utilizar mocking corretamente
Conceitos-chave
- pytest
- fixtures
- parametrize
- mock.patch
- assert
- conftest.py
- cobertura
Type Hints
Anotações de tipo, módulo typing, Generic, Protocol, TypeVar e mypy
Objetivos
- Adicionar type hints a bases de código
- Compreender subtipagem estrutural
Conceitos-chave
- anotações de tipo
- typing.Optional
- typing.Union
- Generic
- Protocol
- TypeVar
- mypy
- verificações em runtime vs estáticas
Tratamento de Erros
Hierarquia de exceções, exceções personalizadas, padrões try/except/finally e EAFP vs LBYL
Objetivos
- Projetar hierarquias de exceções
- Escolher entre EAFP e LBYL
Conceitos-chave
- try/except/else/finally
- exceções personalizadas
- encadeamento de exceções
- BaseException vs Exception
- EAFP vs LBYL
- grupos de exceções
Fundamentos do Django
Padrão MTV, ORM, views, URLs, middleware, admin e configuração de projetos
Objetivos
- Construir aplicações web com Django
- Compreender a arquitetura MTV
Conceitos-chave
- padrão MTV
- ORM
- views
- roteamento de URL
- middleware
- admin
- settings
Fundamentos do Flask
Rotas, decoradores, contexto de requisição, Blueprints, templates Jinja2 e extensões Flask
Objetivos
- Construir aplicações web leves com Flask
- Compreender o contexto de requisição
Conceitos-chave
- rotas
- decoradores
- contexto de requisição
- Blueprints
- Jinja2
- extensões Flask
FastAPI
Operações de rota, modelos Pydantic, injeção de dependência, endpoints assíncronos e documentação OpenAPI
Objetivos
- Construir APIs assíncronas modernas com FastAPI
- Aproveitar a documentação e validação automáticas
Conceitos-chave
- operações de rota
- modelos Pydantic
- injeção de dependência
- endpoints assíncronos
- documentação OpenAPI
mypy e Pydantic
Modo estrito do mypy, pyright, Pydantic BaseModel, validadores, tipos de campo e serialização
Objetivos
- Garantir segurança de tipos com mypy
- Validar dados com modelos Pydantic
Conceitos-chave
- modo estrito do mypy
- pyright
- Pydantic BaseModel
- validadores
- tipos de campo
- serialização
Ferramentas de Qualidade de Código
Ruff, Black, isort, flake8, hooks de pre-commit e configuração de linting
Objetivos
- Configurar ferramentas automatizadas de qualidade de código
- Configurar linting para uma equipe
Conceitos-chave
- Ruff
- Black
- isort
- flake8
- hooks de pre-commit
- configuração de linting
Ambientes Virtuais e uv
venv, virtualenv, uv, pyproject.toml, Poetry, pip-tools e resolução de dependências
Objetivos
- Gerenciar ambientes Python de forma eficaz
- Resolver conflitos de dependências
Conceitos-chave
- venv
- virtualenv
- uv
- pyproject.toml
- Poetry
- pip-tools
- resolução de dependências
Módulos da Biblioteca Padrão
Módulos os, pathlib, sys, datetime, itertools, functools, math, statistics, json e csv
Objetivos
- Utilizar módulos da biblioteca padrão para evitar reinventar a roda
- Escolher o módulo certo para tarefas comuns
Conceitos-chave
- os e pathlib
- módulo sys
- datetime e time
- itertools
- functools
- math e statistics
- json e csv
Gerenciadores de Pacotes
pip, requirements.txt, Poetry, Conda, uv, pdm, resolução de dependências e arquivos lock
Objetivos
- Comparar e selecionar o gerenciador de pacotes adequado para um projeto
- Gerenciar dependências de forma reproduzível com arquivos lock
Conceitos-chave
- fundamentos do pip
- requirements.txt
- Poetry
- Conda
- gerenciador de pacotes uv
- pdm
- resolução de dependências
- arquivos lock
Depuração e Profiling
Depurador pdb, breakpoint(), módulo logging, cProfile, line_profiler e análise de traceback
Objetivos
- Depurar código Python sistematicamente usando ferramentas nativas
- Perfilar aplicações para identificar gargalos de desempenho
Conceitos-chave
- depurador pdb
- breakpoint()
- módulo logging
- cProfile
- line_profiler
- análise de traceback
- depuração via IDE
6 · Tópicos Especialistas10 tópicos
Internos do CPython
GIL, contagem de referências, coleta de lixo, bytecode e extensões C
Objetivos
- Explicar as implicações do GIL
- Ler a saída de bytecode
Conceitos-chave
- GIL
- contagem de referências
- módulo gc
- bytecode (dis)
- extensões C
- PyObject
- gerenciamento de memória
Padrões de Concorrência
threading, multiprocessing, concurrent.futures e padrões de coordenação assíncrona
Objetivos
- Escolher entre threading, multiprocessing e asyncio
Conceitos-chave
- threading.Thread
- multiprocessing.Process
- concurrent.futures
- ThreadPoolExecutor
- ProcessPoolExecutor
- locks/semáforos
- asyncio.gather vs TaskGroup
Otimização de Desempenho
Profiling, caching, complexidade algorítmica, otimização de memória e dicas de Cython
Objetivos
- Perfilar e otimizar código Python
- Reduzir o consumo de memória
Conceitos-chave
- cProfile
- line_profiler
- functools.lru_cache
- slots
- intern()
- memory_profiler
- complexidade algorítmica
Multiprocessing
Classe Process, Pool e map, memória compartilhada, Queue e Pipe, fork vs spawn e ProcessPoolExecutor
Objetivos
- Implementar processamento paralelo com multiprocessing
- Escolher entre os métodos de inicialização fork e spawn
Conceitos-chave
- classe Process
- Pool e map
- memória compartilhada
- Queue e Pipe
- sincronização de processos
- fork vs spawn
- ProcessPoolExecutor
Extensões C para Python e ctypes
Escrita de extensões C com ctypes, cffi e a API Python/C para código de desempenho crítico
Objetivos
- Construir uma extensão C usando ctypes
- Explicar a semântica de memória da API Python/C
Conceitos-chave
- ctypes
- cffi
- API Python/C
- PyArg_ParseTuple
- Py_INCREF/DECREF
- modo ABI do CFFI
- Cython
Protocolos e Transportes asyncio Personalizados
Implementação de transportes e protocolos asyncio personalizados para comunicação de rede de baixo nível
Objetivos
- Implementar um Protocol e Transport asyncio personalizado
- Explicar o modelo de callback e agendamento do loop de eventos
Conceitos-chave
- asyncio.Protocol
- asyncio.Transport
- create_connection
- BufferedProtocol
- StreamReader
- internos do loop de eventos
Segurança e Desserialização Segura
Identificação e mitigação de vulnerabilidades de desserialização em Python com pickle, yaml e eval
Objetivos
- Identificar padrões inseguros de desserialização e suas explorações
- Aplicar alternativas seguras nos contextos de pickle, yaml e eval
Conceitos-chave
- segurança do pickle
- yaml.safe_load
- injeção via eval
- __reduce__
- execução restrita
- validação de entrada
Profiling de Memória e Detecção de Vazamentos
Uso de memory_profiler, tracemalloc e objgraph para identificar e corrigir vazamentos de memória em aplicações Python
Objetivos
- Utilizar tracemalloc e objgraph para localizar vazamentos de memória
- Aplicar __slots__ e referências fracas para reduzir a pressão de memória
Conceitos-chave
- tracemalloc
- memory_profiler
- objgraph
- referências fracas
- ciclos de referência
- __slots__
- gc.get_referrers
Observabilidade Python e OpenTelemetry
Instrumentação de aplicações Python com OpenTelemetry para rastreamento distribuído, métricas e logs
Objetivos
- Instrumentar um serviço Python com spans e métricas do OpenTelemetry
- Configurar propagação de contexto entre fronteiras assíncronas
Conceitos-chave
- OpenTelemetry SDK
- spans e traces
- propagação de contexto
- exportador OTLP
- instrumentação automática
- métricas personalizadas
- logging estruturado
Manipulação de AST Personalizada
Uso do módulo ast do Python para analisar, inspecionar e transformar código para análise estática e geração de código
Objetivos
- Escrever um NodeVisitor para coletar métricas de uma AST Python
- Implementar um NodeTransformer para reescrever chamadas de função
Conceitos-chave
- ast.parse
- ast.NodeVisitor
- ast.NodeTransformer
- ast.unparse
- geração de código
- linters
- transformações tipo macro
Níveis: Júnior, Pleno, Sênior e Especialista
Explique com suas palavras
Corrigido por IA · sem cadastro · 1 perguntaSem alternativas para chutar: você escreve, a IA corrige com a rubrica do tópico e diz em que nível sua resposta está.
Já estuda Python?
A avaliação mede tópico por tópico, e o plano pula o que você já sabe.
Aberto para ler. A conta só é necessária para ser medido.
Perguntas frequentes
Por onde começar a estudar Python?
Comece por Fundamentos: Sintaxe Python, Variáveis e Tipos de Dados e Fluxo de Controle. O mapa ordena os tópicos pelo que depende de quê, então cada um prepara o seguinte.
Quanto tempo leva uma avaliação completa de Python?
Uma avaliação completa desta trilha leva cerca de 45 minutos. O tempo de estudo depende de onde você começa; o diagnóstico mostra quais tópicos você pode pular.
Preciso de conta para usar esta página?
Não. O mapa, os objetivos e os conceitos-chave são abertos. A conta só é necessária para ser medido, ver seu gap por tópico e receber um plano.