Golang (también llamado Go) es un lenguaje de programación compilado de tipo estático que fue desarrollado por Google en 2009. El lenguaje combina la eficiencia de C ++ y la legibilidad de Python.
Los desarrolladores de Golang utilizan el lenguaje Go para crear páginas web y productos de software. Los deberes generales de un desarrollador de Go incluyen trabajar con Go y usar su conjunto completo de herramientas y marcos. La mayoría de los desarrolladores de Go también realizan pruebas y depuración.
La mayoría de las ofertas de trabajo para desarrolladores de Golang también requieren una amplia variedad de otras habilidade como:
- Experiencia con secuencias de comandos (Shell / PERL)
- Experiencia en diseño de aplicaciones utilizando patrones de diseño.
- Servicios web Javascript, SOAP, REST o microservicios
- Experiencia usando Git.
- Conocimiento de las prácticas de DevOps.
Go es un lenguaje fácil de aprender y viene con una documentación técnica detallada. Cambiar a Go es relativamente fácil para aquellos que tienen experiencia en lenguaje C. Aquí te compartimos lo básico que debería conocer un desarrollador:
- Aprende los conceptos básicos de Go
Para convertirse en desarrollador de Go, debe tener un conocimiento sólido del lenguaje y la sintaxis. Puedes comenzar instalando el lenguaje y aprenderlo por ti mismo, o tomar un curso en línea para guiar tu aprendizaje. Un buen camino para aprenderlo sería así:
- Nombres de archivo, palabras clave, identificadores
- Operadores, tipos, funciones y constantes
- Punteros, estructuras, métodos
- Mapas, matrices, cortes
- Ir a CLI
- Interfaz
- Manejo de errores
- Goroutine, canal, búfer
- Pánico, aplazar, error, recuperar
- Ir a patrones de diseño
El camino de aprendizaje dependerá en gran medida de tus antecedentes. Si eres completamente nuevo en la programación, Go es una excelente primera opción. Es fácil de aprender e imita otros lenguajes populares como Python y C ++.
Si ya tienes algo de experiencia en programación, también se recomienda aprender Go desde cero, comenzando con las características únicas. Éste se basa en un modelo diferente al que está acostumbrado y trata la programación orientada a objetos de manera diferente.
- Bibliotecas Master Go y otras herramientas
Una vez que tengas los conceptos básicos del lenguaes, debes pasar a las bibliotecas y herramientas complementarias que facilitan el uso de Go. La mayoría de las empresas esperan que tenga experiencia con:
- Ir a las herramientas de gestión de la dependencia
- Control de versiones semántico
- Scripts y repositorios
- Ir a las bibliotecas
- Fundamentos de SQL
- GIT
- Autenticación básica
- HTTP / HTTPS
- Enrutadores y frameworks web
- Bases de datos relacionales (PostgreSQL)
Las cosas adicionales más importantes que debes aprender son los marcos, las bibliotecas de Go y las bases de datos. Muchas de las otras habilidades se pueden aprender en el camino.
En cuanto a los frameworks, se recomienda empezar con los frameworks web Echo, Beego, Gin, Revel y Chi, siendo Echo el más importante para Go.
En términos de bibliotecas, las bibliotecas de Go más populares son Go Kit, GORM, Gen y CLI. El uso de buenas bibliotecas y paquetes hará que trabajar con Go sea aún más fácil. Cada uno tendrá sus propias características únicas, por lo que es una buena idea elegir una que se adapte a sus objetivos.
En términos de bases de datos, es importante tener algo de experiencia con bases de datos relacionales, como PostgreSQL o MySQL. Más allá de eso, el conocimiento de los marcos de registro puede ser útil, siendo Zap el más importante para Go.
- Aprende a realizar pruebas con Go
Las pruebas son una habilidad importante que buscarán la mayoría de las empresas. El Testing es la forma en que verificamos si el producto de software cumple con los requisitos y si realmente se ejecuta correctamente una vez distribuido.
Como desarrollador de Go crearás productos para el mundo real, por lo que debe probar la usabilidad y confiabilidad de sus productos. Esto incluye:
- Examen de la unidad
- Pruebas de integración
- Pruebas de comportamiento
- Prueba E2E
Las pruebas unitarias son posiblemente las más importantes para los nuevos desarrolladores de Go. Hay un paquete de prueba integrado en la biblioteca estándar de Go. Pero se inclina por el minimalismo, por lo que es posible que necesite herramientas adicionales para realizar pruebas más sólidas, como los populares frameworks Ginkgo y GoCheck. Ginkgo también se puede utilizar para pruebas de comportamiento y pruebas de integración.
- Comprender los patrones de Go
Un patrón de diseño es una solución general repetible a un problema común en el diseño de software. Los diferentes patrones de diseño ayudan a dividir la lógica empresarial o definir la estructura para ayudar con ciertas tareas.
Go ofrece patrones de diseño similares a otros lenguajes que se incluyen en estas categorías generales:
- Estructural
- Creacional
- Conductual
- Concurrencia
- Estabilidad
Los más importantes son los de creacional (como constructor, fábrica, singleton), de comportamiento (como iterador, observador, comando) y estructurales (como adaptador, puente, decorador).
- Comienza a construir tu cartera
Una vez que hayas completado estos pasos, es hora de comenzar a crear cosas para tu cartera. Así es como una empresa verá que tienes experiencia real trabajando con Golang. Además, está comprobado que la mejor manera de dominar un lenguaje es crear productos que funcionen con él, por lo que cuanto más construyes, más aprendes.
La construcción de una cartera incluye:
- Completar cursos en línea en Go
- Contribución a proyectos Go de código abierto
- Construyendo proyectos de Go desde cero
- Implementación de unidades Go en proyectos existentes
- Codificación de problemas de algoritmos clásicos con Go
- Completar cursos sobre tecnologías adyacentes (es decir, SQL)
Comienza con un curso en línea que ofrezca un certificado. Puedes agregar esto a tu currículum para demostrar que tiene los conceptos básicos. Luego, concéntrate en las contribuciones de código abierto en GitHub. Esto demuestra que puedes crear proyectos reales y sabes cómo utilizar un sistema de control de versiones popular.
Algunas preguntas comunes incluyen:
- ¿Qué es una gorutina? ¿Cómo lo paras?
- ¿Cómo puedo verificar el tipo de variable en tiempo de ejecución?
- ¿Cómo se formatea una cadena sin imprimir?
- ¿Cómo se concatenan cadenas en Go?
- ¿Qué es Go 2?
- ¿Cómo se inicializa una estructura en Go?
imagen: @pressfoto