Lleva tu carrera a otro nivel por menos de 1 dólar al día.

Desarrollo Backend con Go
Ruta de aprendizaje

Desarrollo Backend con Go

Golang es un lenguaje de programación de código abierto creado por Google que ayuda en la creación de software de manera fácil, eficiente y de alto rendimiento.
Aprende a sacarle el máximo provecho a Go, un lenguaje moderno creado para el trabajo pesado.
Aprende a sacarle el máximo provecho a Go, un lenguaje moderno creado para el trabajo pesado.
Basico

Basico

Básico
Básico
Introducción a Terminal y Línea de Comandos

Introducción a Terminal y Línea de Comandos

Curso profesional de Git y GitHub

Curso profesional de Git y GitHub

Fundamentos de Bases de Datos

Fundamentos de Bases de Datos

Crea tu primer repositorio

Intermedio

Intermedio

Intermedio
Intermedio
Curso de PostgreSQL

Curso de PostgreSQL

Curso de Administración de Servidores Linux

Curso de Administración de Servidores Linux

Curso de Programación en Go

Curso de Programación en Go

GoRetos

Avanzado

Avanzado

Avanzado
Avanzado
Fundamentos de Docker

Fundamentos de Docker

Fundamentos de Arquitectura de Software

Fundamentos de Arquitectura de Software

GoChat

Go es uno de los lenguajes mejor pagados según Stack Overflow 2019

Go, también conocido como Golang, de código abierto fue creado por Google con los desarrolladores Robert Griesemer, Rob Pike y Ken Thompson en 2009. A pesar de ser un lenguaje muy joven tiene un rendimiento similar a C pero con la sintaxis amigable parecida a Python, actualmente es utilizado en aquellos programas que requieran alto rendimiento y un ejemplo de ello es Docker.

Una manera de repasar los temas básicos es utilizando la página oficial goolang.org y ellos prepararon A tour of Go. Traducido por la comunidad a múltiples idiomas, entre ellos el español. Aunque su versión en inglés hay notas adicionales interesantes además que puedes bajarlo y correrlo en localhost con el comando gotour. Con el curso de go podrás aprender todo ese contenido y más.

Ventajas de Go

  • Velocidad similar a C pero con una sintaxis amigable como Python.
  • Facilita el uso de buenas prácticas en el código.
  • Mantiene su rendimiento con grandes volúmenes de información.
  • Es uno de los lenguajes mejores pagados según la encuesta Stack Overflow 2019
  • Su curva de aprendizaje es suave en comparación con Java o C.
  • Es un lenguaje multiparadigma.
  • Ahorras tiempo al codear. Por ejemplo, para crear ciclos solo existe la función for.
  • Para manejar niveles de accesos de funciones es tan sencillo como colocar la primera letra en mayúscula o minúscula.

Esto es un Hello World en Golang:

package main

import ( 
  "fmt" 
)

func main() {
  fmt.Println("Nunca pares de aprender en Platzi")
}

Este código lo puedes probar en play.golang.org/p/tHTM84d04gw. Podrás notar que sin necesidad de importar otra librería puedes imprimir en consola textos en otro idioma.

Concurrencia

Una de las principales funciones de Golang es que maneja las múltiples tareas de forma concurrente, es decir, que el procesador divide el trabajo en múltiples hilos y a cada uno le dedica un tiempo en milisegundos acelerando el tiempo de ejecución en cada tarea sin necesidad de realizar configuraciones adicionales ya que Golang lo traen en sus librerías preinstaladas.

La manera como Golang trabaja esto es a través de Goroutines y Canales. Puedes tener múltiples Goroutines por canal y transportar el Goroutine de un canal a otro. Un excelente uso de Goroutines es al momento de trabajar transferencia de datos en tiempo real desde un cliente a otro, como por ejemplo un chat o un sistema de ubicación en tiempo real.

Este es un ejemplo de concurrencia que aprenderás en el Curso de Go

package main

import (
  "fmt" 
  "time"
)

func helloGo(index int) {
  fmt.Println("Goroutine #", index)
}

func forGo(n int){	
  for i := 0; i < n; i++ {
    go helloGo(i)
  }
}

func main(){
  go forGo(500)
  time.Sleep(2000 * time.Millisecond)
}

Podrás ver el código en ejecución en play.golang.org/p/jnpLzgJsDoO

Como notarás los índices del output no son secuenciales, esto se debe a que están trabajando de forma concurrente.

¿Por qué estudiar BackEnd en Go?

Go con su sintaxis sencilla de entender facilita su aprendizaje y unas de sus ventajas principales es la implementación de concurrencia por defecto mediante goroutines que facilita el rendimiento de cálculos y múltiples tareas complejas con grandes cantidades de datos. Es por ello que al momento de requerir WebSockets con altas peticiones es el lenguaje ideal e gracias a este potencial existen librerías para utilizar Golang en Machine Learning.

Con el Curso de Golang podrás aprender las bases para crear tus propias APIs e inclusive implementar realtime de forma sencilla y potente con este lenguaje de alto rendimiento cada vez más demandado por las empresas.

Librerías

Hay dos fuentes principales donde encontrar librerías, la primera son las que vienen por defecto al instalar y encuentras la documentación en golang.org/pkg y puedes encontrar librerías de terceros en go-search.org.

Entre las más populares se encuentran:

  • Hugo: Es un generador de páginas web estáticas, en el cual seleccionas un tema y el contenido lo realizas utilizando la sintaxis de Markdown.

  • Gorilla: Tiene un conjunto de librerías para el desarrollo Web, ideal para prototipar WebSockets.

  • qt y go-gtk: Ayudan a crear interfaces gráficas multiplaformas.

  • Gonum: Enfocada al uso de Data Science con Go puesto que contiene funciones para manejar matrices, estadísticas y optimización.

  • GoLearn: Es parecida a Scikit-Learn para Python, enfocado a Machine learning con Go.

  • Gophernotes: Kernel creado para trabajar en Go dentro de Jupyter notebook.

  • TinyGo: Utilizado para programar en IoT con Go.

Frameworks populares en desarrollo Web

  • Echo: Minimalista, escalable y de alto rendimiento y si lo combinas con Fresh podrás hacer que cada cambio guardado se recompile y ejecute.

  • Revel: Es bastante completo para hacer proyectos complejos.

  • Gin: Es rápido en su ejecución e ideal para hacer prototipos de de microservicios RESTful API.

  • Beego: Dispone de su propio ORM y facilita el desarrollo Web bajo el model MVC.

  • Buffalo: Implementa el kit de herramientas de Gorilla y puedes recargar código en caliente con buffalo dev

Comunidades

  • Gophers: Es la comunidad oficial en Slack, varias comunidades con propósitos específicos se concentran en sus canales.

  • @golang: Twitter donde publican noticias de Golang.

  • golangweekly: Si te suscribes semanalmente recibirás de los últimos avances del lenguaje, tutoriales e inclusive ofertas de trabajo.

  • r/golang (reddit): Muy activa referente a noticias y diversos tutoriales.

¿Qué skills desarrollarás con el Curso de Go?

  • Conocerás los fundamentos del lenguaje.
  • Implementarás concurrencia con bajo consumo de recursos, ideal para WebSocket como Chat o posicionamiento en tiempo real.
  • Aprenderás a utilizar buenas prácticas en programación con el Curso de Go.
  • Utilizarás Docker y Kubernetes para crear tus microservicios.
  • Dominarás la terminal de Linux y Git para hacer versionado de tus proyectos y trabajo colaborativo.

¡Prueba la suscripción de Platzi!

¡No te pierdas nuestros lanzamientos!

Glosario

Glosario

Backend: Parte del software que actua fuera de los ojos del usuario, en el desarrollo web es la capa que se encarga de manejar la información y las reglas del negocio

API: Aplicación que funciona como interfaz de programación, la cual es usada como biblioteca y proporciona interoperabilidad entre sistemas.

CRUD: De sus siglas en inglés Create, Read, Update, Delete. Este término se utiliza para describir una aplicación web cuyo propósito general es crear, leer, actualizar y eliminar. Por ejemplo el software de un blog, donde se puede crear una entrada, leerla, actualizarla o eliminarla.

GOPATH: Variable de entorno Linux donde indica el Path de trabajo de Go y en el que se encuentran las carpetas SRC, BIN y PKG.

Goroutines: Son hilos de ejecución de código en Golang que se mandan al procesador y trabajan de forma concurrente.

Concurrencia: Forma en que el procesador ejecuta hilos por un lapso de tiempo cada uno siguiendo un orden sin alterar el resultado fianl.

Aprende de los mejores

Karen Chizón Feria

Karen Chizón Feria

Frontend developer en Sable Digital Studio - Gestionix

@kazhet
Gustavo Angulo

Gustavo Angulo

CTO en Ubidots

@woakas
Yohan Graterol

Yohan Graterol

DevOps en Platzi

@yograterol
Guido Vilariño

Guido Vilariño

Technology development en Mural

@gvilarino
Alberto Alcocer

Alberto Alcocer

en Independiente

@beco
Israel Vázquez Morales

Israel Vázquez Morales

YouNoodle en Senior Software Engineer

@israbaurel

Rutas relacionadas para complementar tu aprendizaje

Administración de Servidores y DevOps
Ruta de aprendizaje

Administración de Servidores y DevOps

Avanzado
DevOps es una cultura que combina buenas prácticas y software para mejorar el despliegue y puesta en marcha de aplicaciones de manera rápida y segura.
Arquitectura Frontend
Ruta de aprendizaje

Arquitectura Frontend

Básico
Crea sitios web desde cero con una interfaz gráfica dinámica y atractiva en el navegador y dispositivos móviles, aplicando HTML, CSS y Javascript.
Bases de Datos
Ruta de aprendizaje

Bases de Datos

Básico
Es muy importante saber ¿qué? ¿cómo? y ¿dónde?, se guardarán tus datos. Aprende desde cero la teoría y práctica para administrar DBs profesionalmente.

¿Qué estás esperando?

Empieza a estudiar ahora y asegura tu futuro