Pular para o conteúdo

Python Roadmap

Um guia prático e progressivo para aprender Python e construir aplicações de backend.

  • Algoritmos e resolução de problemas
  • Pseudocódigo
  • Linguagens compiladas vs interpretadas
  • Variáveis e constantes
  • Tipos de dados
  • Comentários
  • Entrada e saída no terminal
  • Condicionais
  • Estruturas de repetição
  • Funções
  • Instalação do Python
  • REPL
  • Ambientes virtuais (venv) e pip
  • uv
  • Editor com Pylance ou Pyright
  • Indentação e blocos
  • Tipos básicos: int, float, str, bool, None
  • Conversão de tipos
  • Operadores
  • f-strings
  • if, elif e else
  • for com range, enumerate e zip
  • while
  • match (pattern matching estrutural)
  • Parâmetros posicionais e nomeados
  • Valores padrão
  • *args e **kwargs
  • Funções como objetos e lambda
  • Escopo e closures
  • Listas e tuplas
  • Dicionários e conjuntos
  • Fatiamento
  • List, dict e set comprehensions
  • Módulo collections (Counter, defaultdict, deque, namedtuple)
  • Strings e bytes
  • Classes, instâncias e self
  • Atributos de classe e de instância
  • Herança e super()
  • Métodos especiais (dunder methods)
  • @property, @classmethod e @staticmethod
  • Dataclasses
  • Protocolos e classes abstratas (abc)
  • try, except, else e finally
  • Exceções da biblioteca padrão
  • Exceções customizadas
  • Gerenciadores de contexto (with)
  • import e organização em módulos
  • Pacotes e __init__.py
  • if __name__ == "__main__"
  • pyproject.toml
  • Publicação no PyPI
  • Anotações básicas
  • list[int], dict[str, int], X | None
  • TypedDict, Protocol e generics
  • Verificação estática com mypy ou Pyright
  • Iteradores e geradores (yield)
  • Decorators
  • Context managers customizados
  • functools e itertools
  • Descritores e metaclasses (conceitual)
  • O GIL e o que ele significa
  • threading para tarefas de I/O
  • multiprocessing e concurrent.futures
  • asyncio, async e await
  • Python sem GIL (free-threaded)
  • pathlib e os
  • json e csv
  • datetime e zoneinfo
  • re (expressões regulares)
  • logging
  • argparse
  • sqlite3
  • pytest: testes, fixtures e parametrização
  • Mocks com unittest.mock
  • Cobertura com coverage
  • Ruff (formatação e lint)
  • pre-commit
  • Métodos, status codes e cabeçalhos
  • REST e boas práticas de API
  • Cliente HTTP com httpx ou requests
  • FastAPI e Pydantic
  • Django e Django REST Framework
  • Flask
  • WSGI vs ASGI
  • Uvicorn e Gunicorn
  • SQL e modelagem relacional
  • SQLAlchemy (Core e ORM)
  • Migrações com Alembic
  • Django ORM
  • Redis
  • Autenticação vs autorização
  • Hash de senhas (bcrypt, Argon2)
  • JWT
  • OAuth 2 e OIDC
  • Variáveis de ambiente e gestão de segredos
  • OWASP Top 10
  • Celery
  • Filas com Redis e RabbitMQ
  • Kafka
  • Logging estruturado
  • Métricas com Prometheus
  • Rastreamento distribuído com OpenTelemetry
  • Monitoramento de erros (Sentry)
  • Docker para aplicações Python
  • Docker Compose
  • CI/CD com GitHub Actions
  • Deploy em cloud (AWS, GCP, Azure, Render, Railway)
  • Performance e profiling (cProfile)
  • Gerenciamento de memória
  • Extensões em C e Rust (PyO3)
  • Arquitetura de aplicações (camadas, hexagonal)
  1. Domine a base: estruturas de dados, funções, classes e exceções
  2. Use type hints e escreva testes com pytest desde o início
  3. Construa uma API com FastAPI, Pydantic e SQLAlchemy
  4. Adicione autenticação, logging estruturado e tarefas assíncronas
  5. Empacote com Docker, publique com CI/CD e observe com OpenTelemetry

Foque em projetos reais ao invés de só teoria.

Sugestões:

  • Script que automatiza uma tarefa chata do seu dia a dia
  • CLI com argparse e testes
  • API REST completa com FastAPI, PostgreSQL e autenticação
  • Bot para Discord ou Telegram

🔥 Regra de ouro: Aprenda - Aplique - Ensine - Repita