Course Overview

Go Language (golang) is a unique open source language that is increasingly popular.  Google introduced Go in 2009 as a managed, strongly typed, and compilable language.  In a short time, Go has made an immediate impact as the development language for Docker, Bitcoin Blockchain, and other emerging technologies. This has created somewhat of a cult following for the language.

Go is an unconventional language not afraid to deviate for long established norms, which has created many converts to the language. From object-oriented programming (no inheritance) to exception handling (panics), the founders of Go steered a different direction. This has made Go both a unique and refreshing environment to develop innovated applications.

This is a hands-on course for building software solutions using the Go Langue. Learn the language fundamentals required to implement complex and sophisticated applications that leverage the unique capabilities of Go.

Key Learning Areas

At the end of this class, you will be creating complete solutions using the language features of Go.  This includes an understanding of how to leverage the language strengths to create a new generation of applications.

Course Outline

Program Structure

  • Declarations
  • Variables
  • Scope


  • Types
  • Casting
  • Declarations
  • Type info

Composite Types

  • Arrays
  • Slices
  • Maps
  • Sorting


  • Error handling
  • Defer
  • Panics
  • Recover

Change of Control

  • for
  • if
  • switch
  • Type switching

Core Packages

  • Strings
  • Input / Output
  • Files & Folders


  • Returning Multiple Values
  • Variadic Functions
  • Closure
  • Recursion
  • Panic
  • Recover


  • Pass by value
  • Pass by pointer
  • Pointer syntax
  • Make

Structs and Interfaces

  • Structs
  • Methods
  • Interfaces
  • Composition
  • Duck typing


  • Syntax
  • Multifile Packages

Who Benefits

The audience is anyone with an understanding of programming concepts, including object-oriented programming. Previous Go programming experience not required.

This class is available for a variety of platforms:  Windows, Linux, or MacOS.  In addition, students can use their preferred integrated development environment.


A solid background in software development.