Skip to content

rochacbruno/python-base

Repository files navigation

Python Expert

Um resumo dos treinamentos contidos no Python Expert.

  1. BASE - Conceitos fundamentais que formam a base para iniciar com Python, neste treinamento além de toda a base fundamental teórica tem muito execício prático e a criação de um projeto de backend em terminal completo com interfaces, banco de dados e testes.

  2. WEB - Python focado no desenvolvimento de backend para web e APIs usando os principais frameworks do mercado como Django, Flask e FastAPI, neste treinamento criaremos um mesmo projeto cobrindo as principais necessidades do mercado web e usando os 3 principais frameworks.

  3. Automação - Python com foco em automação de operações em ambientes DevOps, Ci, Cloud, Testes, Qualidade de Software, neste treinamento falaremos sobre sockets, subprocessos, code coverage, comunicação com cloud providers e módulos Ansible, análise de performance e criação de wrapers para APIs.

  4. Engineer - Para quem quer ir além da base, neste módulo vamos explorar conceitos avançados de Python, async, metaprogramação, descritores, criaremos nosso próprio framework e falaremos sobre inspeção de objetos e hooks.

Python BASE

Você está iniciando o Python BASE que é o primeiro passo para começar a sua carreira em desenvolvimento, este treinamento é pensado para pessoas que nunca tiveram contato com programação antes, ou que já possuem algum conhecimento em alguma outra linguagem e precisam aprender Python e vamos desde a teoria base do que é programação, instalação e configuração do ambiente, escolha de um editor de código e criação do seu primeiro script até a criação de vários pequenos programas que vão abordar as principais funcionalidades do Python e vamos também criar um projeto completo do zero com as melhores práticas do mercado.

Duração estimada em horas: 64h


Conteudo:

Day 1 - Iniciando no mundo da programação

Neste capítulo você terá uma introdução ao treinamento e aos conceitos básicos de programação e a linguagem Python, também aprenderá como instalar e preparar um ambiente para programar.

  1. Introdução
  2. Programação e Linguagens
  3. Como é organizada a plataforma Python
  4. Instalação e preparação do ambiente
  5. Repositório, git e seu primeiro script
  6. Variáveis de ambiente
  7. Tipos de instruções
  8. Organização de blocos de código
  9. Ambientes virtuais, instalação de pacotes e Ipython

Duração: 5h

Day 2 - Tipos e estruturas de dados

Neste capítulo você conhecerá os tipos e estruturas de dados do Python e execicios práticos para entender como manipulamos informações.

  1. Protocolos e Tipos de dados primitivos
  2. Float, Bool, None
  3. Textos, Caracteres e Strings
  4. Formatação de texto
  5. Tipos de dados compostos e Tuplas
  6. Listas
  7. Exercicio com Listas, Tuplas, Loops e Condicionais
  8. Sets (conjuntos)
  9. Dicionários
  10. Exercicio: Refatorando nosso Hello World com dicionários

Duração: 7h

Day 3 - Input, Output, Processamento

Nesta parte do treinamento o foco é obter informações do usuário, aplicar algortimo para processar e persistir a informação em arquivos.

  1. Stdin e Stdout
  2. Leitura de inputs do stdin e de argumentos do terminal
  3. Exercicio de criação de uma calculadora infix com input e argumentos
  4. Filesystem - Manipulação de arquivos e pastas
  5. Exercicio - Criando um bloco de anotações no terminal
  6. Tratamento de Erros LBYL e EAFP
  7. Logging - Formatando e gravando logs
  8. Algoritmos e lógica - Condicionais, Operadores compostos
  9. Condicionais ternárias e inline
  10. Repetições com for, while e comprehensions.
  11. Exercicio: Sistema de Reservas com iterators, textos, inputs e arquivos de texto.

Duração: 10h

Day 4 - Funções, Debugging e seu primeiro projeto.

Neste capítulo terá muito conteúdo sobre funções com exercicios práticos e em seguida aprenderá técnicas e ferramentas para depurar erros do programa e em seguida aprenderá a criar seu próprio projeto com as melhores práticas.

  1. Funções builtin uteis - sum, len, vars, min, max, filter, map
  2. Funções úteis da biblioteca padrão - random, pprint, itertools, functools, smtplib etc
  3. Definindo suas próprias Funções e aplicando fórmula matemática
  4. Anatomia detalhada de funções - assinatura, argumentos, retornos
  5. Escopos e namespaces e argumentos coringas
  6. Funções lambda
  7. Exercicio com lambda, recursão e introdução a programação funcional
  8. Debugging - Técnicas e ferramentas para encontrar erros.
  9. O Sistema de imports do Python
  10. Criando um repositótio para seu primeiro projeto e configurando o VSCode
  11. Estrutura de pastas, build e install do projeto
  12. Entry points com console scripts
  13. Gestão de dependencias e Makefile

Duração: 12h

Day 5 - Qualidade de Software e de Código

Nesta parte focamos em testes, integração continua e qualidade do projeto incluindo testes unitários, testes de integração e adequação com code style além de uma introdução a documentação de software e empacotamento.

  1. Introdução a testes + Doctest, Pytest e Decorators
  2. Diferençá entre unit e integration tests, configuração do Pytest e CI com Github Actions
  3. Boas práticas em testes e test reports
  4. Qualidade de código, linters e auto formatação
  5. Escolhendo boas ferramentas e libraries
  6. Introdução ao TDD
  7. Introdução a persistencia de dados e testes
  8. Documentação de projetos, Empacotamento e Distribuição no PyPI

Duração: 10h

Day 6 - Orientação a Objetos

Uma das principais caracteristicas da linguagem Python é a aplicação da Orientação a Objetos seguindo um modelo que é um pouco diferente do tradicional e muito flexivel, neste capítulo falaremos sobre toda a base da orientação a objetos com Python.

  1. Os paradigmas de programação
  2. Introdução a Orientação a Objetos
  3. Inicialização de instâncias
  4. Os 4 pilares da O.O: Abstração, Herança, Polimorfismo, Encapsulamento
  5. Encapsulamento com properties
  6. Python Data Model e Protocolos
  7. Python Moderno, Type Annotations e Dataclasses
  8. Dataclass abstrata, Enums, field e super()
  9. Structural Pattern Matching

Duração: 7h

Day 7 - Consumindo e armazenando dados.

Na maior parte dos programas sempre teremos que carregar e armazenar dados e para isso precisamos aprender a usar bancos de dados SQL e consultar APIs.

  1. Modelangem de dados com dataclasses e Pydantic
  2. Prova de conceito de um ORM
  3. Introdução a SQL e SQLite
  4. SQL Alchemy
  5. SQL Model
  6. Convertendo software legado para SQL
  7. Database Migrations e Consumindo API Rest
  8. Finalização do Projeto e desafios

Duração: 8h

Day 8 - Demonstrações

Nesta última parte do treinamento a intenção é fazer uma demonstração bastante breve a respeito das ferramentas e frameworks principais do mercado, o formato não será de aula mas sim de mão na massa, seguindo o mesmo projeto desenvolvido no treinamento vamos adicionar interfaces Gráfica (GUI), 2D (Pygame), terminal (TUI), web (html) e API (REST).

  1. Interface Gráfica para Desktop - Demonstração com Tk e Pysimplegui
  2. Interface 2D para games - Demonstração com Pygame
  3. Interface Gráfica para Terminal - Demonstração com Textual (game)
  4. Interface web com html - Demonstração com Flask
  5. Interface API com REST/Json - Demonstração com FastAPI

Duração: 5h