Add study notes: 22 areas documented by Diego IA
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# Plano de Estudos — Project-Based Learning
|
||||
|
||||
_Fonte: https://github.com/practical-tutorials/project-based-learning_
|
||||
|
||||
---
|
||||
|
||||
## 📊 Visão Geral
|
||||
|
||||
Repositório com **671 linhas** de tutoriais práticos distribuídos em **22 linguagens/áreas**.
|
||||
|
||||
## 🥇 Prioridades (para o contexto Mundo Telecom)
|
||||
|
||||
| Prioridade | Área | Motivo |
|
||||
|------------|------|--------|
|
||||
| 🔴 **1** | **Python** | Automação, scraping, análise de editais, scripts de infra |
|
||||
| 🔴 **2** | **JavaScript/React** | Site institucional, dashboards, apps web |
|
||||
| 🔴 **3** | **Go** | Ferramentas de CLI, servidores eficientes, Docker/k8s |
|
||||
| 🟡 **4** | **HTML/CSS** | Landing pages, email marketing |
|
||||
| 🟡 **5** | **Infra/Redes** | TCP/IP, servidores concorrentes, brokers MQTT |
|
||||
| 🟢 **6** | **Bancos de Dados** | Do zero: Redis, SQLite, key-value stores |
|
||||
| 🟢 **7** | **Segurança** | Criptografia, autenticação, OAuth |
|
||||
|
||||
---
|
||||
|
||||
## 📚 Trilhas de Estudo
|
||||
|
||||
### 🥇 Python
|
||||
|
||||
- [ ] Web scraper do zero
|
||||
- [ ] Bot para Telegram
|
||||
- [ ] CLI tool (click/typer)
|
||||
- [ ] REST API com FastAPI
|
||||
- [ ] Automação de planilhas/pdfs
|
||||
- [ ] Análise de dados com Pandas
|
||||
|
||||
### 🥇 JavaScript & React
|
||||
|
||||
- [ ] App Vanilla JS (weather, todo, TicTacToe)
|
||||
- [ ] React: Trello clone
|
||||
- [ ] React: Chat com WebSockets
|
||||
- [ ] React Native: ToDo App
|
||||
- [ ] Full stack: Node + React + MongoDB
|
||||
|
||||
### 🥇 Go
|
||||
|
||||
- [ ] CLI tool com Go
|
||||
- [ ] HTTP server do zero
|
||||
- [ ] WebSocket chat
|
||||
- [ ] Docker/gRPC tools
|
||||
|
||||
### 🟡 HTML/CSS
|
||||
|
||||
- [ ] Landing page responsiva
|
||||
- [ ] Calculadora em JS puro
|
||||
- [ ] Jogo Snake
|
||||
- [ ] Loading screens animados
|
||||
|
||||
### 🟡 Infra & Redes
|
||||
|
||||
- [ ] Pilha TCP/IP do zero
|
||||
- [ ] Servidores concorrentes (threads, event-driven)
|
||||
- [ ] Broker MQTT
|
||||
- [ ] Container Linux em 500 linhas
|
||||
- [ ] Key-value store (Redis-like)
|
||||
|
||||
---
|
||||
|
||||
## 📝 Progresso
|
||||
|
||||
_Atualizado automaticamente conforme os estudos avançam._
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# Additional Resources — Estudo
|
||||
|
||||
---
|
||||
|
||||
## 📚 Plataformas
|
||||
|
||||
| Recurso | Tipo | Foco |
|
||||
|---------|------|------|
|
||||
| [React Redux Links](https://github.com/markerikson/react-redux-links) | Curadoria | React + Redux |
|
||||
| [Udemy](https://www.udemy.com/) | Cursos pagos | Geral |
|
||||
| [Full Stack Python](https://www.fullstackpython.com/) | Tutorial | Python full stack |
|
||||
| [Node School](https://nodeschool.io/) | Workshops | Node.js |
|
||||
| [ScotchIO](https://scotch.io/) | Tutoriais | Web dev |
|
||||
| [Exercism](http://www.exercism.io/) | Prática | 67+ linguagens |
|
||||
| [Egghead.io](http://www.egghead.io/) | Vídeo aulas | React, Angular, TS |
|
||||
| [Michael Herman](http://mherman.org/) | Blog | Flask, Docker, DevOps |
|
||||
| [Thinkster](http://thinkster.io) | Tutoriais | Full stack |
|
||||
| [Enlight](https://enlight.nyc/) | Projetos | Web dev, Python |
|
||||
| [Hack Club](https://hackclub.com/workshops/) | Workshops | Iniciantes |
|
||||
| [CodeCrafters](https://codecrafters.io/) | Desafios | Redis, Git, SQLite do zero |
|
||||
|
||||
## 🎯 Recomendado
|
||||
|
||||
- **Full Stack Python**: complementa nosso estudo de Flask/Django
|
||||
- **CodeCrafters**: reconstruir Redis, Git, SQLite (mão na massa)
|
||||
- **Node School**: aprender Node.js (complementar ao JS/React)
|
||||
- **Exercism**: praticar Rust, Go, Elixir (coding challenges)
|
||||
@@ -0,0 +1,56 @@
|
||||
# Clojure, Dart, Elixir, Erlang, F# — Estudo
|
||||
|
||||
---
|
||||
|
||||
## 🟢 Clojure
|
||||
|
||||
**Paradigma:** Lisp funcional na JVM
|
||||
**Tutoriais:**
|
||||
- Twitter Bot: integração com API, streaming
|
||||
- Spell-Checker: algoritmos de distância (Levenshtein)
|
||||
- JIRA integration: REST APIs, Atlassian Connect
|
||||
- Tetris in ClojureScript: compila pra JS
|
||||
|
||||
**Conceitos:** S-expressions, imutabilidade, macros, REPL-driven development
|
||||
|
||||
---
|
||||
|
||||
## 🟢 Dart / Flutter
|
||||
|
||||
**Paradigma:** OOP, compila nativo + web
|
||||
**Tutoriais:** 13 clones de apps (Amazon, Instagram, TikTok, Zoom, Netflix, WhatsApp, etc)
|
||||
**Stack:** Flutter framework, Dart language
|
||||
|
||||
**Conceitos:** Widget tree, hot reload, single codebase (iOS + Android + Web), Material Design
|
||||
|
||||
**Aplicação MT:** Se um dia precisar de app mobile — Flutter é o caminho
|
||||
|
||||
---
|
||||
|
||||
## 🟢 Elixir
|
||||
|
||||
**Paradigma:** Funcional, baseado em Erlang/BEAM
|
||||
**Tutoriais:**
|
||||
- Chat App com Phoenix (WebSockets, pub/sub)
|
||||
- Link Shortener com Phoenix + Mnesia (banco embutido)
|
||||
|
||||
**Conceitos:** GenServers, Supervisors (tolerante a falhas), Phoenix Channels (WebSocket em tempo real), BEAM VM
|
||||
|
||||
---
|
||||
|
||||
## 🟢 Erlang
|
||||
|
||||
**Paradigma:** Funcional, concorrente por natureza
|
||||
**Tutoriais:**
|
||||
- ChatBus: multi-user chat com OTP
|
||||
- Chat com Cowboy (HTTP server) + Bullet (WebSocket)
|
||||
|
||||
**Conceitos:** OTP (Open Telecom Platform), Actor model, "let it crash" philosophy, hot code swapping
|
||||
|
||||
---
|
||||
|
||||
## 🟢 F#
|
||||
|
||||
**Paradigma:** Funcional-first no .NET
|
||||
**Tutorial:** Write your own Excel in 100 lines
|
||||
**Conceitos:** Type providers, pattern matching, computation expressions, .NET interop
|
||||
@@ -0,0 +1,18 @@
|
||||
# C# — Estudo
|
||||
|
||||
_Fonte: project-based-learning_
|
||||
|
||||
## 📚 Recursos
|
||||
|
||||
- RPG Game: OOP, classes, game loop
|
||||
- Rogue-like: procedural generation, tilemaps
|
||||
- Xamarin: mobile apps cross-platform (iOS + Android)
|
||||
- CoreWiki: ASP.NET Core + Razor Pages (CMS completo)
|
||||
|
||||
## 📝 Conceitos
|
||||
|
||||
- **.NET Ecosystem**: .NET Core (cross-platform) vs .NET Framework (Windows)
|
||||
- **ASP.NET Core**: MVC, Razor Pages, Minimal APIs
|
||||
- **Xamarin/MAUI**: Mobile cross-platform com C#
|
||||
- **Unity**: Game engine (não listado mas principal uso de C#)
|
||||
- **Entity Framework**: ORM para bancos relacionais
|
||||
@@ -0,0 +1,67 @@
|
||||
# Go — Estudo
|
||||
|
||||
_Fonte: project-based-learning_
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos Estudados
|
||||
|
||||
| Tutorial | Tópicos |
|
||||
|----------|---------|
|
||||
| [Build a CLI Tool](https://blog.alexellis.io/5-keys-to-a-killer-go-cli/) | CLI, flags, cobra |
|
||||
| [HTTP Server from Scratch](https://www.youtube.com/playlist?list=PLmxJgSxVWAMhG5YjL1XFPm5E5PAi-BXgZ) | net/http, routing |
|
||||
| [WebSocket Chat](https://gowebexamples.com/websockets/) | gorilla/websocket |
|
||||
| [Docker/gRPC Tools](https://github.com/miguellgt/grpc-go-course) | gRPC, protocol buffers |
|
||||
| [REST API with Gin](https://github.com/gin-gonic/gin) | Gin framework |
|
||||
| [Key-Value Store in Go](https://github.com/elliotchance/redismock) | Redis-like in Go |
|
||||
|
||||
## 🎯 Aplicações para Mundo Telecom
|
||||
|
||||
1. **CLI de administração** — scripts de infra em Go (mais rápido que Python)
|
||||
2. **Proxy/Servidor leve** — substituir scripts pesados
|
||||
3. **Ferramentas de deploy** — automação de containers
|
||||
4. **Monitoramento** — health checks, heartbeats
|
||||
|
||||
## 📝 Conceitos Aprendidos
|
||||
|
||||
### Go Core
|
||||
|
||||
- **Goroutines**: concorrência leve (não threads OS)
|
||||
- **Channels**: comunicação entre goroutines (CSP model)
|
||||
- **Interfaces**: duck typing, composição
|
||||
- **Structs**: tipos customizados, métodos
|
||||
- **Errors**: tratamento explícito (não exceptions)
|
||||
- **Packages**: módulos, `go mod`, GOPATH vs modules
|
||||
|
||||
### CLI com Go
|
||||
|
||||
- `flag` package ou cobra/viper para CLIs complexas
|
||||
- Compilação cross-platform: `GOOS=linux GOARCH=amd64 go build`
|
||||
- Binário único: zero dependências runtime
|
||||
- Ideal para tools de deploy, health check, backup
|
||||
|
||||
### Web em Go
|
||||
|
||||
- **net/http**: servidor HTTP padrão (rápido, estável)
|
||||
- **Gin**: framework web mais popular (similar Flask)
|
||||
- **Echo**: alternativo, mais leve
|
||||
- **gRPC**: comunicação entre microserviços (Protocol Buffers)
|
||||
|
||||
### Go vs Python para CLI
|
||||
|
||||
| Aspecto | Go | Python |
|
||||
|---------|-----|--------|
|
||||
| Binário | Único, estático | Precisa runtime |
|
||||
| Performance | ~40x mais rápido | Mais lento |
|
||||
| Concorrência | Goroutines nativas | threading/asyncio |
|
||||
| Simplicidade | Mais verboso | Mais conciso |
|
||||
| Ideal para | Ferramentas de sistema, servidores | Scripts, automação, data science |
|
||||
|
||||
## ✅ Progresso
|
||||
|
||||
- [x] Go Core (goroutines, channels, interfaces)
|
||||
- [x] CLI Tools em Go
|
||||
- [x] HTTP/Servidores com Go
|
||||
- [x] gRPC e microserviços
|
||||
- [ ] Projeto prático: CLI de monitoramento
|
||||
- [ ] Projeto prático: servidor HTTP concorrente
|
||||
@@ -0,0 +1,62 @@
|
||||
# HTML & CSS — Estudo
|
||||
|
||||
_Fonte: project-based-learning_
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos Estudados
|
||||
|
||||
| Tutorial | Conceito |
|
||||
|----------|----------|
|
||||
| [Loading Screen](https://medium.freecodecamp.org/how-to-build-a-delightful-loading-screen-in-5-minutes-847991da509f) | Animações CSS, UX |
|
||||
| [HTML Calculator](https://medium.freecodecamp.org/how-to-build-an-html-calculator-app-from-scratch-using-javascript-4454b8714b98) | DOM manipulation, CSS Grid |
|
||||
| [Snake Game](https://www.freecodecamp.org/news/think-like-a-programmer-how-to-build-snake-using-only-javascript-html-and-css-7b1479c3339e/) | Canvas, game loop |
|
||||
|
||||
## 🎯 Aplicações para Mundo Telecom
|
||||
|
||||
1. **Landing pages** institucionais (já fizemos!)
|
||||
2. **Email marketing** templates responsivos
|
||||
3. **Dashboards** com CSS moderno (Grid, Flexbox)
|
||||
4. **Componentes reutilizáveis** (cards, modais, forms)
|
||||
|
||||
## 📝 Conceitos Aprendidos
|
||||
|
||||
### CSS Moderno
|
||||
|
||||
| Técnica | Para que serve |
|
||||
|---------|----------------|
|
||||
| Flexbox | Layouts 1D (linha/coluna) |
|
||||
| Grid | Layouts 2D (tabelas complexas) |
|
||||
| Custom Properties (var) | Temas, design tokens |
|
||||
| Container Queries | Responsivo por componente |
|
||||
| @layer | Gerenciamento de especificidade |
|
||||
| :has() | Parent selector (finalmente!) |
|
||||
|
||||
### Animações
|
||||
|
||||
- `@keyframes` + `animation`: sequências complexas
|
||||
- `transition`: micro-interações (hover, focus)
|
||||
- `transform`: scale, rotate, translate (GPU acelerado)
|
||||
- `will-change`: hint de performance
|
||||
|
||||
### Responsividade
|
||||
|
||||
- Mobile-first: base mobile, `@media` pra desktop
|
||||
- Fluid typography: `clamp()`, `min()`, `max()`
|
||||
- Viewport units: dvh, svh, lvh (dynamic viewport height)
|
||||
|
||||
### Acessibilidade
|
||||
|
||||
- ARIA labels, roles, live regions
|
||||
- Contraste de cor (WCAG 2.1 AA/AAA)
|
||||
- Navegação por teclado (tabindex, focus management)
|
||||
- `prefers-reduced-motion` para animações
|
||||
|
||||
## ✅ Progresso
|
||||
|
||||
- [x] CSS Moderno (Grid, Flexbox, Container Queries)
|
||||
- [x] Animações e Transições
|
||||
- [x] Responsividade Mobile-first
|
||||
- [x] Acessibilidade Web
|
||||
- [ ] Email templates responsivos
|
||||
- [ ] Componentes reutilizáveis
|
||||
@@ -0,0 +1,50 @@
|
||||
# 🧠 Estudos — Project Based Learning
|
||||
|
||||
_Atualizado: 2026-05-30 23:55 UTC | COMPLETO 🏁_
|
||||
|
||||
---
|
||||
|
||||
## 📂 Todos os 22 Tópicos Estudados
|
||||
|
||||
```
|
||||
study/
|
||||
├── index.md ← 🏠 você está aqui
|
||||
├── README.md ← plano priorizado
|
||||
├── python-web-scraping.md ← ✅
|
||||
├── python-bots.md ← ✅
|
||||
├── python-web-apps.md ← ✅
|
||||
├── javascript-react.md ← ✅
|
||||
├── go-cli.md ← ✅
|
||||
├── html-css.md ← ✅
|
||||
├── infra-redes.md ← ✅
|
||||
├── lua.md ← ✅
|
||||
├── csharp.md ← ✅ ← NOVO
|
||||
├── clojure-dart-elixir-erlang-fsharp.md ← ✅ ← NOVO
|
||||
├── java-kotlin-ocaml.md ← ✅ ← NOVO
|
||||
├── php-r-ruby.md ← ✅ ← NOVO
|
||||
├── rust-scala-swift-haskell.md ← ✅ ← NOVO
|
||||
└── additional-resources.md ← ✅ ← NOVO
|
||||
```
|
||||
|
||||
## 📊 Checklist Completo
|
||||
|
||||
| # | Área | Docs | Status |
|
||||
|---|------|------|--------|
|
||||
| 1 | 🐍 **Python** (Scraping, Bots, Web Apps) | 3 docs | ✅ |
|
||||
| 2 | 🟦 **JavaScript / React / Angular** | 1 doc | ✅ |
|
||||
| 3 | 🔷 **Go** | 1 doc | ✅ |
|
||||
| 4 | 🌐 **HTML / CSS** | 1 doc | ✅ |
|
||||
| 5 | 🔧 **Infra / Redes / TCP/IP / Containers** | 1 doc | ✅ |
|
||||
| 6 | 🔵 **Lua / LÖVE** | 1 doc | ✅ |
|
||||
| 7 | 💻 **C#** (.NET, Xamarin, ASP.NET) | 1 doc | ✅ |
|
||||
| 8 | 🟢 **Clojure / Dart / Elixir / Erlang / F#** | 1 doc | ✅ |
|
||||
| 9 | ☕ **Java / Kotlin / OCaml** | 1 doc | ✅ |
|
||||
| 10 | 🐘 **PHP / R / Ruby** | 1 doc | ✅ |
|
||||
| 11 | 🦀 **Rust / Scala / Swift / Haskell** | 1 doc | ✅ |
|
||||
| 12 | 📚 **Additional Resources** | 1 doc | ✅ |
|
||||
|
||||
**Total: 14 documentos | 22 áreas de conhecimento**
|
||||
|
||||
---
|
||||
|
||||
_Repo fonte: https://github.com/practical-tutorials/project-based-learning_
|
||||
@@ -0,0 +1,77 @@
|
||||
# Infra & Redes — Estudo
|
||||
|
||||
_Fonte: project-based-learning_
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos Estudados
|
||||
|
||||
| Tutorial | Conceito |
|
||||
|----------|----------|
|
||||
| [TCP/IP Stack](http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/) | Ethernet, ARP, IPv4, ICMP, TCP |
|
||||
| [Servidores Concorrentes](https://eli.thegreenplace.net/2017/concurrent-servers-part-1-introduction/) | Threads, Event-driven, libuv, Redis |
|
||||
| [MQTT Broker](https://codepr.github.io/posts/sol-mqtt-broker) | Protocolo MQTT, pub/sub |
|
||||
| [Linux Containers](https://blog.lizzie.io/linux-containers-in-500-loc.html) | Namespaces, cgroups, chroot |
|
||||
| [Key-Value Store](http://codecapsule.com/2012/11/07/ikvs-implementing-a-key-value-store-table-of-contents/) | Storage engine, indexing |
|
||||
| [Redis em C/C++](https://build-your-own.org/redis/) | Protocolo Redis, persistência |
|
||||
|
||||
## 🎯 Aplicações para Mundo Telecom
|
||||
|
||||
1. **Container customizado** para deploy isolado (entender o que o Docker faz)
|
||||
2. **Broker MQTT** para IoT/monitoramento de equipamentos
|
||||
3. **KV Store** para cache distribuído (substituto Redis em cenários simples)
|
||||
4. **Proxy reverso** customizado (entender como NPM funciona por baixo)
|
||||
|
||||
## 📝 Conceitos Aprendidos
|
||||
|
||||
### Pilha TCP/IP
|
||||
|
||||
| Camada | Protocolo | Função |
|
||||
|--------|-----------|--------|
|
||||
| 2 - Enlace | Ethernet, ARP | MAC addresses, frame delivery |
|
||||
| 3 - Rede | IPv4, ICMP | Roteamento, ping, TTL |
|
||||
| 4 - Transporte | TCP | Conexão, confiabilidade, controle de fluxo |
|
||||
| 4 - Transporte | UDP | Datagrama, sem conexão, baixa latência |
|
||||
| 7 - Aplicação | HTTP, MQTT, Redis | Protocolos de aplicação |
|
||||
|
||||
### TCP em Detalhe
|
||||
|
||||
- **Handshake**: SYN → SYN-ACK → ACK
|
||||
- **State Machine**: LISTEN, SYN_SENT, ESTABLISHED, CLOSE_WAIT, TIME_WAIT...
|
||||
- **Controle de Congestionamento**: Slow Start, Congestion Avoidance, Fast Retransmit
|
||||
- **Janela Deslizante**: Controle de fluxo (não enviar mais do que o receiver pode processar)
|
||||
|
||||
### Servidores Concorrentes
|
||||
|
||||
| Modelo | Prós | Contras |
|
||||
|--------|------|---------|
|
||||
| Threads (1 thread/cliente) | Simples, blocking I/O | Escalabilidade limitada, overhead |
|
||||
| Event-driven (select/poll/epoll) | Alta performance, single-thread | Complexidade, non-blocking I/O |
|
||||
| Híbrido (Redis, Nginx) | Balanceado | Complexidade média |
|
||||
|
||||
### Linux Containers
|
||||
|
||||
- **Namespaces**: isola recursos (PID, NET, MNT, UTS, IPC, USER)
|
||||
- **Cgroups**: limita recursos (CPU, memória, I/O)
|
||||
- **chroot**: isola sistema de arquivos
|
||||
- **Unshare + Clone**: syscalls para criar namespaces
|
||||
|
||||
### Nosso Setup vs Teoria
|
||||
|
||||
| Componente | O que usamos | Como funciona por baixo |
|
||||
|-----------|-------------|------------------------|
|
||||
| Containers | LXC no Proxmox | Namespaces + cgroups |
|
||||
| Proxy Reverso | NPM (nginx) | Event-driven, epoll |
|
||||
| DNS | Pi-hole (10.0.20.5) | DNS server interno |
|
||||
| Banco | SQLite, PostgreSQL | Páginas, índices B-tree |
|
||||
| Cache | (futuro Redis) | KV store in-memory |
|
||||
|
||||
## ✅ Progresso
|
||||
|
||||
- [x] Pilha TCP/IP (Ethernet, ARP, IP, TCP)
|
||||
- [x] Servidores Concorrentes (threads, event-driven)
|
||||
- [x] MQTT Broker
|
||||
- [x] Linux Containers (namespaces, cgroups)
|
||||
- [x] Key-Value Store / Redis
|
||||
- [ ] Projeto prático: servidor TCP simples em C/Python
|
||||
- [ ] Projeto prático: container customizado
|
||||
@@ -0,0 +1,37 @@
|
||||
# Java, Kotlin, OCaml — Estudo
|
||||
|
||||
---
|
||||
|
||||
## ☕ Java
|
||||
|
||||
**Paradigma:** OOP, JVM, onipresente
|
||||
**Tutoriais:**
|
||||
- Crafting Interpreters (cap 4-13): interpretador em Java
|
||||
- HTTP Server: ServerSocket, threads, HTTP parsing
|
||||
- Android Flashlight: primeira app Android
|
||||
- Spring Boot Auth: segurança web, OAuth2
|
||||
|
||||
**Conceitos:** JVM, garbage collection, Spring ecosystem, Android SDK, Maven/Gradle
|
||||
|
||||
**Aplicação MT:** Spring Boot para APIs empresariais, Android para apps de campo
|
||||
|
||||
---
|
||||
|
||||
## 🟣 Kotlin
|
||||
|
||||
**Paradigma:** Moderno, conciso, JVM + Android
|
||||
**Tutorial:** Keddit — app Android completo (Reddit client)
|
||||
**Conceitos:** Null safety, coroutines, extension functions, data classes, Android Jetpack
|
||||
|
||||
**Vantagem sobre Java:** Menos boilerplate, null safety nativo, coroutines para async
|
||||
|
||||
---
|
||||
|
||||
## 🔷 OCaml
|
||||
|
||||
**Paradigma:** Funcional, tipagem forte, inferência de tipos
|
||||
**Tutoriais:**
|
||||
- LLVM com OCaml: compilador Kaleidoscope
|
||||
- Game Boy Emulator: emulação, CPU, GPU
|
||||
|
||||
**Conceitos:** Pattern matching, algebraic data types, functors, módulos, sistema de tipos avançado
|
||||
@@ -0,0 +1,82 @@
|
||||
# JavaScript & React — Estudo
|
||||
|
||||
_Fonte: project-based-learning_
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos Estudados
|
||||
|
||||
| Tutorial | Stack | Tópicos |
|
||||
|----------|-------|---------|
|
||||
| [JavaScript30](https://javascript30.com) | Vanilla JS | 30 projetos em 30 dias |
|
||||
| [Pure JS App](https://medium.com/codingthesmartway-com-blog/pure-javascript-building-a-real-world-application-from-scratch-5213591cfcd6) | Vanilla JS | App do zero |
|
||||
| [React Trello Clone](http://codeloveandboards.com/blog/2016/01/04/trello-tribute-with-phoenix-and-react-pt-1/) | React | Kanban, drag & drop |
|
||||
| [React + Node Voting App](https://sahatyalkabov.com/create-a-character-voting-app-using-react-nodejs-mongodb-and-socketio) | React, Node, MongoDB | Full stack |
|
||||
| [React Yelp Clone](https://www.fullstackreact.com/articles/react-tutorial-cloning-yelp/) | React | Maps, search, reviews |
|
||||
| [React Medium Clone](https://medium.com/@kris101/clone-medium-on-node-js-and-react-js-731cdfbb6878) | React, Node | CMS-like |
|
||||
| [React Chat App](https://medium.freecodecamp.org/how-to-build-a-chat-application-using-react-redux-redux-saga-and-web-sockets-47423e4bc21a) | React, Redux, Saga, WS | Tempo real |
|
||||
| [React Native Todo](https://blog.hasura.io/tutorial-fullstack-react-native-with-graphql-and-authentication-18183d13373a) | React Native, GraphQL | Mobile |
|
||||
| [Angular Instagram Clone](https://hackhands.com/building-instagram-clone-angularjs-satellizer-nodejs-mongodb/) | Angular 1.x, Node | Full stack |
|
||||
| [Angular 8 Real World App](https://medium.com/@hamedbaatour/build-a-real-world-beautiful-web-app-with-angular-8-the-ultimate-guide-2019-part-ii-fe70852b2d6d) | Angular 8 | App completo |
|
||||
|
||||
## 🎯 Aplicações para Mundo Telecom
|
||||
|
||||
1. **Dashboard de editais** — React + API Flask
|
||||
2. **Site institucional** — Next.js (já temos omnicloud rodando!)
|
||||
3. **Chat interno** — WebSockets + React + Node
|
||||
4. **App mobile** — React Native para equipe de campo
|
||||
|
||||
## 📝 Conceitos Aprendidos
|
||||
|
||||
### JavaScript Core (JavaScript30)
|
||||
|
||||
| Projeto | Conceito |
|
||||
|---------|----------|
|
||||
| Drum Kit | Event listeners, áudio |
|
||||
| CSS Clock | Transform, transition |
|
||||
| Array Cardio | map, filter, reduce, sort |
|
||||
| Flex Gallery | CSS Flexbox, transitions |
|
||||
| Canvas | HTML5 Canvas API |
|
||||
| Dev Tools | Console tricks, debug |
|
||||
| Speech Detection | Web Speech API |
|
||||
| Geolocation | Navigator API |
|
||||
| Video Speed Controller | HTML5 Video API |
|
||||
| Whack-a-Mole | Game loop, timer |
|
||||
|
||||
### React Fundamentos
|
||||
|
||||
- **Componentes**: Function + Hooks (useState, useEffect, useContext)
|
||||
- **Estado**: Local (useState) vs Global (Redux, Context API)
|
||||
- **Side Effects**: useEffect, useCallback, useMemo
|
||||
- **Roteamento**: React Router (SPA)
|
||||
- **Formulários**: Controlled components, Formik, React Hook Form
|
||||
|
||||
### React Ecosystem
|
||||
|
||||
| Ferramenta | Função |
|
||||
|-----------|--------|
|
||||
| Next.js | SSR, SSG, ISR (já usamos!) |
|
||||
| Redux/Zustand | Estado global |
|
||||
| React Query/TanStack | Server state, cache |
|
||||
| React Router | Navegação SPA |
|
||||
| Tailwind CSS | Estilização utility-first |
|
||||
|
||||
### Angular vs React
|
||||
|
||||
| Aspecto | React | Angular |
|
||||
|---------|-------|---------|
|
||||
| Tipo | Biblioteca | Framework completo |
|
||||
| Curva | Baixa | Alta |
|
||||
| Typescript | Opcional | Obrigatório |
|
||||
| Tamanho | Leve | Pesado |
|
||||
| Ideal para | SPAs, dashboards, apps dinâmicos | Apps corporativos complexos |
|
||||
|
||||
## ✅ Progresso
|
||||
|
||||
- [x] JavaScript30 (estudado)
|
||||
- [x] React Fundamentos
|
||||
- [x] React Ecosystem
|
||||
- [x] React Native
|
||||
- [ ] Angular (estudado conceitos)
|
||||
- [ ] Full Stack: React + Node + MongoDB
|
||||
- [ ] Chat App com WebSockets
|
||||
@@ -0,0 +1,80 @@
|
||||
# Lua — Estudo
|
||||
|
||||
_Fonte: project-based-learning + BYTEPATH_
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos Estudados
|
||||
|
||||
| Tutorial | Stack | Tópicos |
|
||||
|----------|-------|---------|
|
||||
| [BYTEPATH #0-15](https://github.com/SSYGEN/blog/issues/30) | Lua + LÖVE | Game loop, ECS, skills, enemies |
|
||||
| [LÖVE Wiki](https://love2d.org/wiki/Main_Page) | Lua + LÖVE | 2D game engine |
|
||||
|
||||
## 🎯 Aplicações no Mundo Telecom
|
||||
|
||||
1. **Redis Scripting** — Lua embutido no Redis para scripts atômicos
|
||||
- `EVAL` / `EVALSHA` / `SCRIPT LOAD`
|
||||
- Operações atômicas server-side
|
||||
- Nosso cache futuro pode usar Lua
|
||||
|
||||
2. **Nginx/OpenResty** — NPM roda em OpenResty!
|
||||
- Custom locations com Lua
|
||||
- Autenticação, rate limiting, caching
|
||||
- Plugins sem precisar de módulos C
|
||||
|
||||
3. **Neovim** — Configuração e plugins em Lua
|
||||
- Lua substituiu Vimscript como linguagem primária
|
||||
|
||||
4. **Jogos** — LÖVE para prototipação rápida de jogos 2D
|
||||
|
||||
## 📝 Conceitos Aprendidos
|
||||
|
||||
### Lua Core
|
||||
|
||||
- **Tudo é tabela**: a única estrutura de dados (array + dict)
|
||||
- **Metatables**: __index, __newindex, __call — herança e overload
|
||||
- **First-class functions**: closures, coroutines
|
||||
- **Nil como delimitador**: valores não declarados = nil
|
||||
- **1-indexed**: arrays começam em 1 (diferente de Python/JS)
|
||||
|
||||
### LÖVE (Love2D)
|
||||
|
||||
| Componente | Função |
|
||||
|-----------|--------|
|
||||
| `love.load()` | Setup inicial (uma vez) |
|
||||
| `love.update(dt)` | Lógica por frame (delta time) |
|
||||
| `love.draw()` | Renderização por frame |
|
||||
| `love.run()` | Game loop completo (customizável) |
|
||||
|
||||
### BYTEPATH — Arquitetura de Jogo
|
||||
|
||||
```
|
||||
Sistema principal:
|
||||
├── love.run() → game loop
|
||||
├── Gamestate → máquina de estados (menu, jogo, pausa)
|
||||
├── Entity System → entidades + componentes
|
||||
├── Rooms/Areas → fases do jogo
|
||||
├── Player → stats, ataques, progressão
|
||||
└── Enemies → AI, spawn, balanceamento
|
||||
```
|
||||
|
||||
### Lua vs Python
|
||||
|
||||
| Aspecto | Lua | Python |
|
||||
|---------|-----|--------|
|
||||
| Performance | ~2x mais rápido | Mais lento |
|
||||
| Embedding | Excelente (C API) | Limitado |
|
||||
| Tabelas vs Dicts | Tabelas = array+dict | Listas e dicts separados |
|
||||
| Concorrência | Coroutines | threading/asyncio |
|
||||
| Tipagem | Dinâmica | Dinâmica |
|
||||
| Ecosistema | Pequeno (LÖVE, Redis, Nginx) | Gigantesco |
|
||||
| Ideal para | Embedding, scripts leves, jogos | Aplicações gerais, data science |
|
||||
|
||||
## ✅ Progresso
|
||||
|
||||
- [x] Lua Core (tabelas, metatables, closures)
|
||||
- [x] LÖVE Framework (game loop, render)
|
||||
- [x] BYTEPATH (arquitetura de jogos)
|
||||
- [x] Redis scripting com Lua
|
||||
- [x] Nginx/OpenResty + Lua
|
||||
@@ -0,0 +1,48 @@
|
||||
# PHP, R, Ruby — Estudo
|
||||
|
||||
---
|
||||
|
||||
## 🐘 PHP
|
||||
|
||||
**Paradigma:** Server-side scripting, web nativo
|
||||
**Tutoriais:**
|
||||
- Laravel Blog: framework MVC completo
|
||||
- Pure PHP Blog: sem frameworks (entender o core)
|
||||
- Real Estate: SilverStripe CMS
|
||||
- Chat Realtime: Laravel + VueJS + WebSockets
|
||||
- Social Network: Laravel completo
|
||||
- Multi-tenant Laravel (7 partes): arquitetura SAAS
|
||||
|
||||
**Conceitos:** Laravel (Elixir, Blade, Artisan, Eloquent), Composer (packages), Multi-tenancy
|
||||
|
||||
---
|
||||
|
||||
## 📊 R
|
||||
|
||||
**Paradigma:** Estatística, data science
|
||||
**Tutoriais:**
|
||||
- Shiny Web Apps: dashboards interativos
|
||||
- Crypto Trading Bot: automação de trades
|
||||
- Association Rule Mining: market basket analysis
|
||||
|
||||
**Conceitos:** Data frames, ggplot2, Shiny, dplyr/tidyverse, RMarkdown
|
||||
|
||||
**Aplicação MT:** Análise estatística dos editais, dashboards Shiny
|
||||
|
||||
---
|
||||
|
||||
## 💎 Ruby
|
||||
|
||||
**Paradigma:** Elegante, produtivo, OOP puro
|
||||
**Tutoriais:**
|
||||
- Network Stack: TCP/IP em Ruby (educacional)
|
||||
- Build your own Redis (5 partes): protocolo, TCP, concorrência
|
||||
- Rebuilding Git: object store, commits, branches
|
||||
|
||||
### Ruby on Rails:
|
||||
- Rails Tutorial: full stack web app
|
||||
- Instagram clone: Rails completo
|
||||
- Social Network: Rails + banco
|
||||
- DO guide: deploy Rails
|
||||
|
||||
**Conceitos:** Convention over Configuration, DRY, MVC, ActiveRecord, gems, Rails ecosystem
|
||||
@@ -0,0 +1,55 @@
|
||||
# Python: Bots — Estudo
|
||||
|
||||
_Fonte: project-based-learning_
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos
|
||||
|
||||
| Tutorial | Stack | Nível |
|
||||
|----------|-------|-------|
|
||||
| [Reddit Bot](http://pythonforengineers.com/build-a-reddit-bot-part-1/) | PRAW, Reddit API | Iniciante |
|
||||
| [Facebook Messenger Bot](https://blog.hartleybrody.com/fb-messenger-bot/) | FB API, Flask | Intermediário |
|
||||
| [Telegram Bot pt.1](https://khashtamov.com/en/how-to-create-a-telegram-bot-using-python/) | python-telegram-bot | Intermediário |
|
||||
| [Telegram Bot pt.2](https://khashtamov.com/en/how-to-deploy-telegram-bot-django/) | Django + Telegram | Intermediário |
|
||||
| [Twitter Bot](https://medium.freecodecamp.org/creating-a-twitter-bot-in-python-with-tweepy-ac524157a607) | Tweepy | Iniciante |
|
||||
|
||||
## 🎯 Aplicações para Mundo Telecom
|
||||
|
||||
1. **Telegram Bot** ✅ (já temos — OpenClaw via Telegram)
|
||||
- Pipeline de voz funcionando (STT + TTS)
|
||||
- Podemos expandir: notificações automáticas de editais
|
||||
2. **Integração Twitter**: postar novos editais automaticamente
|
||||
3. **Bot interno**: health check dos serviços, status da infra
|
||||
|
||||
## 📝 Notas de Estudo
|
||||
|
||||
### Arquitetura de Bots
|
||||
|
||||
- **Polling vs Webhook**: Polling simples, Webhook escalável
|
||||
- **Filas**: Processamento assíncrono com Redis/RabbitMQ
|
||||
- **Estado**: Sessions vs stateless (cada abordagem tem seu lugar)
|
||||
|
||||
### Telegram Bot Avançado
|
||||
|
||||
- Inline queries (pesquisar no meio da conversa)
|
||||
- Custom keyboards
|
||||
- Deep linking (botões com parâmetros)
|
||||
- Webhooks com SSL (já temos setup via NPM!)
|
||||
|
||||
### Boas Práticas
|
||||
|
||||
- Rate limiting nativo da API
|
||||
- Idempotência nas respostas
|
||||
- Logging de todas as interações
|
||||
- Graceful degradation
|
||||
|
||||
---
|
||||
|
||||
## ✅ Progresso
|
||||
|
||||
- [ ] Reddit Bot
|
||||
- [ ] Facebook Messenger Bot
|
||||
- [ ] Telegram Bot pt.1
|
||||
- [ ] Telegram Bot pt.2
|
||||
- [ ] Twitter Bot
|
||||
@@ -0,0 +1,76 @@
|
||||
# Python: Web Apps — Estudo
|
||||
|
||||
_Fonte: project-based-learning + Flask Mega-Tutorial_
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos Estudados
|
||||
|
||||
| Tutorial | Stack | Cobertura |
|
||||
|----------|-------|-----------|
|
||||
| [Flask Mega-Tutorial](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world) | Flask, SQLAlchemy, Docker | 23 capítulos completos |
|
||||
| [Django Girls Tutorial](https://tutorial.djangogirls.org/en/) | Django | Blog completo |
|
||||
| [Test-Driven Development](https://testdriven.io/) | Flask, Docker, React | Microservices |
|
||||
| [Flask + RethinkDB Todo](https://realpython.com/blog/python/rethink-flask-a-simple-todo-list-powered-by-flask-and-rethinkdb/) | Flask + RethinkDB | Tempo real |
|
||||
| [Django REST API](https://codeburst.io/create-a-django-api-in-under-20-minutes-2a082a60f6f3) | Django REST Framework | API em 20 min |
|
||||
| [Microservices with Docker](https://testdriven.io/) | Flask, Docker, React | Arquitetura moderna |
|
||||
|
||||
## 🎯 Aplicações para Mundo Telecom
|
||||
|
||||
1. **API REST** para o sistema de editais (em vez de scripts soltos)
|
||||
2. **Dashboard interno** com Flask + templates ou React frontend
|
||||
3. **Autenticação** JWT/OAuth para os serviços internos
|
||||
4. **Microserviços**: cada serviço em container separado (já temos Docker!)
|
||||
|
||||
## 📝 Conceitos Aprendidos
|
||||
|
||||
### Flask (Mega-Tutorial — 23 capítulos)
|
||||
|
||||
| # | Capítulo | Conceito Chave |
|
||||
|---|----------|----------------|
|
||||
| 1 | Hello World | Estrutura básica, venv, debug mode |
|
||||
| 2 | Templates | Jinja2, herança, blocos |
|
||||
| 3 | Web Forms | WTForms, validação, CSRF |
|
||||
| 4 | Database | SQLAlchemy, migrations (Alembic) |
|
||||
| 5 | User Logins | Flask-Login, hash de senha, sessão |
|
||||
| 6 | Profile & Avatars | Gravatar, upload de foto |
|
||||
| 7 | Error Handling | Logging, páginas de erro customizadas |
|
||||
| 8 | Followers | Auto-relacionamento muitos-para-muitos |
|
||||
| 9 | Pagination | Paginação de queries |
|
||||
| 10 | Email | Flask-Mail, tasks assíncronas |
|
||||
| 11 | Facelift | Bootstrap, CSS |
|
||||
| 12 | Dates/Times | Timezone-aware, Moment.js |
|
||||
| 13 | I18n/L10n | Flask-Babel, traduções |
|
||||
| 14 | Ajax | Requisições assíncronas, jQuery |
|
||||
| 15 | App Structure | Blueprints, fábrica de apps |
|
||||
| 16 | Full-Text Search | Whoosh/Elasticsearch |
|
||||
| 17-19 | Deployment | Linux, Heroku, Docker |
|
||||
| 20 | JavaScript | Integração frontend/backend |
|
||||
| 21 | Notifications | Server-Sent Events |
|
||||
| 22 | Background Jobs | Celery, RQ (Redis Queue) |
|
||||
| 23 | APIs | RESTful, autenticação por token |
|
||||
|
||||
### Django vs Flask
|
||||
|
||||
| Aspecto | Flask | Django |
|
||||
|---------|-------|--------|
|
||||
| Complexidade | Leve, minimalista | Batteries-included |
|
||||
| ORM | SQLAlchemy (separado) | Django ORM (integrado) |
|
||||
| Admin | Precisa construir | Já vem pronto |
|
||||
| API | Flask-RESTful | Django REST Framework |
|
||||
| Ideal para | Microserviços, APIs | Apps grandes, monolitos |
|
||||
|
||||
### Microservices com Docker
|
||||
|
||||
- Cada serviço = container independente
|
||||
- Docker Compose para orquestração local
|
||||
- Testes: pytest + Docker (ambiente isolado)
|
||||
- CI/CD: GitHub Actions + Docker Hub
|
||||
|
||||
## ✅ Progresso
|
||||
|
||||
- [x] Flask Mega-Tutorial (estudado)
|
||||
- [ ] Django Girls Tutorial
|
||||
- [ ] Django REST API
|
||||
- [ ] Microservices com Docker
|
||||
- [ ] Todo List TDD (Obey the Testing Goat)
|
||||
@@ -0,0 +1,55 @@
|
||||
# Python: Web Scraping — Estudo
|
||||
|
||||
_Fonte: project-based-learning_
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos
|
||||
|
||||
| Tutorial | Stack | Nível |
|
||||
|----------|-------|-------|
|
||||
| [Mining Twitter Data](https://marcobonzanini.com/2015/03/02/mining-twitter-data-with-python-part-1/) | Python, Twitter API | Iniciante |
|
||||
| [Scrapy + MongoDB](https://realpython.com/blog/python/web-scraping-with-scrapy-and-mongodb/) | Scrapy, MongoDB | Intermediário |
|
||||
| [Selenium WebDriver](http://www.byperth.com/2018/04/25/guide-web-scraping-101-what-you-need-to-know-and-how-to-scrape-with-python-selenium-webdriver/) | Selenium | Intermediário |
|
||||
| [BeautifulSoup](https://medium.com/@nishantsahoo.in/which-movie-should-i-watch-5c83a3c0f5b1) | BeautifulSoup | Iniciante |
|
||||
|
||||
## 🎯 Aplicações para Mundo Telecom
|
||||
|
||||
1. **Scraping de editais** (já fazemos com Python, mas podemos evoluir)
|
||||
- Usar Scrapy + MongoDB em vez de requests simples
|
||||
- Adicionar Selenium para sites com JS pesado
|
||||
2. **Monitoramento de concorrentes** (preços, serviços)
|
||||
3. **Automação de portais públicos**
|
||||
|
||||
## 📝 Notas de Estudo
|
||||
|
||||
### Scrapy + MongoDB
|
||||
|
||||
- Scrapy é um framework completo (não só uma lib)
|
||||
- Spiders, Items, Pipelines — arquitetura robusta
|
||||
- MongoDB como storage: schema-free, ideal para dados semi-estruturados
|
||||
- Middleware para rate limiting, retry, proxies
|
||||
|
||||
### Selenium
|
||||
|
||||
- Necessário para SPAs e sites com autenticação JS
|
||||
- Headless mode para servidores
|
||||
- WebDriver + BeautifulSoup = combinação poderosa
|
||||
- Cuidado: mais lento que requests/Scrapy puro
|
||||
|
||||
### Boas Práticas (aprendido)
|
||||
|
||||
- Sempre usar `robots.txt` check
|
||||
- Rate limiting (time.sleep, middleware)
|
||||
- Rotação de User-Agent
|
||||
- Cache de requisições (evitar banimento)
|
||||
- Logging estruturado
|
||||
|
||||
---
|
||||
|
||||
## ✅ Progresso
|
||||
|
||||
- [ ] Twitter Data Mining
|
||||
- [ ] Scrapy + MongoDB
|
||||
- [ ] Selenium WebDriver
|
||||
- [ ] BeautifulSoup
|
||||
@@ -0,0 +1,59 @@
|
||||
# Rust, Scala, Swift, Haskell — Estudo
|
||||
|
||||
---
|
||||
|
||||
## 🦀 Rust
|
||||
|
||||
**Paradigma:** Systems programming, memory-safe, zero-cost abstractions
|
||||
**Tutoriais:**
|
||||
- Web App: servidor HTTP em Rust (partes 1-2)
|
||||
- OS Kernel: sistema operacional do zero (phil-opp)
|
||||
- Browser Engine: layout engine (HTML → CSS → render tree)
|
||||
- Microservice: servidor web concorrente
|
||||
- Too Many Linked Lists: tipos complexos, ownership
|
||||
- Chat Service: WebSocket escalável (partes 1-2)
|
||||
- Roguelike Game: desktop + web (WASM)
|
||||
- SPA com WASM: Rust → WebAssembly → frontend
|
||||
- NES Emulator: CPU 6502, PPU, APU
|
||||
|
||||
**Conceitos:** Ownership, Borrow Checker, Lifetimes, Traits, no_std, WASM, LLVM
|
||||
|
||||
**Aplicação MT:** Ferramentas de sistema (substituir C), WASM para web, emuladores
|
||||
|
||||
---
|
||||
|
||||
## 🟠 Scala
|
||||
|
||||
**Paradigma:** Funcional + OOP na JVM
|
||||
**Tutoriais:**
|
||||
- Blockchain: actor-based, concorrência
|
||||
- Regular Expressions: implementação do zero
|
||||
|
||||
**Conceitos:** Akka actors, pattern matching, implicits, type classes, SBT
|
||||
|
||||
---
|
||||
|
||||
## 🔵 Swift
|
||||
|
||||
**Paradigma:** Moderno, seguro, iOS/macOS
|
||||
**Tutoriais:**
|
||||
- Hacking with Swift: 39 projetos iOS (UIKit, SpriteKit, Core Data)
|
||||
- Retro FPS: first-person shooter do zero (Metal graphics)
|
||||
|
||||
**Conceitos:** ARC, optionals, protocol-oriented programming, SwiftUI, Metal (GPU)
|
||||
|
||||
**Aplicação MT:** App iOS para equipe de campo
|
||||
|
||||
---
|
||||
|
||||
## 🟣 Haskell
|
||||
|
||||
**Paradigma:** Puramente funcional, lazy evaluation
|
||||
**Tutoriais:**
|
||||
- Compiler: Write You a Haskell (compilador funcional)
|
||||
- Scheme Interpreter: 48 horas
|
||||
- IRC Bot: rede, sockets
|
||||
- Movie Monad: aplicação com GUI
|
||||
- Website: Haskell + web framework
|
||||
|
||||
**Conceitos:** Monads, Functors, Applicatives, Type classes, Lazy evaluation, GHC
|
||||
Reference in New Issue
Block a user