Sobre o instrutor:
Cientista de Dados, Head Coach e Escritor
Sobre o curso Data Science Descomplicada - Programação
Num mundo cada vez mais digitalizado e com uma influência cada vez maior de Inteligências Artificiais, compreender o que de fato é Ciência de Dados, Machine Learning e programação é não apenas uma grande porta de entrada para uma vasta gama de oportunidades de trabalho, mas também uma educação necessária para compreender o novo mundo em que estamos vivendo.
Esse é o segundo curso da série Data Science Descomplicada.
Nessa segunda parte exploraremos todos os conceitos de programação e computação utilizados por um cientista de dados - evolução, componentes e arquitetura de computadores, funcionamento da internet, redes e websites, definição e diferença entre linguagens de programação, lógica de programação, as principais estruturas de dados e algoritmos, Linux e SQL (com parte prática), NoSQL, Data Warehouses e Data Lakes, APIs e REST, Git, Metodologias Ágeis e muito mais!
***Acesse o curso “Data Science Descomplicada - Matemática”, a primeira parte para você ver todos os conceitos matemáticos necessários para cientistas de dados ;)
O que você aprenderá
- Todos os conceitos de computação e programação necessários para Cientistas de Dados iniciantes solidificarem sua carreira na área;
- Entender o funcionamento da internet e dos computadores;
- Compreender como funcionam as linguagens de programação, lógica de programação e as principais estruturas de dados;
- Obter uma visão geral de ferramentas utilizadas por cientistas de dados, como Git, Docker, CI/CD, TDD e Metodologia Ágil;
- Aprender a utilizar o sistema Linux, bancos de dados, queries SQL e APIs.
Requisitos
- Matemática de Ensino Médio é recomendável, mas não essencial
- Computador (Windows, Mac OS ou Linux) com acesso à Internet para melhor experiência de aprendizagem
Para quem é este curso
- Pessoas que desejam solidificar seus conhecimentos em computação e programação;
- Profissionais (principalmente de áreas não-exatas) que desejam migrar para a área de Tecnologia e Ciência de Dados;
- Entusiastas de Ciência de Dados e que desejam ter um conhecimento mais profundo sobre o tema.
Introdução
- Motivação
- Para quem é o curso
- Estrutura do Curso
Computadores
- Computadores e Internet - Introdução
- Computadores
- Geração de computadores
- Sistemas Binário e Hexadecimal
- Arquitetura de um computador
- Placa Mãe
- Processadores
- Memórias
- Periféricos
- Comparação entre Computadores
- Software, Hardware e Firmware
Internet
- O que é a internet?
- Endereço IP
- Protocolos
- Modelo OSI
- Redes
- Wireless, Bluetooth e 4G
- Criptografia
- Proxy, VPN e Firewall
- Como funcionam os websites?
- Navegadores e Cookies
- Deep Web e Dark Web
- Recursos - Computadores e Internet
- Exercícios - Computadores e Internet
Linguagens de Programação
- Linguagens de Programação - Introdução
- Como funciona a programação?
- Nível de linguagens
- Compilação e Interpretação
- Tipagem
- Imperativa e Declarativa
- Estruturada e Orientada a Objetos (OOP)
- Procedural e Funcional
- Multiparadigma
- Recursos - Linguagens de Programação
- Exercícios - Linguagens de Programação
Lógica de Programação
- Lógica de Programação - Introdução
- Variáveis
- Operadores
- Estruturas de Controle
- Vetores e Matrizes
- Vetorização
- Repl
- Ponteiros
- Funções
- Escopo
- Modularização e IO
- Recursos - Lógica de Programação
- Exercícios - Lógica de Programação
Estruturas de Dados
- Estruturas de Dados e Algoritmos - Introdução
- Os 3 Pilares da Programação
- Notação Big O
- Estruturas de Dados
- Arrays
- Linked Lists
- Hash Tables
- Stacks e Queues
- Trees
- Binary Trees
- Binary Search Trees
- Heaps
- Graphs
Algoritmos
- Algoritmos: Sorting
- Algoritmos: Sorting (visualização)
- Algoritmos: Recursão
- Algoritmos: Searching (Linear Search e Binary Search)
- Algoritmos: Searching (DFS e BFS)
- Recursos - Estruturas e Algoritmos
- Exercícios - Estruturas e Algoritmos
Linux
- Linux Introdução
- O que é um sistema operacional?
- VM e Dual Boot
- História do Linux
- Comparativo Windows vs Mac vs Linux
- Sistema de Arquivos (FHS)
- Terminal - Comandos Essenciais
- Terminal - Manipulação de Arquivos
- Terminal - Busca e Manipulação avançada
- Terminal - Download e Instalação de Softwares
- Terminal - Permissões e Script Shell
- Terminal - Desempenho e Informações do sistema
- Terminal - Sessão Remota
- Recursos - Linux
Banco de Dados
- Banco de Dados - Introdução
- RDBMS e CRUD
- SQL
- Joins
- SQL: Prática no MySQL
- No-SQL
- ACID
- Teorema CAP
- BASE
- OLAP x OLTP
- ETL
- DWH x Data Lake x Data Mart
- Modelo ER
- Modelagem Dimensional
- Star, Snowflake e Galaxy Schema
- MongoDB
- Artigo - Neo4j
- Recursos - Banco de Dados
APIs
- APIs - Introdução
- O que é uma API?
- URI, URL e URN
- XML vs JSON vs YAML
- Métodos HTTP
- REST e RESTful API
- Status Codes
- Exemplo de API (Flask, Mongo, cURL e Postman)
- Identificação, Autenticação e Autorização
- Tokens
- Exercícios - APIs
Desenvolvimento de Software
- Desenvolvimento de Software - Introdução
- Git
- Metodologia Ágil
- TDD (Test Driven Development)
- Níveis de Teste
- Tipos de Teste
- DevOps
- Regex
- Markdown
- LaTeX
- Recursos - Desenvolvimento de Software
- Encerramento do curso