Become Ardan Labs Certified | Test your knowledge with our Go & Rust exams at ardanlabs.training

Course Introduction


This course will help you become familiar with the basic concepts of the Go programming language. Through lectures and coding exercises, you’ll learn about the core concepts needed to become a productive Go developer.

This course is part of the Ultimate Go Track. Not sold separately.

Note: All of our bundles are for a one-year subscription.

At the end of the subscription period, your membership does not automatically renew.

Requirements:

You need to know how to program and core concepts of working with computers (such as files, HTTP, memory management…)

  • A basic understanding of the Go programming language.
  • Some experience with the Go Tour is recommended.

You should have the following installed on your computer prior to the workshop:

  • Go SDK from golang.org/dl/
  • An IDE, either VSCode with Go extension or GoLand
  • Git

Course Outline


Module 1 - Introduction & Setup
  • 1.1 - Introduction to Go
  • 1.2 - Setting Up So You Can Get Started
  • 1.3 - Writing Your First Go Program, Compiling & Running It
Module 2 - Data Structures & REST APIs
  • 2.1 - Understanding Strings in Go, Formatted Output
  • 2.2 - Calling REST APIs, HTTP Requests, JSON
  • 2.3 - Working with Files, Using Defer to Manage Resources, Error Handling
  • 2.4 - Composing io.Reader and io.Writer
  • 2.5 - Working with Slices, Slices Internals
Module 3 - Structures, Methods, & Interfaces
  • 3.1 - Defining & Creating Structs
  • 3.2 - Adding Methods to Structs
  • 3.3 - Creating and Implementing Interfaces
  • 3.4 - The Empty Interface
  • 3.5 - Using Generics
Module 4 - Panics & Maps
  • 4.1 - Handling Panics
  • 4.2 - Calculating Word Frequency, Working with Maps
Module 5 - Concurrency
  • 5.1 - Overview of Concurrency in Go
  • 5.2 - Using goroutines and Channels
  • 5.3 - Iterating Over Channels, Closing Channels
  • 5.4 - Using the Fan-Out Pattern
  • 5.5 - Exercise: Converting Sequential Algorithms to Concurrent
  • 5.6 - Using the Sync Package
  • 5.7 - Using the Select, Working with Multiple Channels, Timeouts and Cancellations
  • 5.8 - Exercise: Real-Time Bidding, Adding Timeouts
Module 6 - Project Engineering
  • 6.1 - Documenting Your Code
  • 6.2 - Testing Your Code
  • 6.3 - Dependency Management, go mod
  • 6.4 - Using the Testify Library
  • 6.5 - Exercise: Reading Test Cases from a TOML File
  • 6.6 - Fuzz Testing
  • 6.7 - Installing and Linters, the “go tool” Command
  • 6.8 - Project Structure, Splitting to Sub-Packages
  • 6.9 - Writing an HTTP Server
  • 6.10 - Testing HTTP Request Handlers
  • 6.11 - Adding Logging and Metrics
  • 6.12 - Configuring Your Server: Environment Variables, Flags, Configuration Files

Trusted by Top Technology Companies

We've built our reputation as educators and bring that mentality to every project. When you partner with us, your team will learn best practices and grow along the way.

30,000+

Engineers Trained

1,000+

Companies Worldwide

14+

Years in Business