Table of Contents
Prerequisites for learning Go
Documents related to go are following a series on Udemy by Maximilian Schwarzmüller among some other prominent developers and course creators on LinkedIn Learning. To follow along with learning go, it is highly recommended to know the basics of another language.
Abstract
What is Go?
Go, also known as Golang, is an open-source programming language developed by Google, designed by Robert Griesemer, Rob Pike, and Ken Thompson. Go aims to address concerns in other programming languages such as the following:
- Slow compilation times;
- Complex dependency management;
- Challenges faced in concurrent programming.
The language features a clean and concise syntax, making it easy to pick-up, learn, and use. Go’s powerful concurrency model, based on goroutines
and channels, simplifies the development of concurrent applications.
Additionally go also includes the following features:
- Extensive standard library;
- Static typing;
- Garbage collection;
- Robust and reliable environment for building:
- Scalable systems;
- Web servers / web applications;
- Networking tools.
Interesting Facts about Go
- Go is mostly influenced by C, among other languages including:
- C++, C#, and Java.
- Go implements many well defined OOP concepts such as:
- Encapsulation with
types
andstructs
; - Polymorphism with
interfaces
.
- Encapsulation with
Definitions
goroutine: lightweight execution thread in Go and a function that executes concurrently with the rest of the application.
garbage collection: also known as GC, is the process of recycling memory on behalf of the application by identifying which parts of memory are no longer needed.
dependency management: the process of managing all irrelated tasks and resources to ensure application completes successfully, on time, and on budget.
concurrency: the fact of two or more events or circumstances happening or existing at the same time.
[!!cite:computing term]
ability to execute more than one program or task simultaneously.
TL;DR
Go, or Golang, is an open-source programming language from Google, created to tackle issues like slow compilation, complex dependency management, and concurrent programming challenges. It features an easy-to-learn syntax, an efficient concurrency model using goroutines and channels, and includes a comprehensive standard library, static typing, and garbage collection. Go is ideal for building scalable systems, web servers, and networking tools.
Extensions ✨
Courses on Go
- Go - The Complete Guide by Maximillian Schwarzmüller
- Go Essentials - Concurrency, Connectivity, and High-Performance Apps by Miki Tebeka
- Learning Go by David Gassner
- Learning the Go Standard Library by Joe Marini
- Go Design Patterns by Joe Marini