Programação em Python
para analistas de redes

Sobre o Curso


Phyton é uma poderosa linguagem de programação, de fácil aprendizado e com enorme interação com universo das redes de dados. Toda uma infraestrutura distribuída em nuvem, que disponibiliza serviços digitais a milhares de usuários pode ter sua operação de forma orquestrada e gerenciada pelo uso deste recurso.

O conhecimento desta linguagem de programação pode colocar o profissional de redes atual em níveis elevados, projetando carreiras promissoras e trazendo a evolução que antes era distante do profissional técnico, que apenas operava e configurava os equipamentos de uma rede. Esta linguagem também aproxima profissionais de redes e desenvolvimento; duas funções que sempre foram bem distantes no cenário dos serviços digitais. E esta interação amplia os horizontes de uma empresa, trazendo performance e melhoria contínua na qualidade dos serviços de conectividade oferecidos.
 
O material que adotamos para o curso, é o livro Programação de redes com Python, que aborda todos os tópicos clássicos de redes, inclusive protocolos de rede, dados e erros de rede, email, arquitetura de servidores, aplicativos HTTP e web, mais as atualizações de Python 3.

Além deste o participante também receberá alguns complementos relacionados aos primeiros contatos com a ferramenta e sua instalação no computador.

Alguns dos tópicos focados neste treinamento são os seguintes:

  • Extensa abordagem do suporte atualizado ao SSL em Python 3.
  • Como criar seu próprio loop de I/O assíncrono.
  • Visão geral do framework “asyncio” que vem com Python 3.4.
  • Como o framework web Flask conecta URLs ao código Python.
  • Como os scripts e a falsificação de solicitações entre sites podem ser usados no ataque a seu site e como se proteger deles.
  • Como um framework web full-stack como o Django pode automatizar o trajeto de ida e volta entre seu banco de dados e a tela.
  • Abordagem atualizada das camadas de protocolos de rede e das codificações de dados.

 

O livro Programação de Redes com Python, Guia abrangente de programação e gerenciamento de redes com Python 3 de Brandon Rhodes e John Goerzen será entregue à todos os participantes do treinamento.

Conteúdo Programático

Parte 1 – Introdução à programação em Python

Iniciando com Python
A linguagem Python
De Python 2 para Python 3
Diversos interpretadores e mesma linguagem
Preparando o ambiente
Primeiro passo: abra o interpretador
Primeiras explorações
Próximos passos – Compilação, etc.

Aprendendo Python na prática: números e strings
Números
Como manipular texto em Python
Criando e manipulando texto: strings
Como Python representa strings internamente?

Manipulações básicas
Uma calculadora: o exemplo revisado mais comum
Pegando dados no terminal
Comparações: maior, menor, igual e outras
Condicionais: if, elif & else
Operadores lógicos
Loops com while
Primeira estrutura de dados: lista
Loop pythônico com for e listas
Percorrendo intervalos de zero até n com range()
Enumerando coleções com for e função enumerate
Declarando funções: comando def
Valores padronizados de argumentos
Parâmetros nomeados
Recebendo um número arbitrário de argumentos: packing & unpacking
Usando código já pronto: importando módulos

Primeiro programa: download de dados
Criando uma função para download na web
Primeiro programa completo
Definindo funções main
Realizando o download
Extraindo arquivos de dados e metadados

Validaçãode dados
Montando um modelo conceitual usando estruturas de dados
Dicionários: fundação da linguagem
Montando o dicionário de metadados
Adicionando e removendo elementos em uma lista
Iterando dicionários: vendo valores e chaves
Tuplas: sequências imutáveis
Explorando os dados que coletamos
Importância da estrutura de Dados

Classes e objetos Pythônicos
Expressando o domínio em classes
Definindo classes: primeiro passo
Criando objetos: métodos construtores
Classes documentadas: docstrings
Métodos: adicionando comportamentos ao objeto
Herança simples em Python
Atributos de classes: compartilhados entre todas instâncias
Métodos estáticos e de classe: usando mais as classes
Encapsulamento Pythônico com a função property
Herança múltipla: herdando de várias classes
DuckTyping?

Tratando erros e exceções
Tratando várias possíveis exceções em um mesmo bloco
Exceções e Python 3.3+
Executando código se nenhuma exceção for levantada
Comando raise: levantando exceções

 

Parte 2 – Python em redes

Introdução do Phyton em redes
Usando o Python 3
Melhorias desta edição
Playground da rede

Introdução à rede cliente-servidor
Os alicerces: pilhas e bibliotecas
Camadas de aplicativos
Conversando com um protocolo
Comunicação de rede bruta
Um suportando o outro até o fim
Codificação e decodificação
Internet Protocol
Endereços IP
Roteamento
Fragmentação de pacotes
Aprendendo mais sobre o IP

UDP
Números de porta
Soquetes
Vinculando-se a interfaces
Fragmentação no UDP
Opções dos soquetes
Broadcast

TCP
Como o TCP funciona
Quando usar o TCP
O que são os soquetes TCP
Cliente e servidor TCP simples
Vinculando-se a interfaces
Deadlock
Conexões fechadas, conexões semiabertas
Usando fluxos TCP como arquivos

Nomes de soquete e o DNS
Nomes de host e soquetes
Resolução de endereços moderna
Protocolo DNS

Dados e erros de rede
Bytes e strings
Framing e aspas
Pickles e formatos autodelimitadores
XML e JSON
Compactação
Exceções de rede

TLS/SSL
O que o TLS não protege
O que pode dar errado?
Gerando certificados
Deixando o TLS para terceiros
Contextos padrão de Python 3.4
Codificações escolhidas a dedo e segurança futura perfeita
Suporte dos protocolos ao TLS
Conhecendo detalhes

Arquitetura do servidor
Algumas palavras sobre implantação
Protocolo simples
Servidor de thread única
Servidores com várias threads e processos
Servidores assíncronos
Execução do inetd

Caches e filas de mensagens
Usando o Memcached
Hashing e Sharding
Filas de mensagens

Clientes HTTP
Bibliotecas clientes Python
Portas, criptografia e framing
Métodos
Caminhos e hosts
Códigos de status
Cache e validação
Codificação de conteúdo
Negociação de conteúdo
Tipo de conteúdo
Autenticação HTTP
Cookies
Conexões, sua reutilização e o httplib

Servidores HTTP
WSGI
Frameworks de servidores assíncronos
Proxy de encaminhamento e proxy reverso
Quatro arquiteturas
Plataformas como serviço
Padrões de GET e POST e a questão do REST
WSGI sem um framework

World Wide Web
Hipermídia e URLs
Hypertext Markup Language
Lendo e gravando em um banco de dados
Aplicativo web inadequado (em Flask
Dança dos formulários e métodos HTTP
Aplicativo de pagamentos no Django
Escolhendo um framework web
WebSockets
Web Scraping

Construindo e analisando emails
Formato dos emails
Construindo um email
Adicionando HTML e multimídia
Adicionando conteúdo
Analisando emails
Percorrendo as partes MIME
Codificações de cabeçalhos
Analisando datas

SMTP
Clientes de email versus serviços de webmail
Como o SMTP é usado
Introduzindo a biblioteca SMTP
Manipulação de erros e depuração da comunicação
Obtendo informações a partir de EHLO
Usando o Secure Sockets Layer e o Transport Layer Security
SMTP autenticado
Dicas sobre o SMTP

POP
Compatibilidade do servidor POP
Conexão e autenticação
Obtendo informações da caixa de correio
Baixando e excluindo mensagens

IMAP
Entendendo o IMAP em Python

Telnet e SSH
Automação da linha de comando
Telnet
SSH: o shell seguro

FTP
O que usar em vez do FTP

RPC
Recursos do RPC

Pré-Requisitos

Pré-Requisitos

  • Ser usuário comum de serviços digitais, tais como Internet, Email, redes sociais.
  • Conhecimentos básicos de redes TCP/IP.
 

Público Alvo

Público Alvo

  • Profissionais inseridos nos contextos de redes, seja em estudos ou atuando profissionalmente.
  • Especialistas em conectividade que desejam ampliar horizontes de conhecimentos e avançar em suas carreiras.
  • Estudantes de engenharia que tenham como objetivo compreender as novas tecnologias responsáveis pela orquestração de seus ambientes automatizados.
  • Programadores, iniciantes ou não, cuja necessidade ou desejo seja trilhar um caminho no mundo das redes de dados e conectividade.
 

Carga Horária

Carga Horária

  • 40 horas

Turmas

Turmas

  • Noturno: 10 dias (seg a sex) das 18hs às 23hs.
  • Turmas: Presencial e Online Ao Vivo
 
 

Em Breve! Está interessado?

Avisaremos quando uma nova turma estiver disponível!

Faça sua inscrição na turma acima desejada e, depois de preencher seu cadastro, opte pelo pagamento por boleto.
Volte aqui e escolha sua forma de pagamento com o desconto da campanha #FiqueEmCasa

                           

 Fique tranquilo que você será direcionado para uma página segura de pagamento da Cielo. 
 
 
 
 

© 4Bios

by nerit