From 611bafa26de1a11f04aab9b90f1643498da9b796 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matheus=20Bregu=C3=AAz?=
Date: Mon, 12 Oct 2026 00:40:02 -0300
Subject: [PATCH 1/4] content: curate mobile, Python and DevOps resources the
learning paths need
Adds 41 checked entries (all HTTP 200):
- mobile: official Android, Apple, SwiftUI, Flutter, React Native, Expo,
Firebase, Material 3 and Human Interface Guidelines resources, plus the
Kotlin and Swift docs;
- Python: the official tutorial, Python for Everybody, Automate the Boring
Stuff and PEP 8;
- DevOps (mainly pt-BR, which lacked them): Terraform, GitHub Actions,
GitLab CI/CD, Docker Get Started and the Kubernetes docs in Portuguese.
Co-Authored-By: Claude Opus 5.5 (1M context)
---
.../development-environment/learn.yaml | 28 ++++++++++
_data/en-US/development/plataforms/learn.yaml | 49 ++++++++++++++++
.../development/plataforms/publications.yaml | 14 +++++
_data/en-US/development/plataforms/tools.yaml | 7 +++
.../programming-languages/learn.yaml | 42 ++++++++++++++
.../development-environment/learn.yaml | 40 +++++++++++++
_data/pt-BR/development/plataforms/learn.yaml | 56 +++++++++++++++++++
.../development/plataforms/publications.yaml | 16 ++++++
_data/pt-BR/development/plataforms/tools.yaml | 8 +++
.../programming-languages/learn.yaml | 48 ++++++++++++++++
10 files changed, 308 insertions(+)
diff --git a/_data/en-US/development/development-environment/learn.yaml b/_data/en-US/development/development-environment/learn.yaml
index 8dc774b..675862b 100644
--- a/_data/en-US/development/development-environment/learn.yaml
+++ b/_data/en-US/development/development-environment/learn.yaml
@@ -53,3 +53,31 @@
type: "reference"
access: "free"
organization: "QEMU"
+
+- name: "Terraform Documentation"
+ url: "https://developer.hashicorp.com/terraform/docs"
+ description: "Official documentation for Terraform, covering infrastructure as code, providers, state and modules."
+ type: "reference"
+ access: "free"
+ organization: "HashiCorp"
+
+- name: "GitHub Actions Documentation"
+ url: "https://docs.github.com/actions"
+ description: "Official guide to automating builds, tests and deployments with GitHub Actions workflows."
+ type: "reference"
+ access: "free"
+ organization: "GitHub"
+
+- name: "GitLab CI/CD Documentation"
+ url: "https://docs.gitlab.com/ci/"
+ description: "Official documentation for GitLab CI/CD pipelines, jobs, runners and deployment environments."
+ type: "reference"
+ access: "free"
+ organization: "GitLab"
+
+- name: "Docker Get Started"
+ url: "https://docs.docker.com/get-started/"
+ description: "Official hands-on introduction to containers with Docker, from building images to running multi-container apps."
+ type: "tutorial"
+ access: "free"
+ organization: "Docker"
diff --git a/_data/en-US/development/plataforms/learn.yaml b/_data/en-US/development/plataforms/learn.yaml
index a467477..5d713bc 100644
--- a/_data/en-US/development/plataforms/learn.yaml
+++ b/_data/en-US/development/plataforms/learn.yaml
@@ -18,3 +18,52 @@
type: "course"
access: "free"
organization: "HashiCorp"
+
+- name: "Android Developers Courses"
+ url: "https://developer.android.com/courses"
+ description: "Free official courses for building Android apps with Kotlin and Jetpack Compose, from first app to architecture."
+ type: "course"
+ access: "free"
+ organization: "Google"
+
+- name: "Android Developer Documentation"
+ url: "https://developer.android.com/docs"
+ description: "Official reference and guides for the Android platform, its APIs, tooling and app quality requirements."
+ type: "reference"
+ access: "free"
+ organization: "Google"
+
+- name: "Apple Developer Documentation"
+ url: "https://developer.apple.com/documentation/"
+ description: "Official documentation for building apps on iOS, iPadOS, macOS, watchOS and visionOS with Apple frameworks."
+ type: "reference"
+ access: "free"
+ organization: "Apple"
+
+- name: "SwiftUI Tutorials"
+ url: "https://developer.apple.com/tutorials/swiftui"
+ description: "Step-by-step official tutorials that build complete iOS apps with SwiftUI, covering layout, data and navigation."
+ type: "tutorial"
+ access: "free"
+ organization: "Apple"
+
+- name: "Flutter Documentation"
+ url: "https://docs.flutter.dev/"
+ description: "Official guides and API reference for building cross-platform mobile, web and desktop apps with Flutter and Dart."
+ type: "reference"
+ access: "free"
+ organization: "Google"
+
+- name: "React Native Documentation"
+ url: "https://reactnative.dev/docs/getting-started"
+ description: "Official guide to building native iOS and Android apps with React and JavaScript, from setup to native modules."
+ type: "reference"
+ access: "free"
+ organization: "Meta"
+
+- name: "Expo Documentation"
+ url: "https://docs.expo.dev/"
+ description: "Documentation for Expo, a framework and toolset that simplifies building, testing and publishing React Native apps."
+ type: "reference"
+ access: "freemium"
+ organization: "Expo"
diff --git a/_data/en-US/development/plataforms/publications.yaml b/_data/en-US/development/plataforms/publications.yaml
index 4a12814..401a8d6 100644
--- a/_data/en-US/development/plataforms/publications.yaml
+++ b/_data/en-US/development/plataforms/publications.yaml
@@ -18,3 +18,17 @@
type: "journal"
access: "paid"
organization: "IEEE Computer Society"
+
+- name: "Human Interface Guidelines"
+ url: "https://developer.apple.com/design/human-interface-guidelines/"
+ description: "Apple's design guidance for apps on its platforms, covering layout, navigation, accessibility and platform conventions."
+ type: "reference"
+ access: "free"
+ organization: "Apple"
+
+- name: "Material Design 3"
+ url: "https://m3.material.io/"
+ description: "Google's design system for Android and other platforms, with components, layout, colour and accessibility guidance."
+ type: "reference"
+ access: "free"
+ organization: "Google"
diff --git a/_data/en-US/development/plataforms/tools.yaml b/_data/en-US/development/plataforms/tools.yaml
index f60d947..c194d27 100644
--- a/_data/en-US/development/plataforms/tools.yaml
+++ b/_data/en-US/development/plataforms/tools.yaml
@@ -18,3 +18,10 @@
type: "tool"
access: "free"
organization: "Open Infrastructure Foundation"
+
+- name: "Firebase"
+ url: "https://firebase.google.com/docs"
+ description: "Backend services for mobile and web apps, including authentication, databases, push notifications and analytics."
+ type: "tool"
+ access: "freemium"
+ organization: "Google"
diff --git a/_data/en-US/development/programming-languages/learn.yaml b/_data/en-US/development/programming-languages/learn.yaml
index cbc9ad9..7696c10 100644
--- a/_data/en-US/development/programming-languages/learn.yaml
+++ b/_data/en-US/development/programming-languages/learn.yaml
@@ -53,3 +53,45 @@
type: "reference"
access: "free"
organization: "zenspider.com"
+
+- name: "Kotlin Documentation"
+ url: "https://kotlinlang.org/docs/home.html"
+ description: "Official Kotlin language documentation with a tour, reference and guides for Android, server and multiplatform use."
+ type: "reference"
+ access: "free"
+ organization: "JetBrains"
+
+- name: "Swift Documentation"
+ url: "https://www.swift.org/documentation/"
+ description: "Official documentation of the Swift language, including the language guide, standard library and API design guidelines."
+ type: "reference"
+ access: "free"
+ organization: "Swift.org"
+
+- name: "The Python Tutorial"
+ url: "https://docs.python.org/3/tutorial/"
+ description: "The official introduction to Python, covering syntax, data structures, modules, errors and classes for new programmers."
+ type: "tutorial"
+ access: "free"
+ organization: "Python Software Foundation"
+
+- name: "Python for Everybody"
+ url: "https://www.py4e.com/"
+ description: "Free beginner course and open textbook teaching programming with Python, data structures, web data and databases."
+ type: "course"
+ access: "free"
+ organization: "University of Michigan"
+
+- name: "Automate the Boring Stuff with Python"
+ url: "https://automatetheboringstuff.com/"
+ description: "Free online book that teaches Python through practical automation of files, spreadsheets, web pages and everyday tasks."
+ type: "textbook"
+ access: "free"
+ organization: "No Starch Press"
+
+- name: "PEP 8: Style Guide for Python Code"
+ url: "https://peps.python.org/pep-0008/"
+ description: "The official style guide for Python code, describing naming, layout and conventions that keep code readable."
+ type: "reference"
+ access: "free"
+ organization: "Python Software Foundation"
diff --git a/_data/pt-BR/development/development-environment/learn.yaml b/_data/pt-BR/development/development-environment/learn.yaml
index d2dee1c..8fbb747 100644
--- a/_data/pt-BR/development/development-environment/learn.yaml
+++ b/_data/pt-BR/development/development-environment/learn.yaml
@@ -21,3 +21,43 @@
access: "paid"
language: "en"
organization: "The Pragmatic Bookshelf"
+
+- name: "Terraform Documentation"
+ url: "https://developer.hashicorp.com/terraform/docs"
+ description: "Documentação oficial do Terraform, cobrindo infraestrutura como código, providers, estado e módulos."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "HashiCorp"
+
+- name: "GitHub Actions Documentation"
+ url: "https://docs.github.com/actions"
+ description: "Guia oficial para automatizar builds, testes e deploys com workflows do GitHub Actions."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "GitHub"
+
+- name: "GitLab CI/CD Documentation"
+ url: "https://docs.gitlab.com/ci/"
+ description: "Documentação oficial de pipelines GitLab CI/CD, jobs, runners e ambientes de deploy."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "GitLab"
+
+- name: "Documentação do Kubernetes"
+ url: "https://kubernetes.io/pt-br/docs/home/"
+ description: "Documentação oficial do Kubernetes em português, dos conceitos aos tutoriais de implantação e escala de contêineres."
+ type: "reference"
+ access: "free"
+ language: "pt-BR"
+ organization: "Cloud Native Computing Foundation"
+
+- name: "Docker Get Started"
+ url: "https://docs.docker.com/get-started/"
+ description: "Introdução prática oficial aos contêineres com Docker, da criação de imagens a apps com vários contêineres."
+ type: "tutorial"
+ access: "free"
+ language: "en"
+ organization: "Docker"
diff --git a/_data/pt-BR/development/plataforms/learn.yaml b/_data/pt-BR/development/plataforms/learn.yaml
index e59d167..32678d5 100644
--- a/_data/pt-BR/development/plataforms/learn.yaml
+++ b/_data/pt-BR/development/plataforms/learn.yaml
@@ -21,3 +21,59 @@
access: "free"
language: "pt-BR"
organization: "Microsoft"
+
+- name: "Android Developers Courses"
+ url: "https://developer.android.com/courses"
+ description: "Cursos oficiais e gratuitos para criar apps Android com Kotlin e Jetpack Compose, do primeiro app à arquitetura."
+ type: "course"
+ access: "free"
+ language: "en"
+ organization: "Google"
+
+- name: "Android Developer Documentation"
+ url: "https://developer.android.com/docs"
+ description: "Referência e guias oficiais da plataforma Android, suas APIs, ferramentas e requisitos de qualidade de apps."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "Google"
+
+- name: "Apple Developer Documentation"
+ url: "https://developer.apple.com/documentation/"
+ description: "Documentação oficial para criar apps para iOS, iPadOS, macOS, watchOS e visionOS com os frameworks da Apple."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "Apple"
+
+- name: "SwiftUI Tutorials"
+ url: "https://developer.apple.com/tutorials/swiftui"
+ description: "Tutoriais oficiais passo a passo que constroem apps iOS completos com SwiftUI, cobrindo layout, dados e navegação."
+ type: "tutorial"
+ access: "free"
+ language: "en"
+ organization: "Apple"
+
+- name: "Flutter Documentation"
+ url: "https://docs.flutter.dev/"
+ description: "Guias oficiais e referência de API para criar apps multiplataforma móveis, web e desktop com Flutter e Dart."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "Google"
+
+- name: "React Native Documentation"
+ url: "https://reactnative.dev/docs/getting-started"
+ description: "Guia oficial para criar apps nativos de iOS e Android com React e JavaScript, da configuração aos módulos nativos."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "Meta"
+
+- name: "Expo Documentation"
+ url: "https://docs.expo.dev/"
+ description: "Documentação do Expo, framework e conjunto de ferramentas que simplifica criar, testar e publicar apps React Native."
+ type: "reference"
+ access: "freemium"
+ language: "en"
+ organization: "Expo"
diff --git a/_data/pt-BR/development/plataforms/publications.yaml b/_data/pt-BR/development/plataforms/publications.yaml
index 7b61f49..4da7215 100644
--- a/_data/pt-BR/development/plataforms/publications.yaml
+++ b/_data/pt-BR/development/plataforms/publications.yaml
@@ -21,3 +21,19 @@
access: "paid"
language: "en"
organization: "Manning Publications"
+
+- name: "Human Interface Guidelines"
+ url: "https://developer.apple.com/design/human-interface-guidelines/"
+ description: "Diretrizes de design da Apple para apps em suas plataformas, cobrindo layout, navegação, acessibilidade e convenções."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "Apple"
+
+- name: "Material Design 3"
+ url: "https://m3.material.io/"
+ description: "Sistema de design do Google para Android e outras plataformas, com componentes, layout, cores e acessibilidade."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "Google"
diff --git a/_data/pt-BR/development/plataforms/tools.yaml b/_data/pt-BR/development/plataforms/tools.yaml
index b1ca4c9..7f1ba65 100644
--- a/_data/pt-BR/development/plataforms/tools.yaml
+++ b/_data/pt-BR/development/plataforms/tools.yaml
@@ -21,3 +21,11 @@
access: "freemium"
language: "pt-BR"
organization: "Microsoft"
+
+- name: "Firebase"
+ url: "https://firebase.google.com/docs"
+ description: "Serviços de backend para apps móveis e web, com autenticação, bancos de dados, notificações push e análise."
+ type: "tool"
+ access: "freemium"
+ language: "en"
+ organization: "Google"
diff --git a/_data/pt-BR/development/programming-languages/learn.yaml b/_data/pt-BR/development/programming-languages/learn.yaml
index b26b37b..a6f6070 100644
--- a/_data/pt-BR/development/programming-languages/learn.yaml
+++ b/_data/pt-BR/development/programming-languages/learn.yaml
@@ -13,3 +13,51 @@
access: "free"
language: "en"
organization: "Rust Community"
+
+- name: "Kotlin Documentation"
+ url: "https://kotlinlang.org/docs/home.html"
+ description: "Documentação oficial da linguagem Kotlin, com tour, referência e guias para Android, servidor e multiplataforma."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "JetBrains"
+
+- name: "Swift Documentation"
+ url: "https://www.swift.org/documentation/"
+ description: "Documentação oficial da linguagem Swift, com o guia da linguagem, a biblioteca padrão e diretrizes de API."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "Swift.org"
+
+- name: "The Python Tutorial"
+ url: "https://docs.python.org/3/tutorial/"
+ description: "Introdução oficial ao Python, cobrindo sintaxe, estruturas de dados, módulos, erros e classes para quem está começando."
+ type: "tutorial"
+ access: "free"
+ language: "en"
+ organization: "Python Software Foundation"
+
+- name: "Python for Everybody"
+ url: "https://www.py4e.com/"
+ description: "Curso gratuito para iniciantes, com livro aberto, que ensina programação em Python, estruturas de dados, web e bancos."
+ type: "course"
+ access: "free"
+ language: "en"
+ organization: "University of Michigan"
+
+- name: "Automate the Boring Stuff with Python"
+ url: "https://automatetheboringstuff.com/"
+ description: "Livro online gratuito que ensina Python automatizando arquivos, planilhas, páginas web e tarefas do dia a dia."
+ type: "textbook"
+ access: "free"
+ language: "en"
+ organization: "No Starch Press"
+
+- name: "PEP 8: Style Guide for Python Code"
+ url: "https://peps.python.org/pep-0008/"
+ description: "Guia oficial de estilo para código Python, com convenções de nomes, layout e boas práticas de legibilidade."
+ type: "reference"
+ access: "free"
+ language: "en"
+ organization: "Python Software Foundation"
From 4f02dec0062d0725b294b1bf354e968da98779fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matheus=20Bregu=C3=AAz?=
Date: Mon, 12 Oct 2026 00:40:02 -0300
Subject: [PATCH 2/4] feat: interactive learning paths (spec 006)
- _plugins/learning_paths.rb creates //learning-paths// from
_data//learning-paths/*.yaml, plus an index per language. It
resolves each step's resource URLs to IPL's curated entries; an unknown
URL fails the build outside production.
- _layouts/learning-path.html: stages and numbered steps as , so
the path reads without JavaScript. javascript/learning-path.js adds
per-step checkboxes, a progress bar and a polite status message, with
progress kept in localStorage under the path key.
- Subcategory pages list their paths, and the footer links the index.
- 12 paths per language (frontend, backend, JavaScript, Python, data
analysis, machine learning, DevOps, cybersecurity, databases, UX, mobile,
computer science), written for IPL from IPL's curated resources; pt-BR is
written natively. No external roadmap was used: roadmap.sh roadmaps
appear only as credited "see also" links.
- test/learning_paths_test.rb: same paths in both languages, schema,
source: ipl, and every step resource is a curated IPL URL.
Co-Authored-By: Claude Opus 5.5 (1M context)
---
_data/en-US/learning-paths/backend.yaml | 86 ++++++++++++++++
.../learning-paths/computer-science.yaml | 80 +++++++++++++++
_data/en-US/learning-paths/cybersecurity.yaml | 93 ++++++++++++++++++
_data/en-US/learning-paths/data-analysis.yaml | 77 +++++++++++++++
_data/en-US/learning-paths/databases.yaml | 82 ++++++++++++++++
_data/en-US/learning-paths/devops.yaml | 93 ++++++++++++++++++
_data/en-US/learning-paths/frontend.yaml | 92 +++++++++++++++++
_data/en-US/learning-paths/javascript.yaml | 81 +++++++++++++++
.../learning-paths/machine-learning.yaml | 83 ++++++++++++++++
_data/en-US/learning-paths/mobile.yaml | 75 ++++++++++++++
_data/en-US/learning-paths/python.yaml | 77 +++++++++++++++
_data/en-US/learning-paths/ux-design.yaml | 87 ++++++++++++++++
_data/pt-BR/learning-paths/backend.yaml | 88 +++++++++++++++++
.../learning-paths/computer-science.yaml | 80 +++++++++++++++
_data/pt-BR/learning-paths/cybersecurity.yaml | 75 ++++++++++++++
_data/pt-BR/learning-paths/data-analysis.yaml | 72 ++++++++++++++
_data/pt-BR/learning-paths/databases.yaml | 82 ++++++++++++++++
_data/pt-BR/learning-paths/devops.yaml | 81 +++++++++++++++
_data/pt-BR/learning-paths/frontend.yaml | 90 +++++++++++++++++
_data/pt-BR/learning-paths/javascript.yaml | 74 ++++++++++++++
.../learning-paths/machine-learning.yaml | 73 ++++++++++++++
_data/pt-BR/learning-paths/mobile.yaml | 74 ++++++++++++++
_data/pt-BR/learning-paths/python.yaml | 73 ++++++++++++++
_data/pt-BR/learning-paths/ux-design.yaml | 85 ++++++++++++++++
_includes/components/organisms/footer.html | 4 +-
_layouts/learning-path.html | 98 +++++++++++++++++++
_layouts/learning-paths.html | 31 ++++++
_layouts/topic.html | 15 +++
_plugins/learning_paths.rb | 84 ++++++++++++++++
docs/specs/006-learning-paths/tasks.md | 10 +-
javascript/learning-path.js | 43 ++++++++
test/learning_paths_test.rb | 54 ++++++++++
32 files changed, 2285 insertions(+), 7 deletions(-)
create mode 100644 _data/en-US/learning-paths/backend.yaml
create mode 100644 _data/en-US/learning-paths/computer-science.yaml
create mode 100644 _data/en-US/learning-paths/cybersecurity.yaml
create mode 100644 _data/en-US/learning-paths/data-analysis.yaml
create mode 100644 _data/en-US/learning-paths/databases.yaml
create mode 100644 _data/en-US/learning-paths/devops.yaml
create mode 100644 _data/en-US/learning-paths/frontend.yaml
create mode 100644 _data/en-US/learning-paths/javascript.yaml
create mode 100644 _data/en-US/learning-paths/machine-learning.yaml
create mode 100644 _data/en-US/learning-paths/mobile.yaml
create mode 100644 _data/en-US/learning-paths/python.yaml
create mode 100644 _data/en-US/learning-paths/ux-design.yaml
create mode 100644 _data/pt-BR/learning-paths/backend.yaml
create mode 100644 _data/pt-BR/learning-paths/computer-science.yaml
create mode 100644 _data/pt-BR/learning-paths/cybersecurity.yaml
create mode 100644 _data/pt-BR/learning-paths/data-analysis.yaml
create mode 100644 _data/pt-BR/learning-paths/databases.yaml
create mode 100644 _data/pt-BR/learning-paths/devops.yaml
create mode 100644 _data/pt-BR/learning-paths/frontend.yaml
create mode 100644 _data/pt-BR/learning-paths/javascript.yaml
create mode 100644 _data/pt-BR/learning-paths/machine-learning.yaml
create mode 100644 _data/pt-BR/learning-paths/mobile.yaml
create mode 100644 _data/pt-BR/learning-paths/python.yaml
create mode 100644 _data/pt-BR/learning-paths/ux-design.yaml
create mode 100644 _layouts/learning-path.html
create mode 100644 _layouts/learning-paths.html
create mode 100644 _plugins/learning_paths.rb
create mode 100644 javascript/learning-path.js
create mode 100644 test/learning_paths_test.rb
diff --git a/_data/en-US/learning-paths/backend.yaml b/_data/en-US/learning-paths/backend.yaml
new file mode 100644
index 0000000..66a7262
--- /dev/null
+++ b/_data/en-US/learning-paths/backend.yaml
@@ -0,0 +1,86 @@
+title: "Backend development"
+summary: "Build reliable server-side applications by mastering HTTP, a web framework, relational data, API design and the caching, messaging and architecture choices behind scalable systems."
+subcategory: "development/backend-development"
+level: "intermediate"
+source: "ipl"
+stages:
+ - title: "HTTP and the server side"
+ steps:
+ - title: "HTTP in depth"
+ summary: "Study requests, responses, headers, cookies and connection behaviour, since every backend decision ultimately travels over HTTP."
+ resources:
+ - "https://hpbn.co"
+ - "https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie"
+ - title: "A first web framework"
+ summary: "Build a small application with routing, templates and middleware in one mainstream framework to learn the request lifecycle."
+ resources:
+ - "https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs"
+ - "https://nodejs.org"
+ - "https://www.djangoproject.com"
+ - "https://fastapi.tiangolo.com"
+ - title: "Other server ecosystems"
+ summary: "Compare how enterprise stacks in Java and .NET structure the same concepts, useful when joining larger organisations."
+ optional: true
+ resources:
+ - "https://spring.io"
+ - "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/"
+ - title: "Working with data"
+ steps:
+ - title: "Relational databases and SQL"
+ summary: "Model data in tables, write SQL queries and use transactions, the default storage choice for most backends."
+ resources:
+ - "https://www.postgresql.org"
+ - "https://www.sqlite.org"
+ - title: "Indexes and query performance"
+ summary: "Learn how indexes work and how to read query plans, the most common fix for slow endpoints."
+ resources:
+ - "https://use-the-index-luke.com"
+ - title: "Schema migrations"
+ summary: "Version database changes alongside code so every environment evolves safely and deployments stay repeatable."
+ resources:
+ - "https://flywaydb.org"
+ - "https://www.liquibase.com"
+ - title: "Document and key-value stores"
+ summary: "Understand when document databases or in-memory stores fit better than relational tables, and what you give up."
+ optional: true
+ resources:
+ - "https://www.mongodb.com/docs/manual/"
+ - "https://redis.io"
+ - title: "Designing APIs"
+ steps:
+ - title: "HTTP API design"
+ summary: "Design consistent resources, validate payloads with schemas and plan versioning so clients can rely on your API."
+ resources:
+ - "https://json-schema.org/"
+ - "https://web.archive.org/web/20170610175619/https://fly.io/articles/pragmatic-api-versioning/"
+ - "https://www.postman.com"
+ - title: "RPC with gRPC"
+ summary: "Explore contract-first remote procedure calls with Protocol Buffers, common for efficient service-to-service communication."
+ optional: true
+ resources:
+ - "https://grpc.io/"
+ - title: "Configuration and secrets"
+ summary: "Keep configuration in the environment and out of code, following principles that make services portable and safe to deploy."
+ resources:
+ - "https://12factor.net/"
+ - "https://github.com/motdotla/dotenv"
+ - title: "Scaling and architecture"
+ steps:
+ - title: "Caching and messaging"
+ summary: "Reduce load with caches and decouple services with event streams, two core tools for handling growth."
+ resources:
+ - "https://redis.io"
+ - "https://kafka.apache.org"
+ - title: "Data-intensive systems"
+ summary: "Learn the trade-offs of replication, partitioning and consistency, and study how real companies scaled their backends."
+ resources:
+ - "https://dataintensive.net"
+ - "https://highscalability.com"
+ - title: "Architecture and maintainability"
+ summary: "Apply design patterns and architectural thinking so the codebase stays understandable and changeable as it grows."
+ resources:
+ - "https://martinfowler.com"
+ - "https://refactoring.guru"
+see_also:
+ - name: "Backend Developer Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/backend"
diff --git a/_data/en-US/learning-paths/computer-science.yaml b/_data/en-US/learning-paths/computer-science.yaml
new file mode 100644
index 0000000..b12d8af
--- /dev/null
+++ b/_data/en-US/learning-paths/computer-science.yaml
@@ -0,0 +1,80 @@
+title: "Computer science foundations"
+summary: "Build a solid base in computer science, from how machines run programs through algorithms, operating systems and networks, up to the limits of what computation can do."
+subcategory: "computing/computer-science"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Getting oriented"
+ steps:
+ - title: "Map of the field"
+ summary: "See which core subjects make up computer science and in what order to tackle them, so self-study stays focused instead of scattered."
+ resources:
+ - "https://teachyourselfcs.com/"
+ - title: "Working at the command line"
+ summary: "Get comfortable with the shell, files and processes, since nearly every later topic is explored by running tools from a terminal."
+ resources:
+ - "https://linuxcommand.org/"
+ - title: "Version control"
+ summary: "Track your exercises and experiments with Git, a habit that makes every project and course assignment easier to manage."
+ resources:
+ - "https://git-scm.com/"
+ - title: "Where computing came from"
+ summary: "Learn the history of computing machines and ideas, which explains many design choices that still shape today's systems."
+ optional: true
+ resources:
+ - "https://computerhistory.org/"
+ - title: "Algorithms and data structures"
+ steps:
+ - title: "Core data structures and algorithms"
+ summary: "Study arrays, lists, trees, hashing, sorting and searching with working code, the toolkit behind efficient programs."
+ resources:
+ - "https://www.coursera.org/learn/algorithms-part1"
+ - "https://jeffe.cs.illinois.edu/teaching/algorithms/"
+ - title: "Analysing and designing algorithms"
+ summary: "Learn asymptotic analysis, recursion, greedy methods and dynamic programming so you can reason about cost before writing code."
+ resources:
+ - "https://jeffe.cs.illinois.edu/teaching/algorithms/"
+ - "https://mitpress.mit.edu/algorithms/"
+ - "https://ocw.mit.edu/courses/6-046j-design-and-analysis-of-algorithms-spring-2015/"
+ - title: "How computers run programs"
+ steps:
+ - title: "Computer systems"
+ summary: "Understand data representation, machine code, memory hierarchy and linking to see what really happens when your program executes."
+ resources:
+ - "https://csapp.cs.cmu.edu/"
+ - title: "Operating systems"
+ summary: "Learn how an operating system virtualises CPU and memory, handles concurrency and stores data persistently on disk."
+ resources:
+ - "https://pages.cs.wisc.edu/~remzi/OSTEP/"
+ - "https://pdos.csail.mit.edu/6.828/"
+ - title: "Experimenting with emulators"
+ summary: "Run and inspect systems inside an emulator or virtual machine, a safe way to try what you read about kernels and hardware."
+ optional: true
+ resources:
+ - "https://www.qemu.org/"
+ - "https://www.virtualbox.org/"
+ - title: "Networks and databases in practice"
+ summary: "Capture real network traffic and query a small embedded database to connect protocol and storage theory with observable behaviour."
+ resources:
+ - "https://www.wireshark.org/"
+ - "https://www.sqlite.org/"
+ - title: "Theory of computation"
+ steps:
+ - title: "Automata and formal languages"
+ summary: "Experiment with finite automata, grammars and Turing machines to understand the formal models behind parsers and computation itself."
+ resources:
+ - "https://www.jflap.org/"
+ - title: "Complexity and its limits"
+ summary: "Get an introduction to complexity classes such as P and NP, which explain why some problems resist efficient solutions."
+ optional: true
+ resources:
+ - "https://complexityzoo.net/Complexity_Zoo"
+ - "https://blog.computationalcomplexity.org/"
+ - title: "Keep up with the field"
+ summary: "Read accessible summaries of research and the flagship magazine of the profession to see how foundations feed current work."
+ resources:
+ - "https://cacm.acm.org/"
+ - "https://blog.acolyer.org/"
+see_also:
+ - name: "Computer Science Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/computer-science"
diff --git a/_data/en-US/learning-paths/cybersecurity.yaml b/_data/en-US/learning-paths/cybersecurity.yaml
new file mode 100644
index 0000000..f3b43b4
--- /dev/null
+++ b/_data/en-US/learning-paths/cybersecurity.yaml
@@ -0,0 +1,93 @@
+title: "Cybersecurity"
+summary: "Start with networks and security thinking, then learn cryptography, web application flaws, vulnerability catalogs and system hardening through free hands-on labs and official references."
+subcategory: "computing/cyber-security"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Security and network basics"
+ steps:
+ - title: "Thinking like a defender"
+ summary: "Learn the core ideas of confidentiality, integrity, availability and risk, and see how real attacks and breaches unfold."
+ resources:
+ - "https://www.professormesser.com/"
+ - "https://www.schneier.com/"
+ - "https://krebsonsecurity.com/"
+ - title: "How networks work"
+ summary: "Understand IP, TCP, ports and DNS, because most attacks and defenses happen on traffic moving across a network."
+ resources:
+ - "https://gaia.cs.umass.edu/kurose_ross/"
+ - "https://www.nslookup.io/learning/dns-record-types/"
+ - "https://www.iana.org/assignments/service-names-port-numbers/"
+ - title: "Watching network traffic"
+ summary: "Capture and read packets yourself to recognise normal traffic and spot what looks suspicious."
+ resources:
+ - "https://www.wireshark.org/"
+ - "https://www.wireshark.org/docs/"
+ - "https://www.tcpdump.org/"
+ - title: "Cryptography and secure communication"
+ steps:
+ - title: "Encryption and keys"
+ summary: "Learn symmetric and public-key encryption, signatures and secure tunnels, the tools that protect data in transit and at rest."
+ resources:
+ - "https://hashrocket.com/blog/posts/encryption-with-gpg-a-story-really-a-tutorial"
+ - "https://www.ssh.com/academy/ssh/tunneling-example"
+ - "https://csrc.nist.gov/publications"
+ - title: "Email authentication"
+ summary: "See how SPF, DKIM and DMARC let receivers reject forged senders, a common entry point for phishing."
+ optional: true
+ resources:
+ - "https://datatracker.ietf.org/doc/html/rfc7208"
+ - "https://datatracker.ietf.org/doc/html/rfc6376"
+ - "https://dmarc.postmarkapp.com/"
+ - title: "Web application security"
+ steps:
+ - title: "The most common web flaws"
+ summary: "Study injection, broken access control and the other recurring weaknesses so you can recognise them in your own code."
+ resources:
+ - "https://owasp.org/"
+ - "https://cwe.mitre.org"
+ - title: "Hands-on web labs"
+ summary: "Exploit deliberately vulnerable applications in guided labs, the fastest way to understand why each flaw matters."
+ resources:
+ - "https://portswigger.net/web-security"
+ - title: "Browser defenses"
+ summary: "Learn how cookie attributes and browser policies block cross-site attacks, and when they fail to."
+ resources:
+ - "https://web.dev/articles/samesite-cookies-explained"
+ - title: "Web testing tools"
+ summary: "Use an intercepting proxy and an automated injection scanner to test applications you are authorised to assess."
+ resources:
+ - "https://www.zaproxy.org"
+ - "https://sqlmap.org"
+ - title: "Vulnerabilities, threats and defense"
+ steps:
+ - title: "Tracking vulnerabilities"
+ summary: "Read CVE entries and severity scores, and learn which flaws are being exploited right now so you can patch first."
+ resources:
+ - "https://www.cve.org/"
+ - "https://nvd.nist.gov/"
+ - "https://www.cisa.gov/known-exploited-vulnerabilities-catalog"
+ - title: "How attackers operate"
+ summary: "Map attacker tactics and techniques to the detections and controls that stop them."
+ resources:
+ - "https://attack.mitre.org/"
+ - title: "Hardening and scanning your systems"
+ summary: "Apply secure configuration baselines and scan your own hosts to find exposed services before someone else does."
+ resources:
+ - "https://www.cisecurity.org/"
+ - "https://nmap.org/"
+ - title: "Staying current"
+ summary: "Follow daily threat reports and official advisories to keep up with new campaigns and emergency patches."
+ optional: true
+ resources:
+ - "https://isc.sans.edu/"
+ - "https://www.cisa.gov/news-events/cybersecurity-advisories"
+ - title: "Security of AI applications"
+ summary: "Explore how prompt injection and adversarial inputs attack systems built on large language models."
+ optional: true
+ resources:
+ - "https://arxiv.org/abs/2302.12173"
+ - "https://llm-attacks.org/"
+see_also:
+ - name: "Cyber Security Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/cyber-security"
diff --git a/_data/en-US/learning-paths/data-analysis.yaml b/_data/en-US/learning-paths/data-analysis.yaml
new file mode 100644
index 0000000..a50dbe4
--- /dev/null
+++ b/_data/en-US/learning-paths/data-analysis.yaml
@@ -0,0 +1,77 @@
+title: "Data analysis"
+summary: "Learn to find, clean, summarise and visualise data, from spreadsheets and SQL to statistics and dashboards, using free courses, open textbooks and public datasets."
+subcategory: "business/data-and-analytics"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Foundations"
+ steps:
+ - title: "Spreadsheet analysis"
+ summary: "Sort, filter, chart and pivot data in a spreadsheet, the quickest way to start asking questions of a small dataset."
+ resources:
+ - "https://open.umn.edu/opentextbooks/textbooks/1687"
+ - title: "Descriptive statistics"
+ summary: "Understand averages, spread, distributions and sampling so you can summarise data honestly and spot when a number is misleading."
+ resources:
+ - "https://openstax.org/details/books/introductory-business-statistics-2e"
+ - title: "Querying data with SQL"
+ summary: "Select, filter, join and aggregate tables with SQL, the common language for pulling data out of almost every database."
+ resources:
+ - "https://www.kaggle.com/learn"
+ - "https://dbeaver.io/"
+ - title: "Finding and preparing data"
+ steps:
+ - title: "Finding datasets"
+ summary: "Search open government, economic and research portals for data that fits your question, and learn to read their documentation and licences."
+ resources:
+ - "https://www.data.gov/"
+ - "https://data.worldbank.org/"
+ - "https://datasetsearch.research.google.com/"
+ - title: "Cleaning data with Python"
+ summary: "Load tables into Python, fix missing values, types and duplicates, and reshape data so later analysis rests on reliable inputs."
+ resources:
+ - "https://www.kaggle.com/learn"
+ - "https://www.datacamp.com/"
+ - title: "Visual workflows"
+ summary: "Build repeatable analysis pipelines by connecting nodes instead of writing code, useful for teams that mix analysts and non-programmers."
+ optional: true
+ resources:
+ - "https://www.knime.com/"
+ - title: "Analysis and communication"
+ steps:
+ - title: "Hypothesis testing and regression"
+ summary: "Test whether differences are real and model relationships between variables, moving from describing data to drawing defensible conclusions."
+ resources:
+ - "https://openstax.org/details/books/introductory-business-statistics-2e"
+ - "https://www.edx.org/"
+ - title: "Charts that communicate"
+ summary: "Choose chart types that match your message and design clear visuals, so findings are understood by people who never see the data."
+ resources:
+ - "https://flowingdata.com/"
+ - "https://public.tableau.com/"
+ - title: "Dashboards with BI tools"
+ summary: "Connect a business intelligence tool to a database and publish dashboards that let colleagues explore and monitor metrics themselves."
+ resources:
+ - "https://www.metabase.com/"
+ - "https://superset.apache.org/"
+ - title: "Going further"
+ steps:
+ - title: "Practice on real problems"
+ summary: "Pick public datasets, ask your own questions and write up the answers, while reading how experienced analysts reason about data."
+ resources:
+ - "https://www.kaggle.com/datasets"
+ - "https://simplystatistics.org/"
+ - title: "Predictive analysis"
+ summary: "Take a first step toward forecasting outcomes with simple machine learning models built on the same cleaned data you already analyse."
+ optional: true
+ resources:
+ - "https://scikit-learn.org/"
+ - "https://towardsdatascience.com/"
+ - title: "Cloud data warehouses"
+ summary: "Run SQL over very large tables in a serverless warehouse when your data outgrows a laptop or a single database server."
+ optional: true
+ resources:
+ - "https://docs.cloud.google.com/bigquery/docs"
+see_also:
+ - name: "Data Analyst Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/data-analyst"
diff --git a/_data/en-US/learning-paths/databases.yaml b/_data/en-US/learning-paths/databases.yaml
new file mode 100644
index 0000000..471e737
--- /dev/null
+++ b/_data/en-US/learning-paths/databases.yaml
@@ -0,0 +1,82 @@
+title: "Databases"
+summary: "Learn to store and query data with SQL, design sound schemas and indexes, try document and key-value stores, and manage databases safely as they change."
+subcategory: "development/databases"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "First steps"
+ steps:
+ - title: "What a database is for"
+ summary: "Survey the main kinds of databases, relational, document, key-value and wide-column, and what problem each one solves."
+ resources:
+ - "https://db-engines.com"
+ - title: "Your first SQL database"
+ summary: "Create tables and run SELECT, INSERT, UPDATE and DELETE on a zero-setup embedded database to learn SQL by doing."
+ resources:
+ - "https://www.sqlite.org"
+ - title: "PostgreSQL and a client tool"
+ summary: "Install a full relational server and a graphical client so you can explore schemas, run queries and inspect results."
+ resources:
+ - "https://www.postgresql.org/docs/"
+ - "https://dbeaver.io"
+ - "https://www.pgadmin.org"
+ - title: "Designing and querying well"
+ steps:
+ - title: "Schema design and constraints"
+ summary: "Model entities and relationships with keys and constraints so the database itself keeps your data consistent."
+ resources:
+ - "https://www.postgresql.org/docs/"
+ - "https://dataintensive.net"
+ - title: "Indexes and query performance"
+ summary: "Learn how indexes work and how to read query plans, the single biggest lever for making slow queries fast."
+ resources:
+ - "https://use-the-index-luke.com"
+ - title: "Transactions and concurrency"
+ summary: "Understand ACID guarantees and isolation levels to avoid lost updates when many users write at the same time."
+ resources:
+ - "https://dataintensive.net"
+ - "https://db.cs.cmu.edu/"
+ - title: "Users and privileges"
+ summary: "Grant each application and person only the access it needs, an essential step before exposing any database."
+ resources:
+ - "https://www.postgresql.org/docs/current/ddl-priv.html"
+ - title: "Beyond relational"
+ steps:
+ - title: "Document databases"
+ summary: "Store flexible JSON-like documents and learn when that model fits better than tables, and when it does not."
+ resources:
+ - "https://www.mongodb.com/docs/manual/"
+ - "https://www.mongodb.com"
+ - title: "Key-value stores and caching"
+ summary: "Use an in-memory store for caching, sessions and counters to take load off your main database."
+ resources:
+ - "https://redis.io"
+ - title: "Distributed wide-column databases"
+ summary: "See how a database spreads data across many machines and what consistency trade-offs that brings."
+ optional: true
+ resources:
+ - "https://cassandra.apache.org/"
+ - title: "Running databases"
+ steps:
+ - title: "Schema migrations"
+ summary: "Version schema changes as scripts that run in order, so every environment evolves the same way without manual edits."
+ resources:
+ - "https://flywaydb.org"
+ - "https://www.liquibase.com"
+ - title: "How storage engines work"
+ summary: "Look inside B-trees, logs and buffer pools to understand why databases behave the way they do under load."
+ optional: true
+ resources:
+ - "https://databass.dev"
+ - "https://db.cs.cmu.edu/"
+ - title: "Following database research"
+ summary: "Read accessible summaries of influential papers to see where database systems are heading."
+ optional: true
+ resources:
+ - "https://blog.acolyer.org/"
+ - "https://www.vldb.org/"
+see_also:
+ - name: "SQL Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/sql"
+ - name: "PostgreSQL DBA Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/postgresql-dba"
diff --git a/_data/en-US/learning-paths/devops.yaml b/_data/en-US/learning-paths/devops.yaml
new file mode 100644
index 0000000..efff88b
--- /dev/null
+++ b/_data/en-US/learning-paths/devops.yaml
@@ -0,0 +1,93 @@
+title: "DevOps and cloud"
+summary: "Go from the Linux shell and Git to containers, automated delivery, infrastructure as code and Kubernetes, building the habits that keep software shipping reliably."
+subcategory: "development/development-environment"
+level: "intermediate"
+source: "ipl"
+stages:
+ - title: "Foundations"
+ steps:
+ - title: "Linux and the command line"
+ summary: "Get comfortable with the shell, files, processes and permissions, since almost every server, container and pipeline runs on Linux."
+ resources:
+ - "https://linuxcommand.org/"
+ - "https://missing.csail.mit.edu/"
+ - title: "Version control with Git"
+ summary: "Learn commits, branches, merges and remotes well, because every automated pipeline starts from a change pushed to a repository."
+ resources:
+ - "https://git-scm.com/docs"
+ - "https://nvie.com/posts/a-successful-git-branching-model/"
+ - title: "How operating systems work"
+ summary: "Study processes, memory, isolation and virtualization so containers and virtual machines stop feeling like magic."
+ optional: true
+ resources:
+ - "https://pages.cs.wisc.edu/~remzi/OSTEP/"
+ - "https://www.qemu.org/docs/master/"
+ - title: "Containers"
+ steps:
+ - title: "Running your first containers"
+ summary: "Package an application with its dependencies into an image and run it the same way on any machine."
+ resources:
+ - "https://docs.docker.com/"
+ - "https://docs.podman.io/en/latest/"
+ - title: "Images, layers and registries"
+ summary: "Understand image layers, the open container standards and public registries, so you can build small images and share them safely."
+ resources:
+ - "https://opencontainers.org"
+ - "https://hub.docker.com"
+ - "https://docker-saigon.github.io/post/Docker-Internals/"
+ - title: "Build a container runtime yourself"
+ summary: "Recreate namespaces, cgroups and chroot by hand to see exactly which Linux features a container engine combines."
+ optional: true
+ resources:
+ - "https://github.com/Fewbytes/rubber-docker"
+ - "https://github.com/opencontainers/runc"
+ - title: "Automation and delivery"
+ steps:
+ - title: "Continuous integration and delivery"
+ summary: "Automate building, testing and releasing every change, so integration problems surface within minutes instead of at release time."
+ resources:
+ - "https://martinfowler.com"
+ - "https://www.jenkins.io/"
+ - "https://cd.foundation/"
+ - title: "Configuration management"
+ summary: "Describe server setup as repeatable code instead of manual steps, so any machine can be rebuilt to a known state."
+ resources:
+ - "https://www.redhat.com/en/ansible-collaborative"
+ - "https://saltproject.io"
+ - title: "Infrastructure as code"
+ summary: "Declare networks, machines and cloud services in versioned files, review them like code and apply them predictably."
+ resources:
+ - "https://github.com/hashicorp/terraform"
+ - "https://docs.cloud.google.com/docs/terraform/best-practices/general-style-structure"
+ - title: "Reproducible development environments"
+ summary: "Pin tools and dependencies so every developer and every pipeline runs exactly the same environment."
+ optional: true
+ resources:
+ - "https://nix.dev"
+ - "https://containers.dev"
+ - title: "Cloud and orchestration"
+ steps:
+ - title: "Kubernetes"
+ summary: "Learn pods, deployments and services to run many containers across a cluster with scaling, rollouts and self-healing."
+ resources:
+ - "https://kubernetes.io/docs/"
+ - "https://kubernetes.io/blog/"
+ - title: "Managed cloud platforms"
+ summary: "Compare serverless containers and reference architectures to decide how much infrastructure you actually want to operate yourself."
+ resources:
+ - "https://docs.cloud.google.com/run/docs"
+ - "https://docs.cloud.google.com/architecture"
+ - "https://aws.amazon.com/blogs/architecture/"
+ - title: "Monitoring and error tracking"
+ summary: "Collect errors and performance data from production so problems are noticed and diagnosed before users report them."
+ resources:
+ - "https://sentry.io"
+ - title: "Distributed systems thinking"
+ summary: "Study replication, partitioning and failure modes, the ideas underneath every cloud service you deploy to."
+ optional: true
+ resources:
+ - "https://dataintensive.net/"
+ - "https://www.distributed-systems.net/"
+see_also:
+ - name: "DevOps Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/devops"
diff --git a/_data/en-US/learning-paths/frontend.yaml b/_data/en-US/learning-paths/frontend.yaml
new file mode 100644
index 0000000..356ee78
--- /dev/null
+++ b/_data/en-US/learning-paths/frontend.yaml
@@ -0,0 +1,92 @@
+title: "Frontend development"
+summary: "Build accessible, fast and responsive web interfaces, moving from how browsers render pages through HTML, CSS and JavaScript to modern tooling and frameworks."
+subcategory: "development/frontend-development"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "How the web works and HTML"
+ steps:
+ - title: "How browsers load a page"
+ summary: "Learn how a browser requests, parses and renders a page, giving every later topic a mental model to attach to."
+ resources:
+ - "https://developer.mozilla.org"
+ - "https://hpbn.co"
+ - title: "Semantic HTML"
+ summary: "Write well-structured documents with meaningful elements, because structure drives accessibility, search engines and later styling."
+ resources:
+ - "https://web.dev/learn"
+ - "https://validator.w3.org/nu/"
+ - "https://whatwg.org"
+ - title: "Styling with CSS"
+ steps:
+ - title: "CSS fundamentals"
+ summary: "Understand the cascade, specificity, the box model and units so styles behave predictably instead of by trial and error."
+ resources:
+ - "https://web.dev/learn"
+ - "https://css-tricks.com"
+ - title: "Layout with Flexbox and Grid"
+ summary: "Practise the two modern layout systems, which replace old float hacks and handle most page and component layouts."
+ resources:
+ - "https://css-tricks.com"
+ - "https://www.freecodecamp.org/learn/2022/responsive-web-design/"
+ - title: "Responsive design"
+ summary: "Make pages adapt to any screen with fluid layouts, media queries and responsive images, since most visitors browse on phones."
+ resources:
+ - "https://www.freecodecamp.org/learn/2022/responsive-web-design/"
+ - "https://learningwebdesign.com"
+ - title: "Experiment and find inspiration"
+ summary: "See how the same markup can take radically different looks, and try small ideas quickly in an online editor."
+ optional: true
+ resources:
+ - "https://www.csszengarden.com"
+ - "https://codepen.io"
+ - "https://tympanus.net/codrops/"
+ - title: "Interactivity and quality"
+ steps:
+ - title: "JavaScript and the DOM"
+ summary: "Use JavaScript to read and change the page and respond to events, the basis of every interactive interface."
+ resources:
+ - "https://developer.mozilla.org"
+ - "https://www.theodinproject.com"
+ - title: "Accessibility"
+ summary: "Apply WCAG principles and inclusive patterns so people using keyboards, screen readers or magnification can use what you build."
+ resources:
+ - "https://www.w3.org/WAI/standards-guidelines/wcag/"
+ - "https://inclusive-components.design"
+ - "https://wave.webaim.org"
+ - title: "Browser compatibility"
+ summary: "Check which features each browser supports before relying on them, and follow how the platform keeps evolving."
+ resources:
+ - "https://caniuse.com"
+ - "https://hacks.mozilla.org/"
+ - title: "Web performance"
+ summary: "Measure loading and rendering speed with real tools, then fix the bottlenecks that most affect Core Web Vitals."
+ resources:
+ - "https://pagespeed.web.dev"
+ - "https://www.webpagetest.org"
+ - "https://web.dev/articles/speed-rendering"
+ - title: "Tooling and frameworks"
+ steps:
+ - title: "Version control with Git"
+ summary: "Track changes, branch safely and collaborate through Git, a daily tool on every professional frontend team."
+ resources:
+ - "https://git-scm.com/docs"
+ - "https://missing.csail.mit.edu/"
+ - title: "Packages and build tools"
+ summary: "Install dependencies from npm and use a fast dev server and bundler to organise larger projects."
+ resources:
+ - "https://www.npmjs.com"
+ - "https://vite.dev"
+ - title: "A component framework"
+ summary: "Learn one component-based library to build complex interfaces from small reusable pieces with predictable state."
+ resources:
+ - "https://react.dev"
+ - "https://vuejs.org"
+ - title: "Utility-first CSS"
+ summary: "Try composing designs from small utility classes, a popular alternative to writing custom stylesheets for every component."
+ optional: true
+ resources:
+ - "https://tailwindcss.com"
+see_also:
+ - name: "Frontend Developer Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/frontend"
diff --git a/_data/en-US/learning-paths/javascript.yaml b/_data/en-US/learning-paths/javascript.yaml
new file mode 100644
index 0000000..612f857
--- /dev/null
+++ b/_data/en-US/learning-paths/javascript.yaml
@@ -0,0 +1,81 @@
+title: "JavaScript programming"
+summary: "Learn JavaScript from its core syntax and functions through the browser DOM, asynchronous code and Node.js, ending with modules, TypeScript and UI libraries."
+subcategory: "development/programming-languages"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Core language"
+ steps:
+ - title: "Syntax, values and types"
+ summary: "Learn variables, primitive types, operators and control flow, the building blocks every JavaScript program is made from."
+ resources:
+ - "https://developer.mozilla.org"
+ - title: "Functions, scope and closures"
+ summary: "Understand how functions capture variables and how scope works, which explains most surprising behaviour in real code."
+ resources:
+ - "https://developer.mozilla.org"
+ - "https://web.dev/"
+ - title: "Objects, arrays and JSON"
+ summary: "Model data with objects and arrays, use their built-in methods and exchange structured data as JSON."
+ resources:
+ - "https://web.dev/"
+ - "https://json-schema.org/"
+ - title: "JavaScript in the browser"
+ steps:
+ - title: "The DOM and events"
+ summary: "Select, create and update page elements and handle user events, turning static HTML into interactive pages."
+ resources:
+ - "https://whatwg.org"
+ - "https://css-tricks.com"
+ - title: "Browser support and new features"
+ summary: "Check where a language or web API feature is supported and follow how browsers ship new capabilities."
+ resources:
+ - "https://caniuse.com"
+ - "https://hacks.mozilla.org/"
+ - title: "Smooth rendering"
+ summary: "Learn how scripts interact with the rendering pipeline so animations and updates stay fluid instead of janky."
+ optional: true
+ resources:
+ - "https://web.dev/articles/speed-rendering"
+ - title: "Asynchronous code and Node.js"
+ steps:
+ - title: "The event loop and async code"
+ summary: "Understand callbacks, promises and async/await on top of the event loop, essential for network requests and I/O."
+ resources:
+ - "https://nodejs.org"
+ - title: "Node.js and npm"
+ summary: "Run JavaScript outside the browser and manage third-party packages, opening the door to scripts, tools and servers."
+ resources:
+ - "https://nodejs.org"
+ - "https://www.npmjs.com"
+ - title: "Streams"
+ summary: "Process large files and network data piece by piece with Node streams instead of loading everything into memory."
+ optional: true
+ resources:
+ - "https://www.freecodecamp.org/news/node-js-streams-everything-you-need-to-know-c9141306be93"
+ - title: "A small web server"
+ summary: "Build a simple server with Express and environment-based configuration to see how JavaScript powers the backend."
+ resources:
+ - "https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs"
+ - "https://github.com/motdotla/dotenv"
+ - title: "Ecosystem and scale"
+ steps:
+ - title: "Modules and build tools"
+ summary: "Split code into ES modules and use a modern dev server and bundler to ship them efficiently to browsers."
+ resources:
+ - "https://vite.dev"
+ - "https://www.npmjs.com"
+ - title: "TypeScript"
+ summary: "Add static types to catch mistakes before running code and make larger JavaScript codebases easier to change."
+ resources:
+ - "https://www.typescriptlang.org/docs/handbook/"
+ - "https://www.typescriptlang.org"
+ - title: "UI libraries"
+ summary: "Apply your JavaScript skills in a component library to build interfaces from reusable, state-driven pieces."
+ resources:
+ - "https://react.dev"
+ - "https://vuejs.org"
+ - "https://lit.dev/"
+see_also:
+ - name: "JavaScript Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/javascript"
diff --git a/_data/en-US/learning-paths/machine-learning.yaml b/_data/en-US/learning-paths/machine-learning.yaml
new file mode 100644
index 0000000..f1f139e
--- /dev/null
+++ b/_data/en-US/learning-paths/machine-learning.yaml
@@ -0,0 +1,83 @@
+title: "Machine learning"
+summary: "Build models that learn from data, from classical algorithms and honest evaluation to neural networks and transformers, using official documentation and free university courses."
+subcategory: "computing/machine-learning"
+level: "intermediate"
+source: "ipl"
+stages:
+ - title: "Foundations"
+ steps:
+ - title: "The theory behind learning"
+ summary: "Review the linear algebra, probability and optimisation behind supervised learning so later algorithms read as variations on familiar ideas."
+ resources:
+ - "https://cs229.stanford.edu/"
+ - title: "Your first models"
+ summary: "Fit, predict and score simple models with a consistent API, learning the train and test workflow every project follows."
+ resources:
+ - "https://scikit-learn.org/stable/user_guide.html"
+ - "https://machinelearningmastery.com/"
+ - title: "Datasets for practice"
+ summary: "Pick well-documented benchmark datasets to experiment with, so you can compare your results against known baselines."
+ resources:
+ - "https://archive.ics.uci.edu/"
+ - "https://www.openml.org/"
+ - "https://www.kaggle.com/datasets"
+ - title: "Classical machine learning"
+ steps:
+ - title: "Linear models and regularisation"
+ summary: "Understand linear and logistic regression, overfitting and regularisation, the ideas that explain why models generalise or fail."
+ resources:
+ - "https://scikit-learn.org/stable/user_guide.html"
+ - "https://cs229.stanford.edu/"
+ - title: "Evaluation and validation"
+ summary: "Use cross-validation, suitable metrics and data leakage checks so reported accuracy reflects how a model behaves on new data."
+ resources:
+ - "https://scikit-learn.org/"
+ - "https://machinelearningmastery.com/"
+ - title: "Trees and gradient boosting"
+ summary: "Learn decision trees and boosted ensembles, often the strongest choice for tabular data, and train them with dedicated fast libraries."
+ resources:
+ - "https://xgboost.readthedocs.io/"
+ - "https://lightgbm.readthedocs.io/"
+ - title: "Hyperparameter tuning"
+ summary: "Search model settings automatically instead of by hand, with pruning to stop unpromising trials early and save compute."
+ optional: true
+ resources:
+ - "https://optuna.org/"
+ - title: "Deep learning"
+ steps:
+ - title: "How neural networks learn"
+ summary: "Build intuition for layers, gradient descent and backpropagation before writing code, so training behaviour makes sense when it goes wrong."
+ resources:
+ - "https://www.3blue1brown.com/topics/neural-networks"
+ - "https://sebastianraschka.com/blog/2021/dl-course.html"
+ - title: "Training with PyTorch"
+ summary: "Write tensors, models and training loops in a deep learning framework, and learn to load data and track losses on a GPU."
+ resources:
+ - "https://docs.pytorch.org/tutorials/"
+ - "https://pytorch.org/"
+ - title: "Practical deep learning"
+ summary: "Train image and text models end to end with transfer learning, focusing on what works in practice before diving into theory."
+ resources:
+ - "https://course.fast.ai/"
+ - title: "Transformers"
+ summary: "Understand attention and the transformer architecture behind modern language models, then fine-tune pretrained models for your own tasks."
+ optional: true
+ resources:
+ - "https://jalammar.github.io/illustrated-transformer/"
+ - "https://huggingface.co/learn/nlp-course"
+ - title: "Practice and research"
+ steps:
+ - title: "Tracking experiments"
+ summary: "Log parameters, metrics and model versions for every run so experiments are reproducible and easy to compare later."
+ resources:
+ - "https://mlflow.org/"
+ - title: "Reading research"
+ summary: "Read clear visual explanations and open peer-reviewed papers to follow how the field evolves beyond tutorials and courses."
+ optional: true
+ resources:
+ - "https://distill.pub/"
+ - "https://openreview.net/"
+ - "https://www.jmlr.org/"
+see_also:
+ - name: "Machine Learning Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/machine-learning"
diff --git a/_data/en-US/learning-paths/mobile.yaml b/_data/en-US/learning-paths/mobile.yaml
new file mode 100644
index 0000000..d3ed18a
--- /dev/null
+++ b/_data/en-US/learning-paths/mobile.yaml
@@ -0,0 +1,75 @@
+title: "Mobile app development"
+summary: "Build native apps for Android with Kotlin and iOS with SwiftUI, then go cross-platform with Flutter or React Native, add backend services, test them and ship them."
+subcategory: "development/plataforms"
+level: "intermediate"
+source: "ipl"
+stages:
+ - title: "Languages and design"
+ steps:
+ - title: "Kotlin for Android"
+ summary: "Learn Kotlin's syntax, null safety, classes and coroutines, since it is the main language for modern Android apps."
+ resources:
+ - "https://kotlinlang.org/docs/home.html"
+ - title: "Swift for Apple platforms"
+ summary: "Learn Swift's optionals, structs, protocols and closures, the language foundation for every iPhone and iPad app you will build."
+ resources:
+ - "https://www.swift.org/documentation/"
+ - title: "Platform design guidelines"
+ summary: "Study how each platform handles navigation, typography, gestures and accessibility, so your apps feel at home on Android and iOS."
+ resources:
+ - "https://m3.material.io/"
+ - "https://developer.apple.com/design/human-interface-guidelines/"
+ - title: "Native development"
+ steps:
+ - title: "Android apps with Jetpack Compose"
+ summary: "Follow the official courses to build Android screens with Compose, manage state, navigate between screens and store data locally."
+ resources:
+ - "https://developer.android.com/courses"
+ - "https://developer.android.com/docs"
+ - title: "iOS apps with SwiftUI"
+ summary: "Build complete iOS apps step by step with SwiftUI views, data flow and lists, then explore the platform frameworks in depth."
+ resources:
+ - "https://developer.apple.com/tutorials/swiftui"
+ - "https://developer.apple.com/documentation/"
+ - title: "Cross-platform development"
+ steps:
+ - title: "Flutter"
+ summary: "Write one Dart codebase that renders the same widgets on Android and iOS, and compare that model with native development."
+ resources:
+ - "https://docs.flutter.dev/"
+ - title: "React Native with Expo"
+ summary: "Use React and JavaScript to build native mobile apps, letting Expo handle project setup, device testing and builds."
+ resources:
+ - "https://reactnative.dev/docs/getting-started"
+ - "https://docs.expo.dev/"
+ - title: "TypeScript for mobile code"
+ summary: "Add static types to React Native projects to catch mistakes early and keep a growing mobile codebase easy to change."
+ optional: true
+ resources:
+ - "https://www.typescriptlang.org/docs/handbook/"
+ - title: "Backend, testing and release"
+ steps:
+ - title: "Backend services"
+ summary: "Connect your app to authentication, cloud databases, storage and push notifications without running your own servers."
+ resources:
+ - "https://firebase.google.com/docs"
+ - title: "Testing mobile apps"
+ summary: "Write fast unit tests for app logic and fewer UI tests on top, following the test pyramid to keep releases reliable."
+ resources:
+ - "https://junit.org/"
+ - "https://martinfowler.com"
+ - "https://testing.googleblog.com"
+ - title: "Publishing to the app stores"
+ summary: "Learn app signing, store listings, review rules and staged rollouts for Google Play and the App Store before your first release."
+ resources:
+ - "https://developer.android.com/docs"
+ - "https://developer.apple.com/documentation/"
+see_also:
+ - name: "Android Developer Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/android"
+ - name: "iOS Developer Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/ios"
+ - name: "Flutter Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/flutter"
+ - name: "React Native Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/react-native"
diff --git a/_data/en-US/learning-paths/python.yaml b/_data/en-US/learning-paths/python.yaml
new file mode 100644
index 0000000..0c6893a
--- /dev/null
+++ b/_data/en-US/learning-paths/python.yaml
@@ -0,0 +1,77 @@
+title: "Python programming"
+summary: "Learn Python from your first program to clean, idiomatic code, automate everyday tasks, manage packages and take your first steps into data science."
+subcategory: "development/programming-languages"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Getting started"
+ steps:
+ - title: "Install and run Python"
+ summary: "Install Python, run the interactive interpreter and execute your first script so you can experiment with every concept that follows."
+ resources:
+ - "https://www.python.org/"
+ - "https://docs.python.org/3/"
+ - title: "Variables, types and control flow"
+ summary: "Learn variables, strings, numbers, conditions and loops, the building blocks every Python program is made of."
+ resources:
+ - "https://www.py4e.com/"
+ - "https://docs.python.org/3/tutorial/"
+ - title: "Functions, data structures and files"
+ summary: "Organise code into functions and modules, work with lists and dictionaries, and read and write files on disk."
+ resources:
+ - "https://docs.python.org/3/tutorial/"
+ - "https://www.py4e.com/"
+ - title: "Writing good Python"
+ steps:
+ - title: "Code style with PEP 8"
+ summary: "Follow the official naming, layout and formatting conventions so your code is easy for others, and yourself, to read later."
+ resources:
+ - "https://peps.python.org/pep-0008/"
+ - title: "The standard library"
+ summary: "Explore the modules that ship with Python, from dates and paths to JSON and regular expressions, before reaching for extra packages."
+ resources:
+ - "https://docs.python.org/3/"
+ - title: "Shell and version control"
+ summary: "Get comfortable with the terminal and Git so you can run scripts, track changes and share your projects."
+ optional: true
+ resources:
+ - "https://missing.csail.mit.edu/"
+ - "https://git-scm.com/docs"
+ - title: "Practical projects"
+ steps:
+ - title: "Automate everyday tasks"
+ summary: "Write small programs that rename files, fill spreadsheets, scrape web pages and send emails, turning concepts into useful tools."
+ resources:
+ - "https://automatetheboringstuff.com/"
+ - title: "Packages and virtual environments"
+ summary: "Install third-party libraries with pip inside isolated virtual environments so each project keeps its own dependencies."
+ resources:
+ - "https://packaging.python.org/en/latest/"
+ - "https://pip.pypa.io/en/stable/"
+ - "https://pypi.org"
+ - title: "Publish your own package"
+ summary: "Structure a project, describe its metadata and build a distribution so others can install your code from the package index."
+ optional: true
+ resources:
+ - "https://packaging.python.org/en/latest/"
+ - "https://pypi.org"
+ - title: "Into data science"
+ steps:
+ - title: "Practise with real datasets"
+ summary: "Load public datasets and answer simple questions with Python, building the habit of exploring data before modelling it."
+ resources:
+ - "https://www.kaggle.com/datasets"
+ - "https://archive.ics.uci.edu/"
+ - title: "Machine learning with scikit-learn"
+ summary: "Train and evaluate classic models such as regression and decision trees with a consistent, well-documented Python library."
+ resources:
+ - "https://scikit-learn.org/"
+ - "https://www.fast.ai/"
+ - title: "Follow the language"
+ summary: "Keep up with new Python releases and core development news to learn features as they arrive in the language."
+ optional: true
+ resources:
+ - "https://www.python.org/"
+see_also:
+ - name: "Python Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/python"
diff --git a/_data/en-US/learning-paths/ux-design.yaml b/_data/en-US/learning-paths/ux-design.yaml
new file mode 100644
index 0000000..2c9910d
--- /dev/null
+++ b/_data/en-US/learning-paths/ux-design.yaml
@@ -0,0 +1,87 @@
+title: "UX design"
+summary: "Learn how people perceive and use interfaces, then practise research, structure, prototyping and testing until you can design and defend a usable product flow."
+subcategory: "design/user-experience"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "How people use things"
+ steps:
+ - title: "Usability basics"
+ summary: "Read the classic ideas of affordances, signifiers and mental models, which explain why some interfaces feel obvious and others confuse."
+ resources:
+ - "https://jnd.org/books/"
+ - "https://sensible.com/dont-make-me-think/"
+ - title: "Psychology behind interfaces"
+ summary: "Study the cognitive principles and biases that shape attention, memory and decisions, so your design choices rest on how minds actually work."
+ resources:
+ - "https://lawsofux.com"
+ - "https://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed"
+ - title: "The design process"
+ summary: "Get an overview of human-centred design and the Double Diamond, learning when to explore problems broadly and when to converge on solutions."
+ resources:
+ - "https://www.designcouncil.org.uk/"
+ - "https://www.designkit.org"
+ - "https://dschool.stanford.edu"
+ - title: "Understanding users"
+ steps:
+ - title: "User research methods"
+ summary: "Learn to plan interviews, observation and surveys, and to pick a method that answers the question you actually have about users."
+ resources:
+ - "https://www.nngroup.com/articles/"
+ - "https://www.interaction-design.org/courses"
+ - title: "Synthesis and journey maps"
+ summary: "Turn research notes into personas, empathy maps and journey maps that the whole team can use to agree on the real problem."
+ resources:
+ - "https://miro.com"
+ - "https://mural.co"
+ - title: "Running workshops"
+ summary: "Practise facilitating ideation and co-creation sessions, because UX work often means guiding stakeholders toward shared decisions."
+ optional: true
+ resources:
+ - "https://gamestorming.com"
+ - "https://toolbox.hyperisland.com/"
+ - "https://www.sessionlab.com/"
+ - title: "Structure and prototypes"
+ steps:
+ - title: "Information architecture and flows"
+ summary: "Organise content, navigation and task flows so users can predict where things are and finish what they came to do."
+ resources:
+ - "https://boxesandarrows.com"
+ - "https://pageflows.com"
+ - title: "Wireframing"
+ summary: "Sketch low-fidelity layouts quickly to test structure and priorities before spending time on colour, type and polish."
+ resources:
+ - "https://balsamiq.com/"
+ - "https://penpot.app"
+ - title: "Interactive prototypes"
+ summary: "Build clickable prototypes in a design tool so you can test realistic interactions and hand clear specifications to developers."
+ resources:
+ - "https://www.figma.com"
+ - "https://help.figma.com"
+ - "https://penpot.app"
+ - title: "Learning from real patterns"
+ summary: "Browse how shipped products solve common screens like onboarding and checkout, borrowing proven patterns instead of reinventing them."
+ optional: true
+ resources:
+ - "https://mobbin.com"
+ - "https://uxmovement.com"
+ - title: "Evaluate and include everyone"
+ steps:
+ - title: "Usability testing"
+ summary: "Run moderated and unmoderated tests on prototypes, watching where people stumble and turning findings into prioritised design changes."
+ resources:
+ - "https://maze.co/"
+ - "https://www.nngroup.com/articles/"
+ - title: "Accessible design"
+ summary: "Apply accessibility guidance to layouts, forms and content so your product works for people using assistive technologies."
+ resources:
+ - "https://www.w3.org/WAI/tutorials/"
+ - title: "Portfolio and next steps"
+ summary: "Document projects as case studies and keep learning through structured courses and the practitioner community writing about UX."
+ resources:
+ - "https://www.coursera.org/professional-certificates/google-ux-design"
+ - "https://uxdesign.cc"
+ - "https://www.smashingmagazine.com/category/ux-design/"
+see_also:
+ - name: "UX Design Roadmap (roadmap.sh)"
+ url: "https://roadmap.sh/ux-design"
diff --git a/_data/pt-BR/learning-paths/backend.yaml b/_data/pt-BR/learning-paths/backend.yaml
new file mode 100644
index 0000000..867bad1
--- /dev/null
+++ b/_data/pt-BR/learning-paths/backend.yaml
@@ -0,0 +1,88 @@
+title: "Desenvolvimento backend"
+summary: "Aprenda a construir aplicações do lado do servidor dominando HTTP, um framework web, bancos de dados, projeto de APIs e as decisões de arquitetura que permitem escalar."
+subcategory: "development/backend-development"
+level: "intermediate"
+source: "ipl"
+stages:
+ - title: "Servidor e HTTP"
+ steps:
+ - title: "HTTP e o lado do servidor"
+ summary: "Entenda requisições, respostas, cabeçalhos e cookies, porque toda decisão de backend acaba passando pelo protocolo HTTP."
+ resources:
+ - "https://developer.mozilla.org"
+ - title: "Escolha um framework"
+ summary: "Monte uma aplicação pequena com rotas e middlewares em um framework popular para entender o ciclo de uma requisição."
+ resources:
+ - "https://nodejs.org"
+ - "https://www.djangoproject.com"
+ - "https://fastapi.tiangolo.com"
+ - "https://spring.io"
+ - title: "Bancos de dados"
+ steps:
+ - title: "SQL e modelagem relacional"
+ summary: "Modele tabelas, escreva consultas SQL e use transações, a escolha padrão de armazenamento na maioria dos sistemas."
+ resources:
+ - "https://www.postgresql.org"
+ - "https://www.cursoemvideo.com"
+ - "https://savepoint.blog.br"
+ - title: "Índices e desempenho de consultas"
+ summary: "Aprenda como os índices funcionam e como ler planos de execução, a correção mais comum para endpoints lentos."
+ resources:
+ - "https://use-the-index-luke.com"
+ - "https://planet.postgresql.org"
+ - title: "Migrações de esquema"
+ summary: "Versione as mudanças do banco junto com o código para que todos os ambientes evoluam com segurança."
+ resources:
+ - "https://flywaydb.org"
+ - "https://www.liquibase.com"
+ - title: "Bancos NoSQL"
+ summary: "Saiba quando um banco de documentos ou um armazenamento em memória serve melhor que tabelas relacionais, e o que se perde."
+ optional: true
+ resources:
+ - "https://www.mongodb.com"
+ - "https://redis.io"
+ - "https://db-engines.com"
+ - title: "Ferramentas de administração"
+ summary: "Use clientes gráficos para explorar esquemas, rodar consultas e administrar bancos sem depender só do terminal."
+ optional: true
+ resources:
+ - "https://dbeaver.io"
+ - "https://www.pgadmin.org"
+ - title: "APIs, arquitetura e qualidade"
+ steps:
+ - title: "Projetar e testar APIs"
+ summary: "Defina recursos consistentes, documente contratos e teste requisições para que os clientes possam confiar na sua API."
+ resources:
+ - "https://www.postman.com"
+ - "https://developer.mozilla.org"
+ - title: "Arquitetura e padrões de projeto"
+ summary: "Aplique princípios de engenharia de software e padrões de projeto para manter o código compreensível enquanto ele cresce."
+ resources:
+ - "https://engsoftmoderna.info"
+ - "https://refactoring.guru/pt-br"
+ - title: "Diagramas de arquitetura"
+ summary: "Documente a arquitetura com diagramas em níveis de detalhe, facilitando conversas com o time sobre o sistema."
+ optional: true
+ resources:
+ - "https://c4model.com"
+ - "https://plantuml.com"
+ - title: "Qualidade de código"
+ summary: "Automatize a análise estática para encontrar bugs, vulnerabilidades e código duplicado antes que cheguem à produção."
+ resources:
+ - "https://www.sonarsource.com"
+ - title: "Escala e sistemas distribuídos"
+ steps:
+ - title: "Cache e mensageria"
+ summary: "Alivie o banco com cache e desacople serviços com filas de eventos, duas ferramentas centrais para lidar com crescimento."
+ resources:
+ - "https://redis.io"
+ - "https://kafka.apache.org"
+ - title: "Sistemas intensivos em dados"
+ summary: "Estude replicação, particionamento e consistência, e veja como empresas reais escalaram seus backends na prática."
+ resources:
+ - "https://dataintensive.net"
+ - "https://highscalability.com"
+ - "https://martinfowler.com"
+see_also:
+ - name: "Roadmap Backend Developer (roadmap.sh)"
+ url: "https://roadmap.sh/backend"
diff --git a/_data/pt-BR/learning-paths/computer-science.yaml b/_data/pt-BR/learning-paths/computer-science.yaml
new file mode 100644
index 0000000..d929ad4
--- /dev/null
+++ b/_data/pt-BR/learning-paths/computer-science.yaml
@@ -0,0 +1,80 @@
+title: "Fundamentos de ciência da computação"
+summary: "Construa uma base sólida em ciência da computação, passando por algoritmos, sistemas operacionais, redes e teoria, com materiais abertos e referências da comunidade brasileira."
+subcategory: "computing/computer-science"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Primeiros passos"
+ steps:
+ - title: "Um roteiro para a área"
+ summary: "Veja quais disciplinas formam o núcleo da computação e em que ordem estudá-las para não se perder estudando sozinho."
+ resources:
+ - "https://teachyourselfcs.com/"
+ - title: "Linux e linha de comando"
+ summary: "Ganhe intimidade com o terminal, arquivos e processos, pois quase todo o resto do estudo passa por ferramentas de linha de comando."
+ resources:
+ - "https://www.guiafoca.org/"
+ - "https://linuxcommand.org/"
+ - title: "Controle de versão"
+ summary: "Use o Git para guardar exercícios e experimentos, um hábito que facilita qualquer projeto ou trabalho da faculdade."
+ resources:
+ - "https://git-scm.com/"
+ - title: "Algoritmos e estruturas de dados"
+ steps:
+ - title: "Estruturas de dados e algoritmos básicos"
+ summary: "Estude vetores, listas, árvores, ordenação e busca com material didático em português e exemplos de código em C."
+ resources:
+ - "https://www.ime.usp.br/~pf/algoritmos/"
+ - "https://jeffe.cs.illinois.edu/teaching/algorithms/"
+ - title: "Grafos"
+ summary: "Aprenda busca em largura e profundidade, caminhos mínimos e árvores geradoras, que modelam redes, mapas e dependências."
+ resources:
+ - "https://www.ime.usp.br/~pf/algoritmos_para_grafos/"
+ - title: "Análise e projeto de algoritmos"
+ summary: "Domine análise assintótica, recursão e programação dinâmica para estimar o custo de uma solução antes de implementá-la."
+ resources:
+ - "https://mitpress.mit.edu/algorithms/"
+ - "https://ocw.mit.edu/courses/6-046j-design-and-analysis-of-algorithms-spring-2015/"
+ - title: "Treino com problemas"
+ summary: "Resolva desafios em juiz online e conheça as competições brasileiras, ótima forma de fixar algoritmos com prática constante."
+ optional: true
+ resources:
+ - "https://www.beecrowd.com/"
+ - "https://maratona.sbc.org.br/"
+ - "https://olimpiada.ic.unicamp.br/"
+ - title: "Como o computador executa programas"
+ steps:
+ - title: "Sistemas computacionais"
+ summary: "Entenda representação de dados, código de máquina e hierarquia de memória para saber o que acontece quando um programa roda."
+ resources:
+ - "https://csapp.cs.cmu.edu/"
+ - title: "Sistemas operacionais"
+ summary: "Veja como o sistema operacional virtualiza CPU e memória, lida com concorrência e guarda dados de forma persistente."
+ resources:
+ - "https://pages.cs.wisc.edu/~remzi/OSTEP/"
+ - "https://pdos.csail.mit.edu/6.828/"
+ - title: "Redes e bancos de dados na prática"
+ summary: "Capture tráfego de rede real e consulte um banco embutido para ligar a teoria de protocolos e armazenamento ao que se observa."
+ resources:
+ - "https://www.wireshark.org/"
+ - "https://www.sqlite.org/"
+ - title: "Teoria e comunidade"
+ steps:
+ - title: "Autômatos e linguagens formais"
+ summary: "Experimente autômatos, gramáticas e máquinas de Turing para entender os modelos formais por trás de compiladores e da própria computação."
+ resources:
+ - "https://www.jflap.org/"
+ - title: "Complexidade computacional"
+ summary: "Conheça as classes P e NP e por que certos problemas parecem não ter solução eficiente, mesmo com computadores melhores."
+ optional: true
+ resources:
+ - "https://complexityzoo.net/Complexity_Zoo"
+ - title: "Ciência da computação no Brasil"
+ summary: "Acompanhe a SBC, sua revista de divulgação e os livros abertos para seguir estudando e conhecer a pesquisa feita no país."
+ resources:
+ - "https://horizontes.sbc.org.br/"
+ - "https://sol.sbc.org.br/livros/index.php/sbc"
+ - "https://www.sbc.org.br/"
+see_also:
+ - name: "Roadmap Computer Science (roadmap.sh)"
+ url: "https://roadmap.sh/computer-science"
diff --git a/_data/pt-BR/learning-paths/cybersecurity.yaml b/_data/pt-BR/learning-paths/cybersecurity.yaml
new file mode 100644
index 0000000..3767933
--- /dev/null
+++ b/_data/pt-BR/learning-paths/cybersecurity.yaml
@@ -0,0 +1,75 @@
+title: "Cibersegurança"
+summary: "Comece pela segurança no dia a dia e pelas redes, depois pratique segurança web, acompanhe vulnerabilidades e aprenda a proteger sistemas com ferramentas livres."
+subcategory: "computing/cyber-security"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Fundamentos"
+ steps:
+ - title: "Segurança no dia a dia"
+ summary: "Entenda senhas, golpes, códigos maliciosos e cópias de segurança com o guia do CERT.br, ponto de partida para qualquer iniciante."
+ resources:
+ - "https://cartilha.cert.br/"
+ - "https://www.cert.br/"
+ - title: "Como as redes funcionam"
+ summary: "Aprenda IP, TCP, portas e DNS, porque a maior parte dos ataques e das defesas acontece no tráfego de rede."
+ resources:
+ - "https://gaia.cs.umass.edu/kurose_ross/"
+ - "https://www.iana.org/assignments/service-names-port-numbers/"
+ - title: "Análise de tráfego"
+ summary: "Capture e leia pacotes por conta própria para reconhecer o tráfego normal e identificar o que foge do padrão."
+ resources:
+ - "https://www.wireshark.org/"
+ - "https://www.wireshark.org/docs/"
+ - "https://www.tcpdump.org/"
+ - title: "Criptografia e padrões"
+ summary: "Conheça os padrões de criptografia, hashes e assinaturas digitais que protegem dados armazenados e em trânsito."
+ resources:
+ - "https://csrc.nist.gov/publications"
+ - title: "Segurança de aplicações web"
+ steps:
+ - title: "As falhas web mais comuns"
+ summary: "Estude injeção, controle de acesso quebrado e outras fraquezas recorrentes para reconhecê-las no seu próprio código."
+ resources:
+ - "https://owasp.org/"
+ - "https://cwe.mitre.org"
+ - title: "Laboratórios práticos"
+ summary: "Explore aplicações propositalmente vulneráveis em laboratórios guiados e gratuitos, a forma mais rápida de entender cada falha."
+ resources:
+ - "https://portswigger.net/web-security"
+ - title: "Ferramentas de teste web"
+ summary: "Use proxies de interceptação para inspecionar e alterar requisições em aplicações que você tem autorização para testar."
+ resources:
+ - "https://www.zaproxy.org"
+ - "https://portswigger.net/burp"
+ - title: "Vulnerabilidades, ameaças e defesa"
+ steps:
+ - title: "Catálogos de vulnerabilidades"
+ summary: "Aprenda a ler identificadores CVE e notas de gravidade para decidir o que precisa ser corrigido primeiro."
+ resources:
+ - "https://www.cve.org/"
+ - "https://nvd.nist.gov/"
+ - title: "Táticas dos atacantes"
+ summary: "Relacione as técnicas usadas em ataques reais às detecções e aos controles capazes de interrompê-las."
+ resources:
+ - "https://attack.mitre.org/"
+ - title: "Endurecimento e varredura"
+ summary: "Aplique configurações seguras de referência e faça varreduras nos seus próprios servidores para achar serviços expostos."
+ resources:
+ - "https://www.cisecurity.org/"
+ - "https://nmap.org/"
+ - title: "Ambiente de testes de intrusão"
+ summary: "Monte um laboratório com uma distribuição voltada a testes de segurança para praticar em máquinas que são suas."
+ optional: true
+ resources:
+ - "https://www.kali.org/"
+ - title: "Acompanhar as ameaças"
+ summary: "Siga alertas oficiais e notícias diárias para saber de novas campanhas e correções urgentes."
+ optional: true
+ resources:
+ - "https://www.cert.br"
+ - "https://thehackernews.com"
+ - "https://www.cisa.gov/news-events/cybersecurity-advisories"
+see_also:
+ - name: "Roadmap Cyber Security (roadmap.sh)"
+ url: "https://roadmap.sh/cyber-security"
diff --git a/_data/pt-BR/learning-paths/data-analysis.yaml b/_data/pt-BR/learning-paths/data-analysis.yaml
new file mode 100644
index 0000000..f7979a4
--- /dev/null
+++ b/_data/pt-BR/learning-paths/data-analysis.yaml
@@ -0,0 +1,72 @@
+title: "Análise de dados"
+summary: "Aprenda a buscar, limpar, analisar e apresentar dados usando SQL, Python, estatística e dashboards, com cursos em português e bases públicas brasileiras."
+subcategory: "business/data-and-analytics"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Fundamentos"
+ steps:
+ - title: "Estatística descritiva"
+ summary: "Entenda média, mediana, dispersão e distribuições para resumir dados com honestidade e perceber quando um número engana."
+ resources:
+ - "https://www.escolavirtual.gov.br"
+ - "https://www.edx.org/"
+ - title: "Consultas com SQL"
+ summary: "Aprenda a selecionar, filtrar, juntar e agregar tabelas em SQL, a linguagem usada para extrair dados de quase todo banco."
+ resources:
+ - "https://www.alura.com.br"
+ - "https://dbeaver.io/"
+ - title: "Python e notebooks"
+ summary: "Carregue e explore tabelas em notebooks Jupyter, combinando código, resultados e anotações num único documento fácil de compartilhar."
+ resources:
+ - "https://jupyter.org/"
+ - "https://www.alura.com.br"
+ - title: "Dados brasileiros"
+ steps:
+ - title: "Portais de dados abertos"
+ summary: "Encontre bases públicas já tratadas sobre o Brasil e aprenda a ler a documentação, as licenças e o dicionário de cada conjunto."
+ resources:
+ - "https://dados.gov.br"
+ - "https://basedosdados.org"
+ - title: "Séries do IBGE e do Ipea"
+ summary: "Consulte séries históricas oficiais de população, preços e economia, base de grande parte das análises socioeconômicas feitas no país."
+ resources:
+ - "https://sidra.ibge.gov.br"
+ - "https://www.ipeadata.gov.br"
+ - title: "Limpeza e preparação"
+ summary: "Trate valores ausentes, tipos errados e duplicatas, e reorganize as tabelas para que a análise parta de dados confiáveis."
+ resources:
+ - "https://www.kaggle.com"
+ - "https://www.datacamp.com/"
+ - title: "Análise e comunicação"
+ steps:
+ - title: "Testes de hipótese e regressão"
+ summary: "Verifique se diferenças são reais e modele relações entre variáveis para tirar conclusões que se sustentam diante de questionamentos."
+ resources:
+ - "https://www.escolavirtual.gov.br"
+ - "https://www.datascienceacademy.com.br"
+ - title: "Dashboards e relatórios"
+ summary: "Monte painéis interativos ligados às suas bases para que a equipe acompanhe indicadores sem depender de planilhas enviadas por e-mail."
+ resources:
+ - "https://lookerstudio.google.com"
+ - "https://www.metabase.com"
+ - title: "Ir além"
+ steps:
+ - title: "Comunidade e casos práticos"
+ summary: "Leia artigos e tutoriais da comunidade brasileira de dados e veja como outros analistas resolvem problemas com bases públicas."
+ resources:
+ - "https://www.datahackers.com.br/"
+ - "https://basedosdados.org"
+ - title: "Modelos preditivos"
+ summary: "Dê o primeiro passo em previsões com modelos simples de machine learning aplicados aos mesmos dados que você já analisa."
+ optional: true
+ resources:
+ - "https://scikit-learn.org/"
+ - title: "Estatística aplicada em profundidade"
+ summary: "Explore artigos teóricos e aplicados de estatística publicados no Brasil para aprofundar métodos e conhecer pesquisas sobre dados nacionais."
+ optional: true
+ resources:
+ - "https://rbesojs.ibge.gov.br/index.php/rbes"
+see_also:
+ - name: "Roadmap Data Analyst (roadmap.sh)"
+ url: "https://roadmap.sh/data-analyst"
diff --git a/_data/pt-BR/learning-paths/databases.yaml b/_data/pt-BR/learning-paths/databases.yaml
new file mode 100644
index 0000000..d86605f
--- /dev/null
+++ b/_data/pt-BR/learning-paths/databases.yaml
@@ -0,0 +1,82 @@
+title: "Bancos de dados"
+summary: "Aprenda SQL na prática, modele tabelas e índices no PostgreSQL, conheça bancos NoSQL e versione mudanças de esquema com segurança, do primeiro SELECT à produção."
+subcategory: "development/databases"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Primeiros passos"
+ steps:
+ - title: "SQL do zero"
+ summary: "Siga um curso gratuito em português para criar tabelas e escrever suas primeiras consultas com calma e muitos exemplos."
+ resources:
+ - "https://www.cursoemvideo.com"
+ - title: "Panorama dos bancos de dados"
+ summary: "Compare bancos relacionais, de documentos, chave-valor e colunares para saber qual problema cada tipo resolve."
+ resources:
+ - "https://db-engines.com"
+ - title: "Um banco embutido para praticar"
+ summary: "Use um banco SQL que funciona num único arquivo, sem servidor, para treinar consultas em qualquer computador."
+ resources:
+ - "https://www.sqlite.org/"
+ - title: "PostgreSQL na prática"
+ steps:
+ - title: "Instalação e documentação"
+ summary: "Instale o PostgreSQL e aprenda a navegar pela documentação oficial, com apoio da comunidade brasileira quando surgirem dúvidas."
+ resources:
+ - "https://www.postgresql.org/docs/"
+ - "https://postgresql.org.br/"
+ - title: "Ferramentas gráficas"
+ summary: "Use um cliente visual para explorar esquemas, executar consultas e conferir resultados sem depender só do terminal."
+ resources:
+ - "https://dbeaver.io"
+ - "https://www.pgadmin.org"
+ - title: "Modelagem e transações"
+ summary: "Modele entidades com chaves e restrições e entenda transações e isolamento para manter os dados consistentes com vários usuários."
+ resources:
+ - "https://dataintensive.net"
+ - "https://www.postgresql.org/docs/"
+ - title: "Índices e desempenho"
+ summary: "Entenda como índices funcionam e como ler planos de execução, a forma mais eficaz de acelerar consultas lentas."
+ resources:
+ - "https://use-the-index-luke.com"
+ - "https://savepoint.blog.br"
+ - title: "Além do relacional"
+ steps:
+ - title: "Bancos de documentos"
+ summary: "Guarde documentos flexíveis no formato JSON e descubra quando esse modelo funciona melhor que tabelas, e quando não."
+ resources:
+ - "https://www.mongodb.com"
+ - title: "Cache e chave-valor"
+ summary: "Use um armazenamento em memória para cache, sessões e contadores, aliviando a carga do banco principal."
+ resources:
+ - "https://redis.io"
+ - title: "Bancos distribuídos"
+ summary: "Veja como um banco espalha dados por muitas máquinas e quais concessões de consistência isso exige."
+ optional: true
+ resources:
+ - "https://cassandra.apache.org/"
+ - title: "Em produção e por dentro"
+ steps:
+ - title: "Migrações de esquema"
+ summary: "Versione alterações de esquema em scripts ordenados para que todos os ambientes evoluam igual, sem ajustes manuais."
+ resources:
+ - "https://flywaydb.org"
+ - "https://www.liquibase.com"
+ - title: "Como os motores de armazenamento funcionam"
+ summary: "Conheça árvores B, logs e buffers para entender por que um banco se comporta de certo jeito sob carga."
+ optional: true
+ resources:
+ - "https://databass.dev"
+ - "https://db.cs.cmu.edu/"
+ - title: "Comunidade PostgreSQL"
+ summary: "Acompanhe artigos, boletins e eventos da comunidade para continuar aprendendo depois do básico."
+ optional: true
+ resources:
+ - "https://planet.postgresql.org"
+ - "https://postgresweekly.com"
+ - "https://pgconf.com.br"
+see_also:
+ - name: "Roadmap SQL (roadmap.sh)"
+ url: "https://roadmap.sh/sql"
+ - name: "Roadmap PostgreSQL DBA (roadmap.sh)"
+ url: "https://roadmap.sh/postgresql-dba"
diff --git a/_data/pt-BR/learning-paths/devops.yaml b/_data/pt-BR/learning-paths/devops.yaml
new file mode 100644
index 0000000..a5d94e6
--- /dev/null
+++ b/_data/pt-BR/learning-paths/devops.yaml
@@ -0,0 +1,81 @@
+title: "DevOps e nuvem"
+summary: "Do terminal Linux e do Git até contêineres, pipelines de CI/CD, infraestrutura como código e Kubernetes, com a base de sistemas distribuídos que sustenta a nuvem."
+subcategory: "development/development-environment"
+level: "intermediate"
+source: "ipl"
+stages:
+ - title: "Fundamentos"
+ steps:
+ - title: "Linux e linha de comando"
+ summary: "Domine o shell, arquivos, processos e permissões, porque quase todo servidor, contêiner e pipeline roda em Linux."
+ resources:
+ - "https://www.guiafoca.org/"
+ - "https://linuxcommand.org/"
+ - "https://missing.csail.mit.edu"
+ - title: "Controle de versão com Git"
+ summary: "Pratique commits, branches e merges até virar hábito, já que toda automação de entrega começa num push para o repositório."
+ resources:
+ - "https://git-scm.com/book/en/v2"
+ - "https://learngitbranching.js.org"
+ - title: "Virtualização na prática"
+ summary: "Suba máquinas virtuais e entenda como o sistema operacional isola processos e memória, a base conceitual dos contêineres."
+ optional: true
+ resources:
+ - "https://www.virtualbox.org/"
+ - "https://pages.cs.wisc.edu/~remzi/OSTEP/"
+ - title: "Contêineres"
+ steps:
+ - title: "Primeiros passos com Docker"
+ summary: "Empacote uma aplicação com suas dependências numa imagem, rode o contêiner e combine serviços com o Compose."
+ resources:
+ - "https://docs.docker.com/get-started/"
+ - "https://docker-curriculum.com"
+ - title: "Imagens e registros"
+ summary: "Aprenda a publicar, versionar e reaproveitar imagens e pacotes prontos em registros públicos, com atenção à origem do que você baixa."
+ resources:
+ - "https://hub.docker.com"
+ - "https://artifacthub.io"
+ - title: "Ambiente de desenvolvimento em contêiner"
+ summary: "Descreva o ambiente de trabalho em arquivos versionados para que toda a equipe programe com as mesmas ferramentas."
+ optional: true
+ resources:
+ - "https://containers.dev"
+ - "https://dotfiles.github.io"
+ - title: "Automação e infraestrutura como código"
+ steps:
+ - title: "Integração contínua"
+ summary: "Monte pipelines que instalam dependências, rodam testes e geram artefatos a cada push, para que erros apareçam em minutos."
+ resources:
+ - "https://docs.github.com/actions"
+ - "https://docs.gitlab.com/ci/"
+ - title: "Entrega contínua"
+ summary: "Leve cada versão aprovada até homologação e produção com ambientes, aprovações e segredos configurados no próprio pipeline."
+ resources:
+ - "https://docs.github.com/actions"
+ - "https://docs.gitlab.com/ci/"
+ - "https://github.blog"
+ - title: "Infraestrutura como código com Terraform"
+ summary: "Descreva redes, máquinas e serviços de nuvem em arquivos versionados e aplique mudanças de forma revisável e repetível."
+ resources:
+ - "https://developer.hashicorp.com/terraform/docs"
+ - title: "Orquestração e nuvem"
+ steps:
+ - title: "Kubernetes"
+ summary: "Entenda pods, deployments e services para rodar muitos contêineres num cluster, com escala automática e recuperação de falhas."
+ resources:
+ - "https://kubernetes.io/pt-br/docs/home/"
+ - "https://kubernetes.io/"
+ - "https://kubernetes.io/blog/"
+ - title: "Mensageria e streaming de eventos"
+ summary: "Conheça filas e logs de eventos distribuídos, comuns para desacoplar serviços em arquiteturas de nuvem."
+ optional: true
+ resources:
+ - "https://kafka.apache.org/"
+ - title: "Fundamentos de sistemas distribuídos"
+ summary: "Estude replicação, particionamento e tolerância a falhas, as ideias por trás de todo serviço de nuvem que você usa."
+ resources:
+ - "https://dataintensive.net/"
+ - "https://www.distributed-systems.net/"
+see_also:
+ - name: "Roadmap DevOps (roadmap.sh)"
+ url: "https://roadmap.sh/devops"
diff --git a/_data/pt-BR/learning-paths/frontend.yaml b/_data/pt-BR/learning-paths/frontend.yaml
new file mode 100644
index 0000000..2393e86
--- /dev/null
+++ b/_data/pt-BR/learning-paths/frontend.yaml
@@ -0,0 +1,90 @@
+title: "Desenvolvimento frontend"
+summary: "Aprenda a criar interfaces web acessíveis, rápidas e responsivas, começando pelo funcionamento do navegador e chegando às ferramentas e frameworks atuais."
+subcategory: "development/frontend-development"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Fundamentos da web e HTML"
+ steps:
+ - title: "Como o navegador monta uma página"
+ summary: "Entenda como o navegador busca, interpreta e desenha uma página, base para tudo o que vem depois na trilha."
+ resources:
+ - "https://developer.mozilla.org"
+ - "https://www.ceweb.br/"
+ - title: "HTML semântico"
+ summary: "Estruture o conteúdo com as tags certas, porque uma marcação bem feita ajuda acessibilidade, buscadores e estilização."
+ resources:
+ - "https://web.dev/learn"
+ - "https://validator.w3.org/nu/"
+ - title: "CSS e layout"
+ steps:
+ - title: "Base do CSS"
+ summary: "Domine cascata, especificidade, modelo de caixa e unidades para que os estilos se comportem como você espera."
+ resources:
+ - "https://web.dev/learn"
+ - "https://css-tricks.com"
+ - title: "Flexbox e Grid"
+ summary: "Pratique os dois sistemas modernos de layout, que resolvem a maioria das páginas e componentes sem gambiarras."
+ resources:
+ - "https://css-tricks.com"
+ - "https://www.freecodecamp.org/portuguese/learn"
+ - title: "Design responsivo"
+ summary: "Faça páginas que se adaptam a qualquer tela com layouts fluidos e media queries, já que a maioria acessa pelo celular."
+ resources:
+ - "https://www.freecodecamp.org/portuguese/learn"
+ - "https://learningwebdesign.com/"
+ - title: "Experimentos e inspiração"
+ summary: "Veja como o mesmo HTML ganha visuais muito diferentes e teste ideias rapidamente num editor online."
+ optional: true
+ resources:
+ - "https://www.csszengarden.com/"
+ - "https://codepen.io/"
+ - "https://tympanus.net/codrops/"
+ - title: "Interatividade, acessibilidade e desempenho"
+ steps:
+ - title: "JavaScript no navegador"
+ summary: "Use JavaScript para manipular o DOM e reagir a eventos, o que dá vida a qualquer interface interativa."
+ resources:
+ - "https://javascript.info"
+ - "https://developer.mozilla.org"
+ - title: "Acessibilidade"
+ summary: "Aplique as diretrizes WCAG e padrões inclusivos para que pessoas com leitores de tela ou só teclado usem seu site."
+ resources:
+ - "https://inclusive-components.design/"
+ - "https://wave.webaim.org/"
+ - "https://www.w3.org"
+ - title: "Compatibilidade entre navegadores"
+ summary: "Confira o suporte de cada recurso nos navegadores antes de usá-lo em produção e evite surpresas com usuários reais."
+ resources:
+ - "https://caniuse.com"
+ - title: "Desempenho"
+ summary: "Meça carregamento e renderização com ferramentas reais e corrija os gargalos que mais pesam nas Core Web Vitals."
+ resources:
+ - "https://pagespeed.web.dev/"
+ - "https://web.dev"
+ - title: "Ferramentas e frameworks"
+ steps:
+ - title: "Controle de versão com Git"
+ summary: "Aprenda a registrar mudanças, criar branches e colaborar com Git, ferramenta presente no dia a dia de toda equipe."
+ resources:
+ - "https://learngitbranching.js.org"
+ - "https://git-scm.com/book/en/v2"
+ - title: "npm e Vite"
+ summary: "Instale dependências pelo npm e use um servidor de desenvolvimento rápido para organizar projetos maiores."
+ resources:
+ - "https://www.npmjs.com"
+ - "https://vite.dev"
+ - title: "React ou Vue"
+ summary: "Escolha uma biblioteca de componentes para montar interfaces complexas a partir de peças pequenas e reutilizáveis."
+ resources:
+ - "https://react.dev"
+ - "https://vuejs.org"
+ - title: "Comunidade brasileira de frontend"
+ summary: "Acompanhe eventos e conteúdos da comunidade nacional para trocar experiências e se manter atualizado em português."
+ optional: true
+ resources:
+ - "https://braziljs.org"
+ - "https://frontinsampa.com.br"
+see_also:
+ - name: "Roadmap Frontend Developer (roadmap.sh)"
+ url: "https://roadmap.sh/frontend"
diff --git a/_data/pt-BR/learning-paths/javascript.yaml b/_data/pt-BR/learning-paths/javascript.yaml
new file mode 100644
index 0000000..4fe09bc
--- /dev/null
+++ b/_data/pt-BR/learning-paths/javascript.yaml
@@ -0,0 +1,74 @@
+title: "Programação em JavaScript"
+summary: "Aprenda JavaScript do zero, passando pela sintaxe e funções, pela manipulação do navegador e pelo código assíncrono até chegar ao Node.js e às bibliotecas de interface."
+subcategory: "development/programming-languages"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Fundamentos da linguagem"
+ steps:
+ - title: "Primeiros passos"
+ summary: "Comece com exercícios interativos e gratuitos em português para pegar o jeito da lógica de programação com JavaScript."
+ resources:
+ - "https://www.freecodecamp.org/portuguese/learn"
+ - title: "Tipos, variáveis e operadores"
+ summary: "Conheça os tipos primitivos, as variáveis e as estruturas de controle, peças básicas de qualquer programa em JavaScript."
+ resources:
+ - "https://javascript.info"
+ - "https://developer.mozilla.org"
+ - title: "Funções, escopo e closures"
+ summary: "Entenda como funções guardam variáveis e como o escopo funciona, o que explica boa parte dos comportamentos inesperados."
+ resources:
+ - "https://javascript.info"
+ - title: "Objetos, arrays e JSON"
+ summary: "Modele dados com objetos e arrays, aproveite seus métodos nativos e troque informações estruturadas no formato JSON."
+ resources:
+ - "https://developer.mozilla.org"
+ - "https://www.freecodecamp.org/portuguese/learn"
+ - title: "JavaScript no navegador"
+ steps:
+ - title: "DOM e eventos"
+ summary: "Selecione, crie e altere elementos da página e trate eventos do usuário para transformar HTML estático em algo interativo."
+ resources:
+ - "https://web.dev"
+ - "https://www.w3.org"
+ - title: "Compatibilidade entre navegadores"
+ summary: "Verifique em quais navegadores cada recurso da linguagem funciona antes de usá-lo em um projeto real."
+ resources:
+ - "https://caniuse.com"
+ - title: "Leituras e comunidade"
+ summary: "Acompanhe artigos e a comunidade brasileira de JavaScript para conhecer boas práticas e novidades do ecossistema."
+ optional: true
+ resources:
+ - "https://braziljs.org"
+ - "https://css-tricks.com"
+ - "https://www.smashingmagazine.com"
+ - title: "Código assíncrono e Node.js"
+ steps:
+ - title: "Promises e async/await"
+ summary: "Domine callbacks, promises e async/await sobre o event loop, essenciais para requisições de rede e leitura de arquivos."
+ resources:
+ - "https://web.dev"
+ - "https://nodejs.org"
+ - title: "JavaScript no servidor com Node.js"
+ summary: "Rode JavaScript fora do navegador para criar scripts, ferramentas de linha de comando e servidores web simples."
+ resources:
+ - "https://nodejs.org"
+ - title: "Testando APIs"
+ summary: "Use um cliente de API para enviar requisições e inspecionar respostas enquanto desenvolve seus primeiros serviços."
+ optional: true
+ resources:
+ - "https://www.postman.com"
+ - title: "Ecossistema"
+ steps:
+ - title: "Módulos e Vite"
+ summary: "Organize o código em módulos ES e use um servidor de desenvolvimento rápido para empacotar o projeto para o navegador."
+ resources:
+ - "https://vite.dev"
+ - title: "React ou Vue"
+ summary: "Coloque o JavaScript em prática numa biblioteca de componentes, construindo interfaces com peças reutilizáveis e estado previsível."
+ resources:
+ - "https://react.dev"
+ - "https://vuejs.org"
+see_also:
+ - name: "Roadmap JavaScript (roadmap.sh)"
+ url: "https://roadmap.sh/javascript"
diff --git a/_data/pt-BR/learning-paths/machine-learning.yaml b/_data/pt-BR/learning-paths/machine-learning.yaml
new file mode 100644
index 0000000..69e9766
--- /dev/null
+++ b/_data/pt-BR/learning-paths/machine-learning.yaml
@@ -0,0 +1,73 @@
+title: "Machine learning"
+summary: "Aprenda a criar modelos que aprendem com dados, dos algoritmos clássicos e da validação correta até redes neurais, com cursos gratuitos e documentação oficial."
+subcategory: "computing/machine-learning"
+level: "intermediate"
+source: "ipl"
+stages:
+ - title: "Bases"
+ steps:
+ - title: "O que é inteligência artificial"
+ summary: "Entenda o que a IA consegue ou não fazer e onde o aprendizado de máquina entra, antes de partir para fórmulas e código."
+ resources:
+ - "https://www.elementsofai.com/"
+ - title: "Fundamentos matemáticos"
+ summary: "Revise álgebra linear, probabilidade e otimização aplicadas ao aprendizado supervisionado, a teoria que sustenta todos os algoritmos seguintes."
+ resources:
+ - "https://cs229.stanford.edu/"
+ - title: "Primeiros modelos"
+ summary: "Treine, faça previsões e avalie modelos simples com uma biblioteca de API uniforme, aprendendo o fluxo de treino e teste."
+ resources:
+ - "https://scikit-learn.org/stable/user_guide.html"
+ - "https://scikit-learn.org/"
+ - title: "Aprendizado de máquina clássico"
+ steps:
+ - title: "Dados para experimentar"
+ summary: "Escolha conjuntos de dados de referência bem documentados para comparar seus resultados com os de outros pesquisadores e praticantes."
+ resources:
+ - "https://archive.ics.uci.edu/"
+ - "https://www.openml.org/"
+ - "https://www.kaggle.com/datasets"
+ - title: "Validação e métricas"
+ summary: "Use validação cruzada e métricas adequadas ao problema para que o desempenho medido reflita o comportamento do modelo em dados novos."
+ resources:
+ - "https://scikit-learn.org/stable/user_guide.html"
+ - "https://machinelearningmastery.com/"
+ - title: "Árvores e gradient boosting"
+ summary: "Domine árvores de decisão e ensembles com boosting, geralmente a melhor escolha para dados tabulares, usando bibliotecas otimizadas."
+ resources:
+ - "https://xgboost.readthedocs.io/"
+ - "https://lightgbm.readthedocs.io/"
+ - title: "Ajuste de hiperparâmetros"
+ summary: "Automatize a busca pelas melhores configurações do modelo, interrompendo cedo as tentativas pouco promissoras para economizar processamento."
+ optional: true
+ resources:
+ - "https://optuna.org/"
+ - title: "Aprendizado profundo"
+ steps:
+ - title: "Redes neurais na prática"
+ summary: "Monte e treine redes neurais com um framework moderno, aprendendo tensores, laços de treino e transferência de aprendizado em projetos reais."
+ resources:
+ - "https://pytorch.org/"
+ - "https://course.fast.ai/"
+ - title: "Modelos pré-treinados"
+ summary: "Reaproveite modelos já treinados para texto e imagem e faça ajuste fino para suas tarefas, sem precisar treinar tudo do zero."
+ optional: true
+ resources:
+ - "https://huggingface.co/"
+ - "https://huggingface.co/learn/nlp-course"
+ - title: "Prática e pesquisa"
+ steps:
+ - title: "Rastreamento de experimentos"
+ summary: "Registre parâmetros, métricas e versões de cada execução para que os experimentos sejam reprodutíveis e fáceis de comparar depois."
+ resources:
+ - "https://mlflow.org/"
+ - title: "Pesquisa no Brasil e no mundo"
+ summary: "Acompanhe artigos de eventos brasileiros e explicações visuais de pesquisas internacionais para seguir a evolução da área além dos cursos."
+ optional: true
+ resources:
+ - "https://sol.sbc.org.br/"
+ - "https://bracis.sbc.org.br/"
+ - "https://distill.pub/"
+see_also:
+ - name: "Roadmap Machine Learning (roadmap.sh)"
+ url: "https://roadmap.sh/machine-learning"
diff --git a/_data/pt-BR/learning-paths/mobile.yaml b/_data/pt-BR/learning-paths/mobile.yaml
new file mode 100644
index 0000000..4f6c771
--- /dev/null
+++ b/_data/pt-BR/learning-paths/mobile.yaml
@@ -0,0 +1,74 @@
+title: "Desenvolvimento de apps móveis"
+summary: "Crie apps nativos para Android com Kotlin e para iOS com SwiftUI, avance para Flutter ou React Native, conecte serviços de backend, teste e publique nas lojas."
+subcategory: "development/plataforms"
+level: "intermediate"
+source: "ipl"
+stages:
+ - title: "Linguagens e design"
+ steps:
+ - title: "Kotlin para Android"
+ summary: "Aprenda a sintaxe do Kotlin, a segurança contra nulos, classes e corrotinas, a linguagem principal dos apps Android atuais."
+ resources:
+ - "https://kotlinlang.org/docs/home.html"
+ - title: "Swift para as plataformas da Apple"
+ summary: "Domine optionals, structs, protocolos e closures do Swift, a base de qualquer app para iPhone e iPad."
+ resources:
+ - "https://www.swift.org/documentation/"
+ - title: "Diretrizes de design de cada plataforma"
+ summary: "Entenda como Android e iOS tratam navegação, tipografia, gestos e acessibilidade, para que o app pareça natural em cada sistema."
+ resources:
+ - "https://m3.material.io/"
+ - "https://developer.apple.com/design/human-interface-guidelines/"
+ - title: "Desenvolvimento nativo"
+ steps:
+ - title: "Android com Jetpack Compose"
+ summary: "Siga os cursos oficiais para montar telas com Compose, controlar estado, navegar entre telas e guardar dados no aparelho."
+ resources:
+ - "https://developer.android.com/courses"
+ - "https://developer.android.com/docs"
+ - title: "iOS com SwiftUI"
+ summary: "Construa apps iOS completos passo a passo com views, fluxo de dados e listas do SwiftUI, e depois aprofunde nos frameworks da Apple."
+ resources:
+ - "https://developer.apple.com/tutorials/swiftui"
+ - "https://developer.apple.com/documentation/"
+ - title: "Multiplataforma"
+ steps:
+ - title: "Flutter"
+ summary: "Escreva um único código em Dart que desenha os mesmos widgets no Android e no iOS, e compare essa abordagem com a nativa."
+ resources:
+ - "https://docs.flutter.dev/"
+ - title: "React Native com Expo"
+ summary: "Use React e JavaScript para criar apps móveis nativos, deixando o Expo cuidar da configuração, dos testes no aparelho e dos builds."
+ resources:
+ - "https://reactnative.dev/docs/getting-started"
+ - "https://docs.expo.dev/"
+ - title: "Backend, testes e publicação"
+ steps:
+ - title: "Serviços de backend"
+ summary: "Ligue o app a autenticação, banco de dados na nuvem, armazenamento de arquivos e notificações push sem manter servidores próprios."
+ resources:
+ - "https://firebase.google.com/docs"
+ - title: "Testes de apps"
+ summary: "Planeje testes unitários para a lógica e testes de interface para os fluxos principais, com vocabulário e técnicas de qualidade de software."
+ resources:
+ - "https://juliodelima.com.br"
+ - "https://bstqb.org.br"
+ - title: "Comunidade de testes"
+ summary: "Acompanhe artigos e discussões sobre automação e estratégia de testes para melhorar continuamente a qualidade dos seus apps."
+ optional: true
+ resources:
+ - "https://www.ministryoftesting.com"
+ - title: "Publicação nas lojas"
+ summary: "Aprenda assinatura do app, página na loja, regras de revisão e lançamentos graduais no Google Play e na App Store."
+ resources:
+ - "https://developer.android.com/docs"
+ - "https://developer.apple.com/documentation/"
+see_also:
+ - name: "Roadmap Android Developer (roadmap.sh)"
+ url: "https://roadmap.sh/android"
+ - name: "Roadmap iOS Developer (roadmap.sh)"
+ url: "https://roadmap.sh/ios"
+ - name: "Roadmap Flutter (roadmap.sh)"
+ url: "https://roadmap.sh/flutter"
+ - name: "Roadmap React Native (roadmap.sh)"
+ url: "https://roadmap.sh/react-native"
diff --git a/_data/pt-BR/learning-paths/python.yaml b/_data/pt-BR/learning-paths/python.yaml
new file mode 100644
index 0000000..dc9518b
--- /dev/null
+++ b/_data/pt-BR/learning-paths/python.yaml
@@ -0,0 +1,73 @@
+title: "Programação em Python"
+summary: "Aprenda Python do primeiro programa ao código limpo e idiomático, automatize tarefas do dia a dia, use pacotes e dê os primeiros passos em ciência de dados."
+subcategory: "development/programming-languages"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Primeiros passos"
+ steps:
+ - title: "Instale e rode o Python"
+ summary: "Instale o Python, abra o interpretador interativo e rode seu primeiro script para experimentar cada conceito que vem a seguir."
+ resources:
+ - "https://www.python.org"
+ - "https://www.cursoemvideo.com"
+ - title: "Variáveis, tipos e controle de fluxo"
+ summary: "Aprenda variáveis, textos, números, condições e laços de repetição, as peças com que todo programa em Python é montado."
+ resources:
+ - "https://www.cursoemvideo.com"
+ - "https://www.py4e.com/"
+ - "https://docs.python.org/3/tutorial/"
+ - title: "Funções, estruturas de dados e arquivos"
+ summary: "Organize o código em funções e módulos, trabalhe com listas e dicionários e leia e grave arquivos no disco."
+ resources:
+ - "https://docs.python.org/3/tutorial/"
+ - "https://www.py4e.com/"
+ - title: "Código bem escrito"
+ steps:
+ - title: "Estilo com a PEP 8"
+ summary: "Siga as convenções oficiais de nomes, indentação e formatação para que seu código seja fácil de ler por outras pessoas e por você."
+ resources:
+ - "https://peps.python.org/pep-0008/"
+ - title: "Versionamento com Git"
+ summary: "Use Git para registrar mudanças, voltar atrás com segurança e publicar seus projetos de Python."
+ optional: true
+ resources:
+ - "https://git-scm.com/book/en/v2"
+ - "https://learngitbranching.js.org"
+ - title: "Projetos práticos"
+ steps:
+ - title: "Automatize tarefas do dia a dia"
+ summary: "Escreva pequenos programas que renomeiam arquivos, preenchem planilhas, leem páginas web e enviam e-mails, transformando teoria em ferramenta útil."
+ resources:
+ - "https://automatetheboringstuff.com/"
+ - title: "Pacotes de terceiros"
+ summary: "Encontre bibliotecas no índice oficial de pacotes e instale-as com pip em ambientes virtuais separados para cada projeto."
+ resources:
+ - "https://pypi.org"
+ - title: "Comunidade Python"
+ summary: "Acompanhe as novidades da linguagem e participe da comunidade brasileira para trocar experiência e conhecer projetos reais."
+ optional: true
+ resources:
+ - "https://pythonbrasil.org.br"
+ - "https://blog.python.org"
+ - title: "Rumo à ciência de dados"
+ steps:
+ - title: "Notebooks Jupyter"
+ summary: "Use notebooks para misturar código, resultados e anotações, o ambiente mais comum para explorar dados com Python."
+ resources:
+ - "https://jupyter.org/"
+ - title: "Pratique com dados abertos"
+ summary: "Carregue bases públicas brasileiras e internacionais e responda perguntas simples com Python, criando o hábito de explorar antes de modelar."
+ resources:
+ - "https://dados.gov.br/"
+ - "https://www.ibge.gov.br/"
+ - "https://www.kaggle.com/datasets"
+ - title: "Aprendizado de máquina com scikit-learn"
+ summary: "Treine e avalie modelos clássicos, como regressão e árvores de decisão, com uma biblioteca consistente e bem documentada."
+ optional: true
+ resources:
+ - "https://scikit-learn.org/"
+ - "https://www.fast.ai/"
+see_also:
+ - name: "Roadmap Python (roadmap.sh)"
+ url: "https://roadmap.sh/python"
diff --git a/_data/pt-BR/learning-paths/ux-design.yaml b/_data/pt-BR/learning-paths/ux-design.yaml
new file mode 100644
index 0000000..b4d8832
--- /dev/null
+++ b/_data/pt-BR/learning-paths/ux-design.yaml
@@ -0,0 +1,85 @@
+title: "UX design"
+summary: "Entenda como as pessoas percebem e usam interfaces e pratique pesquisa, arquitetura, prototipação e testes até conseguir projetar e justificar um fluxo usável."
+subcategory: "design/user-experience"
+level: "beginner"
+source: "ipl"
+stages:
+ - title: "Como as pessoas usam interfaces"
+ steps:
+ - title: "Princípios psicológicos"
+ summary: "Conheça as leis e heurísticas que explicam atenção, memória e tomada de decisão, base de quase toda escolha de interface."
+ resources:
+ - "https://lawsofux.com/"
+ - title: "Usabilidade na prática"
+ summary: "Leia estudos empíricos sobre usabilidade para entender o que realmente atrapalha as pessoas, em vez de confiar só na intuição."
+ resources:
+ - "https://www.nngroup.com/articles/"
+ - "https://brasil.uxdesign.cc/"
+ - title: "Processo de design"
+ summary: "Aprenda o Duplo Diamante e o design thinking para saber quando abrir o problema e quando convergir para uma solução."
+ resources:
+ - "https://www.designcouncil.org.uk/"
+ - "https://www.interaction-design.org/courses/design-thinking-the-beginner-s-guide"
+ - "https://dschool.stanford.edu/resources"
+ - title: "Conhecendo quem usa"
+ steps:
+ - title: "Métodos de pesquisa"
+ summary: "Planeje entrevistas, observação e questionários, escolhendo o método que responde à dúvida concreta que você tem sobre o público."
+ resources:
+ - "https://www.designkit.org/"
+ - "https://www.interaction-design.org/"
+ - title: "Síntese e mapas de jornada"
+ summary: "Transforme anotações de pesquisa em personas e mapas de jornada que ajudem o time a concordar sobre o problema certo."
+ resources:
+ - "https://miro.com/"
+ - "https://mural.co/"
+ - title: "Facilitação de workshops"
+ summary: "Pratique dinâmicas de ideação e cocriação, porque boa parte do trabalho de UX é conduzir decisões em grupo."
+ optional: true
+ resources:
+ - "https://www.sessionlab.com/library"
+ - "https://echos.cc/"
+ - title: "Estrutura e protótipos"
+ steps:
+ - title: "Arquitetura da informação"
+ summary: "Organize conteúdo e navegação e valide a estrutura com testes de card sorting e tree testing antes de desenhar telas."
+ resources:
+ - "https://www.optimalworkshop.com/"
+ - title: "Wireframes e protótipos"
+ summary: "Monte wireframes e protótipos clicáveis numa ferramenta de design para testar interações reais e comunicar bem com quem desenvolve."
+ resources:
+ - "https://www.figma.com/"
+ - "https://penpot.app/"
+ - title: "Padrões de produtos reais"
+ summary: "Analise como aplicativos publicados resolvem cadastro, busca e pagamento, aproveitando padrões consolidados em vez de reinventá-los."
+ optional: true
+ resources:
+ - "https://mobbin.com/"
+ - "https://www.figma.com/community"
+ - title: "Design systems"
+ summary: "Estude um design system público para entender componentes, diretrizes e consistência visual em produtos de grande escala."
+ optional: true
+ resources:
+ - "https://www.gov.br/ds/home"
+ - title: "Avaliar e incluir"
+ steps:
+ - title: "Testes de usabilidade"
+ summary: "Rode testes com protótipos e observe o comportamento real com mapas de calor, transformando os achados em melhorias priorizadas."
+ resources:
+ - "https://maze.co/"
+ - "https://www.hotjar.com/"
+ - title: "Acessibilidade digital"
+ summary: "Aplique as diretrizes de acessibilidade web e conheça ferramentas brasileiras, como a tradução para Libras, para incluir mais pessoas."
+ resources:
+ - "https://www.w3.org/WAI/tutorials/"
+ - "https://ceweb.br/"
+ - "https://vlibras.gov.br/"
+ - title: "Comunidade e carreira"
+ summary: "Monte estudos de caso para o portfólio e acompanhe a comunidade brasileira de IHC e UX para continuar aprendendo."
+ resources:
+ - "https://www.coursera.org/professional-certificates/google-ux-design"
+ - "https://www.uxconf.com.br/"
+ - "https://ceihc.sbc.org.br/"
+see_also:
+ - name: "Roadmap UX Design (roadmap.sh)"
+ url: "https://roadmap.sh/ux-design"
diff --git a/_includes/components/organisms/footer.html b/_includes/components/organisms/footer.html
index dd25789..d351bbe 100644
--- a/_includes/components/organisms/footer.html
+++ b/_includes/components/organisms/footer.html
@@ -36,12 +36,12 @@
{%- if fpt -%}
- {%- assign col_explore = "/pt-BR/|Início;/pt-BR/categorias/|Todas as categorias;/pt-BR/busca/|Busca;/pt-BR/random-resource/|Recurso aleatório;/pt-BR/alteracoes-recentes/|Alterações recentes;/pt-BR/portal-comunidade/|Portal da comunidade" | split: ';' -%}
+ {%- assign col_explore = "/pt-BR/|Início;/pt-BR/categorias/|Todas as categorias;/pt-BR/learning-paths/|Trilhas de aprendizado;/pt-BR/busca/|Busca;/pt-BR/random-resource/|Recurso aleatório;/pt-BR/alteracoes-recentes/|Alterações recentes;/pt-BR/portal-comunidade/|Portal da comunidade" | split: ';' -%}
{%- assign col_contribute = "/pt-BR/contribuir/|Como contribuir;/pt-BR/enviar-recurso/|Sugerir um recurso;/pt-BR/reportar-problemas/|Reportar um problema;/pt-BR/traduzir/|Ajudar a traduzir;/pt-BR/adicionar-idioma/|Adicionar um idioma;/pt-BR/politicas-conteudo/|Políticas de conteúdo" | split: ';' -%}
{%- assign col_about = "/pt-BR/sobre/|Sobre a IPL;/pt-BR/missao/|Missão;/pt-BR/ajuda/|Central de ajuda;/pt-BR/contato/|Contato;/pt-BR/doar/|Apoie a IPL" | split: ';' -%}
{%- assign col_legal = "/pt-BR/licenca/|Licença;/pt-BR/politica-privacidade/|Política de privacidade;/pt-BR/termos-uso/|Termos de uso;/pt-BR/politica-cookies/|Política de cookies" | split: ';' -%}
{%- else -%}
- {%- assign col_explore = "/en-US/|Home;/en-US/categories/|All categories;/en-US/search/|Search;/en-US/random-resource/|Random resource;/en-US/recent-changes/|Recent changes;/en-US/community-portal/|Community portal" | split: ';' -%}
+ {%- assign col_explore = "/en-US/|Home;/en-US/categories/|All categories;/en-US/learning-paths/|Learning paths;/en-US/search/|Search;/en-US/random-resource/|Random resource;/en-US/recent-changes/|Recent changes;/en-US/community-portal/|Community portal" | split: ';' -%}
{%- assign col_contribute = "/en-US/contribute/|How to contribute;/en-US/submit-resource/|Suggest a resource;/en-US/report-issues/|Report a problem;/en-US/translate/|Help translate;/en-US/add-language/|Add a language;/en-US/content-policies/|Content policies" | split: ';' -%}
{%- assign col_about = "/en-US/about/|About IPL;/en-US/mission/|Mission;/en-US/help/|Help center;/en-US/contact/|Contact;/en-US/donate/|Support IPL" | split: ';' -%}
{%- assign col_legal = "/en-US/license/|License;/en-US/privacy-policy/|Privacy policy;/en-US/terms-of-use/|Terms of use;/en-US/cookie-policy/|Cookie policy" | split: ';' -%}
diff --git a/_layouts/learning-path.html b/_layouts/learning-path.html
new file mode 100644
index 0000000..708eb76
--- /dev/null
+++ b/_layouts/learning-path.html
@@ -0,0 +1,98 @@
+---
+layout: default
+---
+{%- comment -%}
+Learning path (spec 006): ordered stages and steps backed by IPL's curated resources. Each step is a , so the
+page reads as an ordered list without JavaScript; javascript/learning-path.js adds progress kept in localStorage.
+{%- endcomment -%}
+{%- assign lang = page.lang | default: 'en-US' -%}
+{%- assign pt = false -%}{%- if lang == 'pt-BR' -%}{%- assign pt = true -%}{%- endif -%}
+{%- capture levels -%}{% if pt %}beginner:Iniciante;intermediate:Intermediário;advanced:Avançado{% else %}beginner:Beginner;intermediate:Intermediate;advanced:Advanced{% endif %}{%- endcapture -%}
+{%- assign level_label = page.level -%}
+{%- assign level_pairs = levels | split: ';' -%}{%- for pair in level_pairs -%}{%- assign kv = pair | split: ':' -%}{%- if kv[0] == page.level -%}{%- assign level_label = kv[1] -%}{%- endif -%}{%- endfor -%}
+{%- assign step_number = 0 -%}
+
+
{% if pt %}Links externos, de seus respectivos autores. Esta trilha é conteúdo original da IPL.{% else %}External links, by their respective authors. This path is original IPL content.{% endif %}
+
+ {%- endif %}
+
+
diff --git a/_layouts/learning-paths.html b/_layouts/learning-paths.html
new file mode 100644
index 0000000..9d6ad2f
--- /dev/null
+++ b/_layouts/learning-paths.html
@@ -0,0 +1,31 @@
+---
+layout: default
+---
+{%- comment -%} Learning paths index (spec 006): every path of this language, grouped by level. {%- endcomment -%}
+{%- assign lang = page.lang | default: 'en-US' -%}
+{%- assign pt = false -%}{%- if lang == 'pt-BR' -%}{%- assign pt = true -%}{%- endif -%}
+
+
+
+
{{ page.title | escape }}
+
{{ page.description | escape }}
+ {%- assign levels = 'beginner,intermediate,advanced' | split: ',' -%}
+ {%- for level in levels -%}
+ {%- assign group = page.paths | where: 'level', level -%}
+ {%- if group.size > 0 %}
+
{% if level == 'beginner' %}{% if pt %}Iniciante{% else %}Beginner{% endif %}{% elsif level == 'intermediate' %}{% if pt %}Intermediário{% else %}Intermediate{% endif %}{% else %}{% if pt %}Avançado{% else %}Advanced{% endif %}{% endif %}