Open Source Go Conference

Sep 23rd - 25th 2019

Ultimate Go

Ultimate Go Training

The Ultimate Go class is an intermediate-level class for companies who have developers with some experience in Go trying to dig deeper into the language. They want to learn internals and make better engineering decisions.

Trusted by:


Ardan Labs offers the “Ultimate Go” class, a 2 or 3 day on-site corporate training for software developers who wants to learn Go (Golang). This class has been designed over the past 3 years and goes beyond just being a language class.

Your team will walk away with philosophies and techniques for solving common problems with a big understanding of “if performance matters” then these things matter.

Course Overview

This class provides an intensive, comprehensive and idiomatic view of the language. There will be very little teaching of syntax and a big focus on learning how to read and understand the code you are writing.

We will talk about semantics, guidelines, mechanical sympathy and data oriented design. We are going to talk about package oriented design and how to structure your Go projects for the long term. We are going to talk about writing concurrent code and how to effectively use channels. Then I will dig into the testing, benchmarking and profile tooling. We will talk a lot about composition and design. We focus on both the specification and implementation of the language, including topics ranging from language syntax, Go’s type system, concurrency, channels, testing and more. We believe this class is perfect for anyone who wants a jump start in learning Go or who wants a more thorough understanding of the language and its internals.

Everyone is going to be mentally exhausted by the end of each day. We will be challenging every student to think about what they are doing and why. In the 3 years we have taught this material, we never had someone not appreciate the class and feel like they are a better developer for it.

Course outline

  • Mechanical Sympathy
  • Data Oriented Design
  • Language Syntax
  • Arrays, Slices and Maps
  • Methods, Interfaces and Embedding
  • Packaging and Exporting
  • Using Pointers
  • Composition
  • Error Handling
  • Concurrency Overview

Minimal Qualified

The material has been designed to be taught in a classroom environment. The code is well commented but missing some of the contextual concepts and ideas that will be covered in class. Students with the following minimal background will get the most out of the class.

  • Studied CS in school or has a minimum of two years of experience programming full time professionally.
  • Familiar with structural and object oriented programming styles.
  • Has worked with arrays, lists, queues and stacks.
  • Understands processes, threads and synchronization at a high level.
  • Operating Systems
    • Has worked with a command shell.
    • Knows how to maneuver around the file system.
    • Understands what environment variables are.

Go Training Reviews

Great class! The teams would benefit from post-class help in code reviews, mentoring, and development of starter kits for typical applications types in our environment.

Engineer, PayPal

The course is extremely well organized and the pace is also very conducive to the learning process. The exercises are very well organized. Delivered very high value.

Engineer, Cisco

Excellent class. The instructor is a hacker speaking to hackers, so we got very useful information and advice. Well-structured and paced was not totally dead at the end of the day. Good exercises. 10/10 would gopher it again.

Engineer, Zip Recruiter