Saltar al contenido
Logotipo de Trainontech Trainontech

Lenguajes y Fundamentos de Programación · LNG-170

Go desde cero

Un lenguaje pequeño y explícito: tipos, structs, interfaces y errores como valores, practicado desde el cuaderno.

Bajo demanda Iniciación 8 módulos · 39 clases

Formato asíncrono Desarrollo, Ingeniería / Industria Go, JupyterLab

Lo que aprenderás

  • Declarar variables, funciones con retorno múltiple y tipos propios con la sintaxis de Go.
  • Trabajar con slices y mapas entendiendo su capacidad, su crecimiento y su copia.
  • Definir structs y métodos con receptores por valor o por puntero según convenga.
  • Implementar interfaces de forma implícita y programar contra comportamientos, no contra tipos.
  • Tratar errores como valores devueltos, envolverlos con fmt.Errorf y comprobarlos con errors.Is.
  • Organizar el código en módulos con go mod y ejecutar pruebas con go test.
  • Formatear y revisar el código con gofmt y go vet como parte del flujo habitual.

Contenido del curso

8 módulos · 39 clases en vídeo · práctica guiada en cada módulo

Módulo 1 · Presentación y entorno 4 clases
  • Para qué se diseñó Go y dónde se usa
  • Primera celda en JupyterLab con el kernel de Go
  • Estructura de un programa: package, import y func main
  • gofmt y por qué no hay debate de estilo
Módulo 2 · Tipos y funciones 5 clases
  • Variables, tipos básicos y declaración corta
  • Constantes y valores no tipados
  • Funciones, retorno múltiple y valores nombrados
  • defer y su orden de ejecución
  • Punteros sin aritmética
Módulo 3 · Colecciones 5 clases
  • Arrays frente a slices
  • Longitud, capacidad y crecimiento de un slice
  • append y las copias inesperadas
  • Mapas: creación, acceso y borrado
  • Recorrido con range y orden no garantizado
Módulo 4 · Structs y métodos 5 clases
  • Definir structs y literales compuestos
  • Métodos con receptor por valor o por puntero
  • Composición mediante incrustación
  • Etiquetas de campo y serialización JSON
  • Constructores idiomáticos
Módulo 5 · Interfaces 5 clases
  • Satisfacción implícita de interfaces
  • Interfaces pequeñas y su ventaja
  • La interfaz vacía y el tipo any
  • Aserciones de tipo y switch de tipos
  • Ejercicio: sustituir una dependencia en pruebas
Módulo 6 · Errores como valores 5 clases
  • El patrón de retorno con error
  • Crear errores con errors.New y fmt.Errorf
  • Envolver errores y comprobar con errors.Is y errors.As
  • Tipos de error propios
  • panic y recover: cuándo son legítimos
Módulo 7 · Módulos, pruebas y herramientas 5 clases
  • go mod init y gestión de dependencias
  • Estructura de paquetes de un proyecto
  • Pruebas con go test y tablas de casos
  • Cobertura y pruebas de ejemplo
  • go vet y análisis estático
Módulo 8 · Caso práctico: utilidad de línea de comandos 5 clases
  • Diseño de la herramienta y de sus banderas
  • Lectura de ficheros y salida por consola
  • Manejo de errores con mensajes útiles
  • Pruebas de la lógica principal
  • Entrega: binario compilado para varias plataformas

Requisitos

  • Haber programado en algún lenguaje, aunque sea a nivel básico.
  • Basta con un navegador para los primeros módulos: se practica en JupyterLab con el kernel de Go.
  • Para el bloque de módulos y pruebas conviene instalar Go en el equipo.

Descripción

Go se diseñó para que un equipo grande pueda leer código ajeno sin discutir estilo ni descifrar abstracciones. Tiene pocas construcciones, un formateador único y un compilador rápido, y por eso está detrás de Docker, Kubernetes, Terraform y buena parte de la infraestructura que se usa a diario. La contrapartida es que exige explicitar cosas que otros lenguajes esconden.

El curso recorre el lenguaje completo sin rodeos: tipos, slices, mapas, structs, interfaces implícitas y el tratamiento de errores como valores, que es la decisión que más sorprende al llegar de Java o Python. Se practica primero en cuaderno y después con la herramienta oficial: go mod, go test, gofmt y go vet, escribiendo una utilidad de línea de comandos completa.

Al terminar se puede leer el código de proyectos de infraestructura y escribir herramientas propias que compilan a un único binario sin dependencias. Es el paso previo al curso de concurrencia con goroutines y canales, y a la construcción de servicios y APIs, donde Go se ha convertido en la elección habitual.

¿Para quién es este curso?

  • Desarrolladores de backend que se incorporan a proyectos de infraestructura escritos en Go.
  • Ingeniería de sistemas y DevOps que necesita escribir herramientas propias con un único binario.
  • Programadores de otros lenguajes que quieren un lenguaje explícito para servicios de red.
Bajo demanda

Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.

Código
LNG-170
Nivel
Iniciación
Público
Desarrollo, Ingeniería / Industria
Entorno
Go, JupyterLab

Este curso incluye

  • 39 clases en vídeo bajo demanda
  • Práctica íntegramente en JupyterLab, solo con un navegador
  • Tutorización en el campus
  • Acceso desde móvil, tableta y ordenador
  • Actualizaciones cuando cambia la versión de la herramienta
  • Certificado de finalización

Sigue aprendiendo

Cursos relacionados

PY-101Lenguajes y Fundamentos de Programación

Python desde cero

Variables, tipos, operadores, condicionales, bucles y funciones con práctica continua en cuaderno.

PythonGoogle Colab

Iniciación 42 clases

PY-102Lenguajes y Fundamentos de Programación

Estructuras de datos en Python

Listas, tuplas, diccionarios y conjuntos: cuándo usa cada una un programador con oficio.

Python

Iniciación 33 clases

Bajo demanda

DEV-101Lenguajes y Fundamentos de Programación

Git y GitHub para equipos técnicos

Ramas, revisiones y resolución de conflictos con un flujo de trabajo que un equipo puede sostener.

Git

Iniciación 34 clases