Go Core Language

Paths

Go Core Language

Authors: Mike Van Sickle, James Wilson, Carlos Souza, Ashish Minocha

Go is a statically-typed, compiled language like C++ with the user friendliness of a dynamically-typed, interpreted language such as Python. It is concurrent, garbage-collected,... Read more

What You Will Learn

  • Custom data types
  • Branching
  • Looping
  • Modules
  • Packages
  • Functions
  • Concurrency
  • Services
  • Testing

Pre-requisites

Go Core Language

Dive into Go while you learn about packages, functions, concurrency, services, and testing.

Go: Getting Started

by Mike Van Sickle

Jan 27, 2020 / 3h 29m

3h 29m

Start Course
Description

Go is one of the most exciting programming languages in the world today. It challenges the compromises that many languages make and dares to embrace simplicity and clarity as core design principles. In this course, Go: Getting Started, you will learn foundational knowledge to create your own Go applications. First, you will discover how to get Go set up on your system. Next, you will explore the language itself. Finally, you will put it all together by building your own simple, but fully capable web service. When you're finished with this course, you will have the skills and knowledge of Go needed to create your own basic applications and have a firm foundation to continue your journey into mastering the Go language.

Table of contents
  1. Course Overview
  2. Introduction
  3. Starting a Project
  4. Working with Primitive Data Types
  5. Working with Collections
  6. Creating Functions and Methods
  7. Controlling Program Flow

The Go CLI Playbook

by Mike Van Sickle

Feb 28, 2018 / 2h 8m

2h 8m

Start Course
Description

The Go language has made a name for itself by embracing simplicity as a core design concept. This does not just extend to the language; it touches every aspect of the Go ecosystem. This course, The Go CLI Playbook, covers many aspects of the Go command line tool which, in keeping with the Go philosophy, provides a single point of entry for all the core activities involving the language, including retrieving third party packages, building projects, and executing tests. First, you’ll learn how to use the Go command to compile your applications, both as standalone entities and as libraries that can be shared with Go and non-Go programs. Next, you’ll explore how to test applications including performance profiling. Finally, you’ll examine how to manage workspaces and explore the environment that Go is working in. By the end of this course, you'll have the necessary skills and knowledge to access the full power that the Go CLI offers.

Table of contents
  1. Course Overview
  2. Introduction
  3. Building and Running Programs
  4. Testing Programs
  5. Managing Workspaces
  6. Interacting with the Environment

Creating Custom Data Types with Go

by James Wilson

Dec 18, 2019 / 1h 16m

1h 16m

Start Course
Description

Knowing Golang’s type system is important for any developer looking to build reliable software quickly. In this course, Creating Custom Data Types with Go, you will learn and gain the ability to quickly create your own customer types in Go and knowing exactly the impact that each element has on the system. First, you will learn the various components that make up interfaces and structs in Go. Next, you will discover the simplicity of type definitions and type aliases. Finally, you will explore how to embed types for composition, giving you reliable types that you can reuse across your code base. When you are finished with this course, you will have the skills needed to build long-lasting software that is maintainable and easy to use.

Table of contents
  1. Course Overview
  2. Interfaces and Structs
  3. Working with Type Definitions and Aliases
  4. Composition with Embedded Types
  5. Comparable Types
  6. Switching on Types
Project

Build a Budget App CLI in Go

by Carlos Souza

/ 1h

1h

Start Project
Description

In this project, you'll follow along with our instructions and build a command line (CLI) budget application in Go. You’ll learn how to use common operations with collection data types like structs, slices and maps.

Project overview
  1. Setup1h
  2. Defining Structs5m
  3. Working with slices and maps15m

Advanced Branching and Looping in GO

by Ashish Minocha

Dec 16, 2019 / 1h 14m

1h 14m

Start Course
Description

GO is a relatively new programming language. In this course, Advanced Branching and Looping in GO, you will gain the ability to effectively use the GO for loop statement, and the 2 available branch statements If/else and Switch in real world applications. First, you will learn the different use cases available at your disposal. Next, you will discover the various ways that you can use these control structures by developing several independent programs and demos. Finally, you will explore how to use these control statements with business requirements using complete end to end mini-projects. When you are finished with this course, you will have the skills and knowledge of the GO control structures needed to complete simple to complex tasks using GO loops and branch statements.

Table of contents
  1. Course Overview
  2. Learning GO Loops with the FOR Statement
  3. Learning GO Selections with If/Else Statements
  4. Learning GO Selections with the Switch Statement

Deep Dive into Go Packages

by Mike Van Sickle

Jul 29, 2019 / 1h 34m

1h 34m

Start Course
Description

From its very beginning, Go has embraced simplicity as a core ideal to aspire to. However, just because a thing is simple, does not mean that it must compromise its effectiveness. Go’s package system illustrates this point well. This system provides a simple way to organize source code into clear, well-factored units while remaining powerful enough to handle the most challenging organizational requirements. In this course, you will dig into the package system. You will learn about the components of a package and how to use them to ensure that the package remains well organized and can be easily consumed by other parts of your application. You will start by learning about the internal mechanisms of a package and how to use them to ensure that a package is ready to be used. Next, you'll zoom out and learn how to create packages that can easily be consumed by others. Finally, you will learn about the options that are available for consuming external packages. When you're finished with this course, you will have the skills and knowledge of packages needed to create applications that are well organized and easily maintained over time.

Table of contents
  1. Course Overview
  2. Overview of a Package
  3. Working within a Package
  4. Preparing a Package to Be Used
  5. Using Other Packages

Deep Dive into Go Functions

by James Wilson

Dec 13, 2019 / 1h 27m

1h 27m

Start Course
Description

Functions are one of the most important elements in any language. They allow you to write clean and maintainable code. In this course, Deep Dive into Go Functions, you will learn functions that will allow you to take your Go programs to the next level. First, you will learn all of the components that make up a function, and how flexible and adaptable they are in Go. Next, you will discover how functions are a first-class citizen in Go and can be used as expressions and variables. Finally, you will explore how to master the control flow of a function so you write clean idiomatic Go. When you are finished with this course, you will have the skills and knowledge of writing clean, maintainable idiomatic function in Go.

Table of contents
  1. Course Overview
  2. Function Parameters and Return Values
  3. Method Receivers on Structs and Scalar Types
  4. Function and Method Expressions
  5. Control Flow in Functions

Concurrent Programming with Go

by Mike Van Sickle

Feb 13, 2020 / 1h 32m

1h 32m

Start Course
Description

Taking advantage of the processing power of today's multi-core computers is a challenge that every developer faces. In this course, Concurrent Programming with Go, you will gain the ability to use Go's powerful tools that allow multi-threaded programs to be written in a clear, easily understood manner. First, you will learn how to use goroutines to initiate concurrent tasks. Then, you will explore the sync package and how to use it to coordinate goroutines. Finally, you will discover channels and how they compliment and complete the coordination features of the sync package. When you are finished with this course, you will have the skills and knowledge of Go's concurrency model needed to write safely, highly concurrent applications.

Table of contents
  1. Course Overview
  2. Goroutines
  3. The Sync Package
  4. Channels
Project

Build a FIFA World Cup Web Service in Go

by Carlos Souza

/ 45m

45m

Start Project
Description

In this project, you’ll follow along with our instructions and build a Web Service in Go utilizing only the net/http library. We'll start with a few existing functions and expose functionality through the HTTP protocol.

Project overview
  1. Setup10m
  2. Creating GET Handlers15m
  3. Creating POST Handlers15m
  4. Creating the Dispatch Handler5m