Go Core Language

Paths

Go Core Language

Authors: Mike Van Sickle, Carlos Souza, Hongtao Xiao, Jeremy Morgan, James Wilson, Ashish Minocha, Alex Schultz

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 28m

3h 28m

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
Project

Build a Temperature Converter CLI in Go

by Carlos Souza

Feb 24, 2020 / 1h 25m

1h 25m

Start Project
Description

In this project, you’ll follow along with our instructions and build a command line application in Go. We'll start with a few existing functions and add functionality which parses CLI arguments and reads keyboard inputs from the terminal.

Project overview
  1. Setup1h
  2. Reading CLI arguments5m
  3. Reading Keyboard Inputs20m
Project

The Go CLI Playbook

by Hongtao Xiao

May 15, 2020 / 1h 20m

1h 20m

Start Project
Description

In this project, you will learn how to use the Go command line interface. You will get to know how to print environment information, format source code, and get and install packages. You will also learn how to import missing packages, print the document, and run commands on existing source code.

Project overview
  1. Setup10m
  2. Print environment information using go env10m
  3. Format source code using go fmt and gofmt10m
  4. Download and install packages using go get8m
  5. Compile and install packages using go install8m
  6. Import missing packages12m
  7. Print the document for a function10m
  8. Scan for directives and run commands on existing source code12m

The Go Standard Library

by Jeremy Morgan

Jun 26, 2020 / 2h 27m

2h 27m

Start Course
Description

Basic operations, such as input/output, formatting, and logging aren't things you want to write by hand. In this course, The Go Standard Library, you’ll gain the ability to leverage these libraries to develop applications faster. First, you’ll explore creating command line applications. Next, you’ll discover handling input and output. Finally, you’ll learn how to format strings and data to your exact requirements. When you’re finished with this course, you’ll have the skills and knowledge of the Go standard library needed to cut down development time with your Go applications.

Table of contents
  1. Course Overview
  2. Creating CLI Applications
  3. Using the fmt Package
  4. Using the Log Package
  5. Working with the Time Package
  6. Working with Strings in Go
  7. Implementing Reflection

Creating Custom Data Types with Go

by James Wilson

Dec 18, 2019 / 1h 15m

1h 15m

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

Nov 25, 2019 / 30m

30m

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. Setup10m
  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
Project

Build a Vehicle Rating System in Go

by Ashish Minocha

Apr 22, 2020 / 1h 25m

1h 25m

Start Project
Description

In this project, you'll be using Go to build a console application that will gather feedback from a JSON file and generate a rating of vehicles. Finally, we will map each rating as positive, negative, or neutral.

Project overview
  1. Setup15m
  2. Defining interface, structs, and variables10m
  3. Calculate and generate vehicle ratings30m
  4. Show vehicle ratings30m

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 26m

1h 26m

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 31m

1h 31m

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

Creating Web Services with Go

by Alex Schultz

May 12, 2020 / 2h 30m

2h 30m

Start Course
Description

Web services power just about every web application that we as consumers use every day. In this course, Creating Web Services with Go, you'll learn how to build restful web services using Go’s standard library. First, you’ll explore the use of standard http methods to perform create, update, and delete operations using persistent data with a database. Next, you'll learn how to test your webservices using http debugging tools and you’ll see how you can make use of websockets to improve the user experience of your application. Finally, you'll discover how you can format data using Go’s built in templating package. By the end of this course, you should have a firm foundation from which to build your own web services using Go.

Table of contents
  1. Course Overview
  2. Getting Started
  3. Handling HTTP Requests
  4. Persisting Data
  5. Using WebSockets
  6. Using Templating
Project

Build a FIFA World Cup Web Service in Go

by Carlos Souza

Oct 23, 2019 / 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

Creating Well-tested Applications in Go

by Mike Van Sickle

Mar 11, 2020 / 1h 26m

1h 26m

Start Course
Description

Today's software applications are addressing an increasingly challenging set of problems. Meanwhile, the consumers of those applications have little tolerance for bugs and poor performance. In this challenging environment, automated tests have become a vital tool to ensure that applications are correct and performant.

In this course, Creating Well-tested Applications in Go, you'll gain the ability to create automated test suites for your Go applications. First, you'll learn how to create assertion-style tests, commonly used in unit, integration, and end-to-end test suites. Next, you'll discover how to add performance benchmark tests to your critical code paths to ensure that your users aren't waiting any longer than necessary. Finally, you'll explore how to use your test suites to gather profiling information about how system resources are being utilized to identify inefficiencies and performance bottlenecks. When you're finished with this course, you'll have the skills and knowledge of testing in Go needed to meet your customers expectations for quality and performance.

Table of contents
  1. Course Overview
  2. Introduction to Testing
  3. Creating and Running Tests
  4. Benchmarking and Profiling
Offer Code *
Email * First name * Last name *
Company
Title
Phone
Country *

* Required field

Opt in for the latest promotions and events. You may unsubscribe at any time. Privacy Policy

By providing my phone number to Pluralsight and toggling this feature on, I agree and acknowledge that Pluralsight may use that number to contact me for marketing purposes, including using autodialed or pre-recorded calls and text messages. I understand that consent is not required as a condition of purchase from Pluralsight.

By activating this benefit, you agree to abide by Pluralsight's terms of use and privacy policy.

I agree, activate benefit