Introduction to Go

The Introduction to Go training course is project ­based: building a shared “game” server that students can use to interact with each other via defined APIs. There is also a strong “code reading” portion, whereby students can check their understanding of Go by reading and modifying open ­source Go projects. This course will explore concurrency (by diving into more concurrency patterns) and the standard library, as well as providing more coding activities using
popular Go libraries/frameworks (such as logging and microservices).

Course Summary

Purpose: 
Teach developers how to use the Go language.
Audience: 
Software engineers wanting to learn Go.
Skill Level: 
Learning Style: 

Hands-on training is customized, instructor-led training with an in-depth presentation of a technology and its concepts, featuring such topics as Java, OOAD, and Open Source.

Hands On help
Duration: 
3 Days
Productivity Objectives: 
  • Be able to write idiomatic Go code according to its conventions
  • Be able to read and understand code from real­world open­source Go projects
  • Know how to use the basic Go tools, including those for dependency management
  • Use Go’s networking and serialization support to create HTTP & JSON APIs
  • Write and run tests using Go’s testing tools
  • Use Go’s goroutines and channels to write safe, concurrent code
  • Write reliable code using Go errors

What You'll Learn

In the Introduction to Go training course you’ll learn:

  • Introduction
    • Goals and philosophy of Go
    • Playing with Go in the “playground” (play.golang.org)
    • Finding and reading Go documentation (golang.org/pkg)
  • Variables and Types
    • Defining variables with types
    • Type inference
    • Constants
    • Naming conventions
    • Using Printf to display variables
    • Variable scope
  • Structs
    • Collection of properties
    • Naming conventions
  • Packages and Importing
    • package statement
    • Naming conventions
    • import statement
    • Common packages: overview the Go Standard Library
  • Development Environment
    • Setting up your development environment
    • Download Go
    • Set up GOPATH
    • Choose your editor
    • Build and run the Go example
    • Remember the “main” package
    • File organization: what goes where?
  • Functions, Parameters and Return Values
    • Defining functions
    • Declaring parameter types
    • Pointers and mutability of parameters
    • Returning errors
  • Control and Looping Structures
    • If, For, and Switch basics
  • Strings, Arrays, and Maps
    • String finding and manipulation
    • Defining and using Arrays
    • Using Slices for more power
    • Maps: Go’s dictionary structure
    • For loops with Ranges
  • Methods
    • Go does not have classes
    • Method is a function associated with a type
    • More on pointers
    • Method receivers
  • Interfaces
    • Implicitly defined
    • “Duck typed”
    • Composition
  • I/O Library
    • Reading from standard input
    • Writing to standard output and errors
    • Using Readers and Writers
  • Concurrency
    • Go’s concurrency approach
    • Goroutines: Go’s lightweight managed thread
    • Channels: sending typed items between goroutines
    • Channel processing and blocking
    • Range, Select, buffering
  • HTTP & JSON
    • The net/http and encoding libraries
    • Build a client to connect to GitHub
    • Write a web server to serve static documents
    • Add a JSON API to the web server

Get Custom Training Quote

We'll work with you to design a custom Introduction to Go training program that meets your specific needs. A 100% guaranteed plan that works for you, your team, and your budget.

Learn More

Chat with one of our Program Managers from our Boulder, Colorado office to discuss various training options.

DevelopIntelligence has been in the technical/software development learning and training industry for nearly 20 years. We’ve provided learning solutions to more than 48,000 engineers, across 220 organizations worldwide.

About Develop Intelligence
Di Clients
Need help finding the right learning solution?   Call us: 877-629-5631