Aprende Go

Curso · 8 lecciones

Aprende Go desde cero, en español

Go es un lenguaje compilado, con recolector de basura y una sintaxis deliberadamente pequeña: se puede leer entera en una tarde. A cambio pide hacer las cosas de una manera concreta, y ahí es donde se atasca casi todo el mundo. Este curso va directo a eso, sin rodeos y con todo el código ejecutado.

Empezar por la lección 1Ver ejemplos sueltos

Por qué Go se siente distinto

Si vienes de Python o de Java, lo primero que llama la atención no es lo que Go tiene, sino lo que no tiene: no hay clases, ni herencia, ni excepciones, ni genéricos hasta hace bien poco, ni dos maneras de hacer lo mismo. Esa escasez es intencionada, y es lo que hace que el código de cualquiera se lea parecido al tuyo.

Lo segundo es cómo se entrega lo que escribes:

De un archivo .go a un binario que se ejecuta en cualquier parteQué pasa cuando compilas un programa de Gomain.gotu código,unas pocas líneasgo builduna orden,sin configurar nadaholaun binario de 2,2 MB,sin dependenciasotra máquinase copia y se ejecuta,nada que instalarNo hay máquina virtual que instalar, ni intérprete, ni un «funciona en mi equipo»: el binario lo lleva todo dentroDurante el aprendizaje ni siquiera hace falta compilar: go run . hace las dos cosas de una vezMedido de verdad: 2,2 MB y «not a dynamic executable» con Go 1.25 en Linux

Un programa de Go compila a un único archivo que no necesita nada instalado en la máquina de destino. Ese detalle explica buena parte de por qué el lenguaje se usa tanto en servidores y herramientas de línea de órdenes, y es la razón de que Docker, Kubernetes o Terraform estén escritos en él.

Lo que necesitas para seguir el curso

Solo Go. La instalación oficial está en go.dev/dl y no requiere configurar nada más. Para comprobar que ha quedado bien:

go version
salidago version go1.25.14 linux/amd64

No hace falta ningún entorno de desarrollo concreto. Cualquier editor con resaltado vale, y si usas Visual Studio Code, su extensión oficial de Go trae el formateo y el autocompletado ya configurados.

Una costumbre que conviene adoptar desde el minuto uno. Go trae su propio formateador, gofmt, y no es opinable: no hay discusiones de estilo porque el formato es uno solo. Casi todos los editores lo ejecutan al guardar. Déjalo activado y olvídate de dónde van las llaves.

La ruta: ocho lecciones

Están pensadas para leerse en orden, porque cada una usa lo anterior. Si ya programas en otro lenguaje, la 1 y la 2 se pasan rápido; las que de verdad cambian la forma de escribir son la 5 y la 7.

1

Primeros pasos

El primer programa, go run, go build y qué es un módulo.

Leer lección →

2

Tipos, variables y funciones

Declaraciones con :=, valores cero y el retorno múltiple.

Leer lección →

3

Control y colecciones

if, for y switch, y las dos estructuras que lo sostienen todo: slices y maps.

Leer lección →

4

Structs, métodos e interfaces

Composición en vez de herencia, e interfaces que se cumplen sin decirlo.

Leer lección →

5

Errores

Por qué no hay excepciones, el patrón if err != nil y defer.

Leer lección →

6

Punteros y valores

Qué se copia y qué no, y cuándo el receptor de un método lleva asterisco.

Leer lección →

7

Concurrencia

Goroutines, canales, select y el detector de carreras.

Leer lección →

8

Paquetes, pruebas y herramientas

Cómo se organiza un proyecto, go test y el resto de la caja de herramientas.

Leer lección →

Cómo está hecho este curso

Todo el código que aparece se compiló y se ejecutó con Go 1.25 antes de publicarse, y las salidas están copiadas de esa ejecución, no redactadas. Cuando una lección dice «esto no compila», es porque se intentó compilar y se anotó el error exacto que devuelve el compilador. Los esquemas son propios.

Las lecciones son cortas a propósito. Para ejemplos concretos y resueltos —leer un XML, montar un servidor web, conectar con una base de datos— está la sección de ejemplos de Go, que es complementaria.