Free Ways to Start Learning Go

Go, also known as Golang, is an open source programming language developed at Google. The language, which was written by Robert Griesemer, Rob Pike, and Ken Thompson, is widely used for cloud native development and building cloud infrastructure.

“Docker, a Linux container manager, and Kubernetes, a container deployment system, are core cloud technologies written in Go,” states this Communications of the ACM article. “Today, Go is the foundation for critical infrastructure at every major cloud provider and is the implementation language for most projects hosted at the Cloud Native Computing Foundation.”

This article briefly describes the language and its uses and includes resources for how to learn more.

Go Gopher
The Go gopher was originally created by Renee French (Creative Commons Attribution 3.0).

Let’s Go

The language itself, according to the Go documentation, is “expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction.”

Part of the reason for developing a new language, the CACM article states, “is to address deficiencies of previous languages, which in Go's case included security issues affecting the safety of networked software. Go removes undefined behaviors that cause so many security problems in C and C++ programs.”

Go also “compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection,” the documentation says. “Go is a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.” 

Additionally, Go’s native concurrency, networking features, and portability make it particularly well suited for certain types of development, says Serdar Yegulalp, including:

  • Cloud native development
  • Distributed network services 
  • Utilities and standalone tools

Learn Go

Go is one of the simplest programming languages out there, says Kolade Chris. “It is easy to pick up especially if you already have knowledge of any other programming language.”

“Go does not have a large feature set, especially when compared to languages like C++. Go is reminiscent of C in its syntax, making it relatively easy for longtime C developers to learn,” Yegulalp notes.

The Go learning website offers links to many resources to help you get started, including:

These resources also provide free ways to start learning Go:

See also:
CNCF Reports on Global Adoption of Containers and Kubernetes
Open Source Cloud Skills Set Developers Apart
Tips for Teaching Yourself Kubernetes
What’s a Software Engineer?

Ready to find a job? Check out the latest job listings at Open Source JobHub

FOSSlife Newsetter