Introduction to Go Programming

Go (often referred to as "Golang") is a powerful programming language originally designed by engineers at Google. Accelebrate’s Introduction to Go Programming class teaches experienced programmers...

Read More
Course Code ACCEL-GO-INTRO
Duration 3 days
Available Formats Classroom
6697 Reviews star_rate star_rate star_rate star_rate star_half

“Great class - will definitely be using what I learned.”

Course Image

Go (often referred to as "Golang") is a powerful programming language originally designed by engineers at Google. Accelebrate’s Introduction to Go Programming class teaches experienced programmers how to write software in Go to solve a wide array of problems. During the training, attendees share a “game” server to interact with each other via defined APIs. Attendees also check their understanding of Go by reviewing and modifying open-source Go projects. This course will explore concurrency (by diving into more concurrency patterns), and the standard library, as well as provide more coding activities using popular Go libraries/frameworks (such as logging and microservices).

Skills Gained

All students will learn how to:

  • Master the fundamental syntax of Go, including variable declarations, data types control structures, and functions
  • Test, build, and deploy command-line Go applications
  • Benchmark your Go applications
  • Master use of the Go documentation
  • Manage state
  • Build web services
  • Write concurrent code
  • Produce code more efficiently with templating
  • Package and deploy complete Go applications
  • Profile their code

Prerequisites

Students should have prior experience in another modern programming language.

Course Details

Software Requirements

  • The latest distribution of Go for your operating system (Windows, Mac, or Linux)
  • A Go-compatible IDE such as JetBrains GoLand
  • Related lab files that Accelebrate provides

Go Training Outline

Overview

  • History
  • Philosophy
  • Sweet spots

Up And Running

  • Installation and Setup
  • Playground

Primitive Types

  • Declaration
  • Initialization
  • Constants
  • Casting
  • Pointers

Outputs

  • Fmt Package
  • Log Package

Functions

  • Declaration
  • Arguments and returns
  • Special cases
  • Calling functions
  • Values and Pointers
  • Variadic functions
  • Function as argument

Building Command line apps

  • Main package
  • Compiling/Running/Packaging
  • Inputs

Testing

  • Morphology
  • Best Practices
  • Test Coverage

Benchmarks

  • Defining
  • Best Practices

Documentation

  • Package
  • Code
  • Examples

Scoping

  • Variable scopes
  • Visibility

Error Handling

  • Error types
  • Best Practices

Data Structures

  • Array
  • Slice
  • Map

Controls

  • If
  • For
  • Switch
  • Goto
  • Continue/Break
  • Defer
  • Panic/Recover

User-Defined Types

  • Struct
  • Embedding

Managing State

  • Immutability
  • Sharing

Methods

  • Declaring
  • Extensibility
  • Encapsulation

Interface

  • Interface Type
  • Type assertion
  • Best Practices

Encoding/Decoding

  • JSON package

Building Web Services

  • Std lib
  • Extensions
  • Testing

Concurrency

  • Go Scheduler
  • Goroutine
  • WaitGroup
  • Mutex
  • Atomic
  • Channels
  • Mechanics
  • Select
  • Best Practice
  • Signal handling
  • Contexts

Templating

  • Defining
  • Hydrating
  • Extending

Packaging

  • Consuming packages
  • Vendoring
  • Best Practices
  • Tooling

Deploying

  • Building execs
  • Containerizing

Profiling

  • Tools
  • Inspection
  • Tracing

Conclusion

Contact Us 1-800-803-3948
Contact Us
FAQ Get immediate answers to our most frequently asked qestions. View FAQs arrow_forward