Getting Started
  • How to Get Help
  • Link to Completed Code
  • Join Our Community!
  • Environment Setup
  • VSCode Installation
  • Go Support in VSCode
A Simple Start
  • Boring Ol' Hello World
  • Five Important Questions
  • Go Packages
  • Import Statements
  • File Organization
  • Test Your Knowledge: Packages
  • How to Access Course Diagrams
Deeper Into Go
  • Project Overview
  • New Project Folder
  • Variable Declarations
  • Test Your Knowledge: Variable Assignment
  • Functions and Return Types
  • Test Your Knowledge: Functions
  • Slices and For Loops
  • Test Your Knowledge: Slices and For Loops
  • OO Approach vs Go Approach
  • Custom Type Declarations
  • Receiver Functions
  • Test Your Knowledge: Functions with Receivers
  • Creating a New Deck
  • Slice Range Syntax
  • Multiple Return Values
  • Test Your Knowledge: Multiple Return Values
  • Byte Slices
  • Deck to String
  • Joining a Slice of Strings
  • Saving Data to the Hard Drive
  • Reading From the Hard Drive
  • Error Handling
  • Shuffling a Deck
  • Random Number Generation
  • Testing With Go
  • Writing Useful Tests
  • Asserting Elements in a Slice
  • Testing File IO
  • Project Review
  • Even and Odd
Organizing Data With Structs
  • Structs in Go
  • Defining Structs
  • Declaring Structs
  • Updating Struct Values
  • Embedding Structs
  • Structs with Receiver Functions
  • Pass By Value
  • Structs with Pointers
  • Pointer Operations
  • Pointer Shortcut
  • Gotchas With Pointers
  • Test Your Knowledge: Pointers
  • Reference vs Value Types
  • Test Your Knowledge: Value vs Reference Types
Maps
  • What's a Map?
  • Manipulating Maps
  • Iterating Over Maps
  • Differences Between Maps and Structs
  • Test Your Knowledge: Maps
Interfaces
  • Purpose of Interfaces
  • Problems Without Interfaces
  • Interfaces in Practice
  • Rules of Interfaces
  • Extra Interface Notes
  • The HTTP Package
  • Reading the Docs
  • More Interface Syntax
  • Interface Review
  • The Reader Interface
  • More on the Reader Interface
  • Working with the Read Function
  • The Writer Interface
  • The io.Copy Function
  • The Implementation of io.Copy
  • A Custom Writer
  • Test Your Knowledge: Interfaces
  • Interfaces
  • Hard Mode Interfaces
Channels and Go Routines
  • Website Status Checker
  • Printing Site Status
  • Serial Link Checking
  • Go Routines
  • Theory of Go Routines
  • Channels
  • Channel Implementation
  • Blocking Channels
  • Receiving Messages
  • Repeating Routines
  • Alternative Loop Syntax
  • Sleeping a Routine