// 10 · plan de ataque para tu perfil exacto
Tu roadmap, la historia y los recursos
Seis semanas con entregables, la evolución del lenguaje que te van a preguntar en entrevistas, y los recursos que valen tu tiempo.
// cada semana, un entregable
Roadmap de 6 semanas
- S1Sintaxis y mentalidad
Haz el Tour of Go completo (un día te basta) y reescribe la CLI
gostatsde la página de apps sin mirar. Objetivo: queif err != nildeje de dolerte. - S2Interfaces y errores en serio
Lee Effective Go. Refactoriza tu CLI: extrae interfaces pequeñas, añade errores con
%wy tests de tabla con cobertura > 80%. - S3Tu primera API completa
Reconstruye la API de tareas con chi + Postgres (sqlx) + migraciones + JWT. Réplica de algo que ya hiciste en Spring — la comparación te enseñará más que cualquier tutorial.
- S4Concurrencia de verdad
Construye el scraper concurrente con worker pool, timeouts por contexto y
-racelimpio. Después el chat WebSocket con el patrón hub. Esta semana es la que te convierte en "dev Go" y no "dev Java que escribe Go". - S5Proyecto integrador
API + worker + frontend React consumiéndola (embebido con
go:embed), todo en Docker Compose con imágenes distroless. Súbelo a GitHub con el CI de la página 05: eso es un portfolio-piece real para vacantes. - S6Pulido profesional
Añade slog + métricas Prometheus + pprof al proyecto. Lee Google Go Style Guide y Learn Go with Tests como referencia continua.
// nuevo · lo que te van a preguntar
Historia del lenguaje en 8 hitos
Go evoluciona despacio a propósito — la promesa de compatibilidad de Go 1 (2012) garantiza que el código de hace una década compila hoy. Estos son los hitos que definen "Go moderno":
- 2009Nace Go
Pike, Thompson y Griesemer lo publican como proyecto open source de Google. Objetivo: la velocidad de compilación de Pascal, la seguridad de Java, la concurrencia de CSP.
- 2012Go 1.0 y la promesa de compatibilidad
Todo programa Go 1 válido seguirá compilando en cualquier Go 1.x. La razón por la que el ecosistema no tiene "python 2 vs 3".
- 2019Go 1.13: módulos y error wrapping
Los módulos sustituyen a GOPATH (todo tutorial anterior quedó obsoleto) y llegan
%w,errors.Isyerrors.As. - 2022Go 1.18: generics y fuzzing
El cambio más grande de la historia del lenguaje: type parameters con constraints, más fuzzing nativo y workspaces.
- 2023Go 1.21: slog, min/max/clear
Logging estructurado en la stdlib y el toolchain que se auto-gestiona (GOTOOLCHAIN).
- 2024Go 1.22: el router moderno y el fix del loop var
ServeMux con métodos y path variables — frameworks opcionales. Y la variable de bucle se crea por iteración: muere la trampa de capturas en goroutines más famosa del lenguaje.
- 2024Go 1.23: iteradores
rangesobre funciones: secuencias perezosas al estilo generators, adoptadas porslices,mapsystrings. - 2025Go 1.24: alias genéricos, b.Loop, tool directives
Benchmarks más robustos, herramientas versionadas en go.mod (
tool) y mejoras de rendimiento del runtime (~2-3% general).
Preguntas de entrevista Go que caen una y otra vez
- ¿Diferencia entre slice y array? ¿Qué pasa al hacer append? (→ colecciones)
- ¿Cuándo usar canal y cuándo mutex? (→ sync)
- ¿Qué es una goroutine leak y cómo la evitas? (→ errores comunes)
- ¿Receptor por valor o por puntero? ¿Y cómo afecta a las interfaces? (→ structs)
- ¿Cómo funciona
defery en qué orden se ejecutan? (→ defer) - ¿
errors.Isvserrors.As? ¿Para qué envuelves con%w? (→ errores) - ¿Qué es el context y por qué toda función de I/O lo recibe? (→ context)
- ¿Por qué el orden de iteración de un map es aleatorio?
- ¿Qué imprime este código con goroutines y closures? (el clásico — desde Go 1.22 la respuesta cambió: variable por iteración)
- ¿Cómo detectas una race condition? (
go test -race— di esto y sonríe)
// el estante de referencia
Recursos que valen tu tiempo
Tour of Go
El punto de partida oficial, corre en el navegador. Hazlo completo.
referencia rápidaGo by Example
Cada idioma del lenguaje en un ejemplo mínimo. Tu pestaña fija las primeras semanas.
lectura obligadaEffective Go
El documento que convierte sintaxis en idioma. Léelo en la semana 2.
TDDLearn Go with Tests
Aprende el lenguaje escribiendo tests primero. Encaja perfecto con tu experiencia.
estiloGoogle Go Style Guide
Las decisiones de estilo explicadas con el porqué. Para la semana 6.
catálogoawesome-go
El índice curado de librerías del ecosistema. Busca aquí antes de reinventar.
docspkg.go.dev
La documentación de todo paquete público del ecosistema, generada de los comentarios godoc.
comunidadGophers Slack
Decenas de miles de gophers; canal #newbies muy activo. También: el podcast Go Time.
El consejo finalTu experiencia con Spring, React y APIs no se pierde: se traduce. Cada patrón que conoces tiene su forma Go — normalmente más pequeña y más explícita. El día que escribas una interfaz de un método sin pensarlo, dejaste de traducir: ya piensas en Go. Suerte, Daniel. 🐹