Aspire Journeys

Go Programming Essentials

  • 20 Courses | 20h 35m 12s
  • 1 Lab
Likes 5 Likes 5
When it comes to systems and application programming, choosing a programming language from a wide range of modern languages and environments is often challenging. Effective compilation, efficient execution, and effortless programming are three criteria that are not readily available in most mainstream languages. For this reason, Go, an open-source programming language, is fast gaining popularity among programmers. Programmers embrace Go to combine the ease of programming provided by an interpreted, dynamically-typed language with the efficiency and safety of a statically-typed, compiled language. Programmers harness the potential of Go programming with its built-in concurrency model, robust standard library, and support for networked and multicore computing, making programming incredibly modern and unbelievably fast.  In the ​Go Programming Essentials journey, you will first explore the core principles of Go programming in the first track. The second track of the journey transitions towards working with Go’s advanced programming features. In the third and final track, you will learn how to create web applications and web services using Go standard libraries.​

Track 1: Go Foundation for Beginners

In this track of the Go Programming Essentials journey, the focus will be on the core principles of Go programming, such as basic programming, functions & object orientation, and error & file handling.

  • 5 Courses | 6h 3m 14s

Track 2: Advanced Programming in Go

In this track of the Go Programming Essentials journey, the focus will be on Go’s advanced programming features, such as the libraries or packages supported by the language, data handling capabilities, efficient solutions for concurrency issues, and testing techniques.

  • 8 Courses | 8h 2m 36s

Track 3: Web Programming in Go

In this track of the Go Programming Essentials journey, the focus will be on the skills needed to create web applications and web services using Go standard libraries.​

  • 7 Courses | 6h 29m 22s
  • 1 Lab


Getting Started with Go: Introducing Go Programming Language
Go is a language that attempts to combine the ease of programming of an interpreted, dynamically typed language with the efficiency, maintainability and safety of a statically typed, compiled language. In this course, you'll explore the history of Go, why it was developed and how it is used across specific domains in the real world. Next, you'll discover the differentiating features of Go, and how Go differs from other programming languages. You’ll also explore the real world uses of Go, and the pros and cons. You’ll then explore the Go Playground web service to vet, compile, link, and run programs inside a sandbox Finally, you'll learn to configure a Go development environment, installing a code editor and the Go tools on a local development machine.
11 videos | 1h has Assessment available Badge
Getting Started with Go: Basic Programming
Go leverages some of the best features from other languages focusing on a simple, concise program structure and syntax. Go's relatively short learning curve means developers can start developing right away. In this course, you'll explore Go program structure and syntax and the various data types supported by Go. Next, you'll examine various approaches utilized in Go for developing program logic. You'll learn how to declare and initialize variables and constants and explore the specific operators used with different data types. You'll move on to learn how to work with complex data types and how to write code to control the flow of programs by leveraging looping and branching. Lastly, you'll learn how to manipulate and manage strings with various string functions available in Go.
17 videos | 2h has Assessment available Badge
Getting Started with Go: Functions & Object Orientation
Go is a statically-typed, multi-paradigm programming language supporting functional and procedural programming, and while Go is not an object oriented programming language out of the box, it does provide types and methods that can conveniently be used to emulate object oriented programming. In this course, you'll explore how to define and write functions and you'll learn how functions can be declared with receivers to create methods in Go. You'll explore how pointers and pointer variables are used in Go and you'll learn how to experiment with structs as objects and interfaces that explicitly define the relationship between objects. You'll explore how data types in Go can have state and behavior associated with them, and lastly, you'll explore how a lightweight form of object orientation is achieved in Go.
12 videos | 1h has Assessment available Badge
Getting Started with Go: Error & File Handling
Go has a unique approach to error handling, treating errors as values that can be passed around and manipulated just like any other values. The language also provides several packages and built-ins in the standard library for working with file systems and performing I/O operations. In this course, you'll explore how errors are handled in Go using error values. You'll learn how to handle errors by importing and using package errors and work with custom error types. You'll examine how to implement Go's defer statement along with the built-in panic and recover functions to handle and recover from real-time errors. Finally, you'll learn about file input and output and how to perform basic I/O operations on files and directories.
12 videos | 1h has Assessment available Badge
Final Exam: Go Foundation for Beginners
Final Exam: Go Foundation for Beginners will test your knowledge and application of the topics presented throughout the Go Foundation for Beginners track of the Skillsoft Aspire Go Programming Essentials Journey.
10m has Assessment available Badge
Advanced Programming in Go: Deep Dive into Packages
All Go programs are composed of one or more packages. Packages organize Go source code in a way that makes the code easily reusable and readable. Packages essentially allow you to take one or more source code files and compartmentalize them into a single unit. In this course, you'll explore what Go packages are and why they are used. You'll examine best practice for working with Go packages and learn about working with modules and packages. Next, you'll learn about package names and how to declare and import packages. Finally, you'll explore how to create and use custom packages and nested packages, as well as how to use the init() function in Go to initialize an application.
1h has Assessment available Badge
Advanced Programming in Go: Concurrency
Concurrency is a critical component of modern software, as it is capable of leveraging modern hardware advances. Concurrent applications can execute various parts of a program out of sequence while not affecting the final outcome of the program. This is often confused with parallelism, which involves running multiple programs simultaneously. In this course, you'll explore the concept of concurrency by first considering sequential programming. With that foundation, you'll dive into multi-threaded programming and learn about the differences between concurrency and parallelism. Next, you'll examine Go's concurrency model and the concurrency primitives used in Go to build concurrent applications. Finally, you'll learn about concurrency patterns used in Go programming and how performance can be improved with concurrency.
57m has Assessment available Badge
Advanced Programming in Go: Goroutines
Goroutines are foundational components of Go's concurrency model. Goroutines may be considered units of execution in a Go program. Goroutines are very lightweight with small stack sizes. Consequently, millions of Goroutines may be spawned at about the same time on modest hardware. In this course, you'll explore Goroutines and how they implement the packages sync and sync/atomic. You'll investigate race conditions in Goroutines and explore race conditions versus data races. Next, you'll create and work with WaitGroups, implement atomic operations and see how mutexes are used with Goroutines. Lastly, you'll create and explore how to detect and avoid race conditions in Goroutines.
15 videos | 1h has Assessment available Badge