Golang Systems Developer

  • Go Packages
  • Import Statements
  • File Organization

Deeper Into Go

  • Project Overview
  • New Project Folder
  • Variable Declarations
  • Functions and Return Types
  • Slices and For Loops
  • OO Approach vs Go Approach
  • Custom Type Declarations
  • Receiver Functions
  • Creating a New Deck
  • Slice Range Syntax
  • 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

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
  • Reference vs Value Types

Maps

  • What’s a Map?
  • Manipulating Maps
  • Iterating Over Maps
  • Differences Between Maps and Structs

Interfaces

  • Purpose of Interfaces0
  • 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

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
  • Function Literals
  • Channels Gotcha
  • Channels and Go Routines