Este repositorio contiene algunos artículos introductorios al lenguaje Go.
Se asume que el lector sabe programar y quiere aprender más sobre Go. También se recomienda conocer la sintáxis de lenguajes de la familia de C (como C,C++, C#, Java, Javascript y similares).
Está pensado como una guía, no un curso como tal. Se trata de mostrar las características del lenguaje resolviendo algunos problemas específicos.
Cada problema es presentado en un artículo y el código que lo resuelve está contenido en su propia carpeta. El artículo explica algunas características del lenguaje usados para resolver el desafío, y resalta las partes del código relevante.
Al final se incluye bibliografía recomendada para aprender el lenguaje en profundidad.
El objetivo de esta guía es proveer material en español para este lenguaje.
Si te interesa este contenido puedes apoyarme suscribiéndote a mi newsletter El Programador Oxidado/La Naturaleza del Software.
En esta parte aprenderemos lo básico de go construyendo algunos programas.
- Instala Go en tu máquina
- Hola Mundo: el clásico ejemplo.
- Hola Web: versión más moderna de "hola mundo", creamos un servidor web para poder saludar.
- Múltiplos y FizzBuzz: como declarar variables, y las estructuras de control de flujo.
- Letras: switch y diccionarios.
- Go Tooling: herramientas incluidas en Go.
Continuamos la exploración de Go aprendiendo cómo trabajar con todo tipo de datos.
- Lo público y lo privado: revisamos como crear paquetes y como se implementa el encapsulamiento en Go.
- Need For Speed: vemos como trabajar con structs resolviendo un par de problemas publicado en Exercism.
- Si camina como pato, grazna como pato y nada como pato, entonces es pato: revisamos como se implementan las interfaces en Go y se usan para implementar OOP en este lenguaje.
En esta parte vamos a revisar el modelo de Concurrencia propuesto por Go, basado en canales y go routines.
- Reloj no marques las horas: introduciremos las go rutinas (go routines) creand un servidor tcp/ip que nos reporte la hora.
- Fibonacci Square: vamos a introducir el concepto de canales implementando un patrón para simular generadores en Go.
TBD
TBD
Libros y guías para aprender Go:
- The Go Programming Language por Brian Kernighan
- Learning Go: An Idiomatic Approach to Real-World Go Programming por Jon Bodner
- Concurrency in Go: Tools and Techniques for Developers 1st Edition por Katherine Cox-buday
- Effective Go
- Go en Exercism
(c) 2024 Eduardo Díaz Cortés