Saltar al contenido
GoStack Open

Programa de Estudios (Syllabus)

Programa de Estudios Oficial

Un programa de formación completo diseñado para llevarte desde los fundamentos absolutos de la computación, la terminal y la web, hasta el desarrollo y despliegue profesional de aplicaciones Full Stack (web, escritorio y móvil) con Go.

El curso está estructurado en 20 módulos progresivos distribuidos en 5 fases.

Fase -1 & 0: Fundamentos, terminal y mentalidad Go

Módulo -01 Fundamentos de la Terminal & Entorno CLI
  • ¿Qué es una interfaz de comandos y cómo interactúa con el sistema operativo?
  • Navegación de directorios, creación, edición y gestión de archivos desde la terminal.
  • Permisos, variables de entorno y control de versiones con Git y GitHub desde cero.

Ir a la lección →

Módulo -00 Fundamentos de la Web & Protocolo HTTP
  • ¿Cómo funciona internet? Clientes, servidores, IPs y dominios.
  • Anatomía del protocolo HTTP: Métodos (GET, POST, PUT, DELETE), cabeceras y códigos de estado.
  • El ciclo de vida de una petición web y la filosofía de la hipermedia.

Ir a la lección →

Módulo 00 Entorno de Desarrollo, Toolchain & Mentalidad Go
  • Instalación y configuración del toolchain oficial de Go.
  • Gestión de dependencias con Go Modules (go.mod, go.sum).
  • Análisis estático con golangci-lint, formateo automático con gofmt.
  • El cambio de paradigma: pensamiento explícito frente a la magia de otros lenguajes.

Ir a la lección →

Módulo 01 Fundamentos del Lenguaje, Punteros & Memoria
  • Sintaxis básica, control de flujo, funciones y retornos múltiples.
  • Estructuras de datos nativas: arrays y slices ([]T) y su gestión en memoria (backing array, len, cap).
  • Mapas (map[K]V) y el uso explícito de punteros para eficiencia y mutabilidad.

Ir a la lección →

Módulo 02 Composición, Interfaces Implícitas & Manejo de Errores
  • El fin de la herencia clásica: diseño mediante structs y métodos.
  • Interfaces implícitas (duck typing estático) y aserción de tipos.
  • Manejo idiomático de errores como valores (if err != nil).
  • Composición de errores con fmt.Errorf, errors.Is y errors.As.

Ir a la lección →

Fase 1: Arquitectura, configuración y web hipermedia

Módulo 03 Configuración Tipada & Arquitectura de Proyectos
  • Carga de variables de entorno tipadas y seguras con envconfig / cleanenv (validación en arranque).
  • Estructuración de paquetes en Go (Clean Architecture / Domain-Driven pragmático).
  • Desacoplamiento mediante el Patrón Repository.

Ir a la lección →

Módulo 04 Servidores Web Nativos & Filosofía Hipermedia
  • El paquete nativo net/http y el enrutador avanzado de Go (métodos, comodines y patrones).
  • Creación de middlewares personalizados implementando http.Handler.
  • Renderizado de plantillas HTML en el servidor usando html/template.

Ir a la lección →

Módulo 05 Interfaz Interactiva sin JavaScript (HTMX & View Transitions)
  • Integración de HTMX en el ecosistema Go: peticiones AJAX desde HTML y fragmentos (partials).
  • Componentes nativos de HTML5 (diálogos, acordeones).
  • Transiciones de página fluidas con la API View Transitions sin escribir JavaScript complejo.

Ir a la lección →

Fase 2: Bases de datos, estado y concurrencia

Módulo 06 Persistencia Relacional & SQL Tipado con sqlc
  • Conexión a PostgreSQL mediante database/sql y el driver de alto rendimiento pgx.
  • Gestión y ejecución de migraciones con golang-migrate.
  • Generación automática de código Go fuertemente tipado a partir de SQL puro con sqlc.

Ir a la lección →

Módulo 07 Formularios Dinámicos, OOB Swaps & Estado de Interfaz
  • Validación de formularios en el servidor con respuestas estructuradas y errores en línea.
  • Actualizaciones parciales de múltiples zonas de la pantalla con Out-of-Band (OOB) Swaps de HTMX.
  • Tablas interactivas con filtrado y paginación del lado del servidor.

Ir a la lección →

Módulo 08 El Superpoder de Go: Concurrencia Nativa (CSP)
  • Modelo de concurrencia CSP (Communicating Sequential Processes).
  • Lanzamiento y gestión de Goroutines.
  • Comunicación segura mediante Channels (buffered / unbuffered) y patrón select.
  • Prevención de condiciones de carrera (Race Detector), sincronización con sync.WaitGroup y sync.Mutex.
  • Cancelación y control de tiempos con context.Context.

Ir a la lección →

Fase 3: Seguridad, APIs y tiempo real

Módulo 09 Autenticación, Sesiones & Seguridad Web
  • Gestión segura de sesiones mediante cookies HTTP (HttpOnly, Secure, SameSite).
  • Emisión y verificación de tokens JWT para autenticación de APIs.
  • Control de acceso basado en roles (RBAC).
  • Hashing seguro de credenciales con Argon2id y mitigación de vulnerabilidades (CSRF, XSS, SQLi).

Ir a la lección →

Módulo 10 Especialización de APIs: OpenAPI & Generación de Código (oapi-codegen)
  • Diseño de APIs REST JSON bajo el enfoque “API-First” usando OpenAPI 3.0 (YAML).
  • Generación automática del servidor y tipados en Go con oapi-codegen.
  • Empaquetado e integración de interfaces visuales interactivas (Swagger UI) dentro del binario con go:embed.

Ir a la lección →

Módulo 11 Comunicación en Tiempo Real & Tareas en Segundo Plano
  • WebSockets nativos en Go integrados con la extensión de WebSocket de HTMX (hx-ws / ws).
  • Procesamiento asíncrono de colas de tareas background con Asynq respaldado por Redis.

Ir a la lección →

Fase 4: Rendimiento, observabilidad, escritorio y producción

Módulo 12 Rendimiento, Caché & Optimización
  • Estrategias de caché en memoria y con Redis.
  • Compresión HTTP y carga diferida (lazy loading) con HTMX.
  • Optimización de memoria en Go y prevención del problema N+1 en consultas SQL.

Ir a la lección →

Módulo 13 Observabilidad en Producción: Logging Estructurado & Métricas
  • Uso del paquete nativo log/slog para registros estructurados en JSON con contexto.
  • Instrumentación de métricas de salud y rendimiento con Prometheus y OpenTelemetry.

Ir a la lección →

Módulo 14 Testing, Calidad de Software & Benchmarks
  • Pruebas unitarias e integración con el paquete nativo testing.
  • Simulación de servidores HTTP con net/http/httptest.
  • Pruebas de rendimiento con benchmarks (go test -bench) y Fuzz Testing nativo.

Ir a la lección →

Módulo 15 Desarrollo de Apps de Escritorio con Go y Wails
  • Empaquetado del backend de Go junto con interfaces web modernas (HTML/CSS/JS) en ejecutables nativos (.exe, .app, .deb) usando Wails.
  • Reutilización de la lógica de negocio multiplataforma.

Ir a la lección →

Módulo 16 Interfaces Nativas & Multiplataforma con Fyne
  • Construcción de interfaces gráficas nativas y ligeras en Go con Fyne.
  • Generación de paquetes de instalación para dispositivos móviles (.apk para Android).

Ir a la lección →

Módulo 17 Despliegue, Contenedores & Producción
  • Compilación de binarios estáticos ultraligeros sin dependencias (CGO_ENABLED=0).
  • Creación de imágenes Docker multi-stage optimizadas y orquestación con Docker Compose.
  • Despliegue protegido y automatizado con servidor web/proxy inverso Caddy (HTTPS automático).

Ir a la lección →