¿Por qué elegir Go? Antes de entrar en mi lista de recursos de aprendizaje de Go, permítanme contarles sobre una de las deserciones más famosas de toda la historia de la programación.
Había un desarrollador en Node.js que era tan prolífico que mucha gente creía que no era una persona real. Teorizaron que en realidad era un grupo de desarrolladores que trabajaban bajo un nombre.
Ese desarrollador fue TJ Holowaychuk. Fue el autor de muchos de los paquetes npm más utilizados y contribuyó a las bibliotecas clave de JavaScript.
Pero de hecho era una persona real. Y un día de 2014, decidió dejar la comunidad de Node para concentrarse en Go.
Mucha gente se sentó en sus sillas. ¿Vamos?
Si. Vamos.
El lenguaje había alcanzado el nivel de promesa que incluso algunos de los desarrolladores más influyentes estaban avanzando hacia él.
La comunidad de Go abrazó a TJ con los brazos abiertos.
Entonces, ¿por qué tal desarrollador podría preferir la relativa simplicidad y la sintaxis directa de Go sobre los lenguajes de back-end alternativos?
Para las personas autodidactas como yo, Go ofreció una gran oportunidad para sumergirse en diferentes áreas de la informática y la ingeniería de sistemas.
Go es similar a C, pero con seguridad de memoria y tiempo de ejecución para simultaneidad incorporada. Y en ese sentido, está mucho más "cerca del metal", por así decirlo, cuando se trata de interactuar con las primitivas generales que subyacen a los sistemas operativos.
Ahora construyo principalmente sistemas distribuidos. Antes de aprender Go, mi experiencia era, como TJ, principalmente en Node y JavaScript. Node hace muchas cosas bien, pero no concurrencia. Y Node ya no es la herramienta elegida por quienes trabajan en sistemas distribuidos. En cambio, Go se ha convertido en el idioma de referencia.
Ir como idioma
Go es un lenguaje compilado de tipo estático famoso por su sintaxis simple y directa. Aborda los errores comunes de C mientras mantiene su rendimiento e interoperabilidad.
A pesar de esta simplicidad, Go está, en esencia, diseñado para manejar la simultaneidad. Y adolece de la complejidad que esto conlleva.
Go también es bastante idiomático, lo que hace que las mejores prácticas sean un poco esquivas.
Una de las características más atractivas de Go es la facilidad para comenzar. Los alumnos a menudo tienen dificultades para elegir recursos entre los miles disponibles.
Con eso en mente, aquí hay algunas sugerencias obstinadas sobre por dónde empezar.
Libro recomendado: Essential Go
Essential Go Essential Go,

Essential Go proporciona una descripción general completa del idioma. Es un recurso excelente tanto para principiantes como para estudiantes intermedios.
Cubre en profundidad las estructuras de datos fundamentales del lenguaje.
También explica la concurrencia y Goroutines, dando una idea de las mejores prácticas idiomáticas.
Libro recomendado: The Little Go Book
The Little Go Book Descarga gratuita, The Little Go Book es una introducción al lenguaje de programación Go de Google
Otra buena opción para aquellos que buscan comenzar rápidamente.
The Little Go Book cubre los conceptos básicos. Puede que esté desactualizado, pero los fundamentos que cubre no han cambiado.
Curso recomendado: Programación Learn Go
La inmersión completa de 7 horas de freeCodeCamp en Go. Es mejor abordarlo en partes, este es un excelente recurso para principiantes.
El contenido del curso también lo hace útil para programadores de Go intermedios que deseen recapitular diferentes temas.
Herramienta de práctica recomendada: Aprenda a seguir con las pruebas
quii / learn-go-with-tests Learn Go con desarrollo impulsado por pruebas. Contribuya al desarrollo de quii / learn-go-with-tests creando una cuenta en GitHub.

La mejor forma de empezar es empezar a escribir código.
Learn Go With Tests es una excelente introducción para aprender los entresijos del idioma.
Blog recomendado: Blog del lenguaje de programación Go
Go Programming Language Go es un lenguaje de programación de código abierto que facilita la creación de software simple, confiable y eficiente.
Esta es la fuente de información de facto sobre nuevas funciones y mejores prácticas en Go.
Este blog tiene un excelente conjunto de recursos para desarrolladores.
Aquí se describen en detalle las nuevas funciones, las mejores prácticas y los patrones de Go.
Recomendar documentación: GoDoc
//godoc.org/
GoDoc es el recurso más utilizado por los desarrolladores de Go.
Es una fuente única para toda la documentación de la biblioteca estándar y los paquetes de terceros.
Se anima a los alumnos a consultar este sitio como primer puerto de escala.
Una vez que domine los fundamentos de Go, este será el único recurso que necesitará.
Lectura recomendada: la especificación de idioma de Go
Por último, el manual de referencia de Go es una excelente fuente de información para las preguntas que tendrá a medida que vaya leyendo.
Al igual que con cualquier lenguaje de programación, deberá escribir código para mejorar. Go es flexible y tiene una amplia variedad de aplicaciones.
Encuentre un proyecto de interés y utilice Go, haciendo un uso particular de GoDoc a medida que avanza. Un buen lugar para comenzar es //tour.golang.org.