Go for Coders

From Pointers to Channels

Turn your team into professional Gophers

Golang is the lingua franca of Kubernetes.

The language from Google brings both simplicity and effectiveness when it comes to the Cloud Native ecosystem. This course will take any software developer through the information they need to become strong Go programmers.

"This is the best quality technical training I've ever attended."

SuperOrbital student

The language of operations has shifted from Bash and Python to a heavy focus on Golang. This course is meant for developers who need a stronger grasp of Golang's key language concepts.

Our Golang workshop covers everything your team needs to quickly graduate from pointer novices to channel pros.

Outline

Start with the Golang basics: variables, structs, types, functions, and interface. Then quickly advance into the http stack, contexts, concurrency, and goroutines.

Introduction

  • Why use Go?
  • Who is this course for?
  • Course goals
  • Lab environment overview
  • Basic go commands

Data Types

  • Built-in data types
  • Constants and variables
  • Custom structs
  • Initializing data
  • The pointer type

Complex Data Types

  • Slices and maps
  • Conditionals and iteration
  • Private vs public
  • Generics intro

Testing

  • Intro to the testing package
  • Idiomatic testing in Go
  • How do I structure my tests?

Error Handling

  • The Error interface
  • Idiomatic error operations
  • Error checking
  • Panic and recover

Functions Deep-Dive

  • Pass-by-value vs pass-by-reference
  • Receivers
  • Return variables
  • Function signatures as return values and types

Implementing Interfaces

  • Pointer receivers
  • Program to an interface
  • Invoke functions on interfaces
  • New methods

Contexts

  • Why are they everywhere?
  • When to use built-in contexts
  • Pass data with contexts
  • How do I incorporate libraries that utilize contexts?

Packages and dependencies

  • How do I organize my code?
  • Internal vs. accessible package structure
  • Building Golang applications and libraries
  • Compiler targets and the go env

Referencing external libraries

  • Understanding package documentation
  • Resolve a dependency
  • Upgrade a dependency
  • Go modules

The HTTP Stack

  • Understanding http.Client and the transport mechanism
  • HTTP handlers
  • Response writers and response body handling
  • Open source microservices libraries

Concurrency

  • Blocking vs. non-blocking
  • Work queues and channels
  • Contexts and thread local data
  • Goroutines

The 411

This workshop is delivered over two days. Each day is scheduled from 12pm to 5pm ET (9am to 2pm PT) with an hour break in the middle — 8 hours in total. We try to reserve an hour at the end of each session for open Q&A. Attendance for this course is limited to up to 28 students.

Instructors

Sean Kane
SuperOrbital Engineer
Flipping bits on the internet since 1992.

Rob Salmond
Engineer & Lead Trainer
Serving an extended sentence in the YAML mines. Claims innocence.

Intended Audience

This course covers the core programming concepts inherent to the Golang language. We recommend this course for any developers who are moving to Golang from other languages.

To get the most out of this subject, students should come prepared with an understanding of rudimentary Bash scripting, and the basics of programming languages such as iteration, assignment, and conditionals.

This is just one of the many great courses in our cloud-native curriculum!

Reach out to schedule the best workshop your team's ever attended.

The SuperOrbital Difference

We're experts with a reputation for delivering great work. Here’s how we're different:

Intensely Hands-On

More Walkin', Less Talkin'.

Our students spend more than 50% of their time in hands-on labs. We don’t believe in static, podium-based training with some boring instructor talking at you.

Instead, we immerse you in an active learning environment where you can internalize the lessons through collaboration and hands-on labs. This is the path to knowledge that sticks, and a foundation for true expertise.

Collaborative & Fun

This ain't no webinar.

People learn best when they're engaged and having fun. We strongly encourage interruptions, stupid questions, and side-quests.

This is also why we cap off each day with an open Q&A session. This is where we really get to dig into each team's unique challenges, often through live-coding sessions.

Thorough

No stone unturned.

Our content goes deep, giving you a foundational understanding of how things work under the hood. We tease apart every topic, breaking it down into it's atomic parts. Then we rearrange them into an order our students can easily digest and remember.

Unbiased

No Vendor Pitches.

We believe in cloud native solutions, but we aren't beholden to any vendor. Every situation is unique, and every tool has flaws. We help you understand how the technologies work together to solve your problems. We guide you away from the tools that are hype, and toward those that have proven their worth.

Battle Hardened

We bring real experience.

We don't just teach: we do. We've wrestled with Kubernetes, Terraform, Istio, Docker and all of the others in real production situations. We've used them in anger. We know where the tools fall down and what the documentation hides.

Remote first

We're passionately remote-first, and our training shows it.

The days of hours wasted commuting to work are coming to an end, and good riddance. SuperOrbital has always been a passionately remote-first company, and we bring that to our training. Why travel out of town to sit in a hot, crowded, uncomfortable room for days at a time? Our workshops are taken from the comfort of your own home, and at a schedule that encourages deep learning.

Need more convincing? Let's talk!

How it works

Engaging with us to provide a workshop for your team is easy. Reach out to get started.

Chat

We'll schedule a time to meet, discuss your needs, your team's experience level, and how we can help.

Deliver

Each workshop day consists of four hours of lecture, labs, and open Q&A. This helps keep the training active and inspiring, and gives plenty of time for the knowledge to gel.

Follow Up

We follow up afterward to ensure the workshop exceeded your expectations, and to help with whatever new hurdles your team may be facing.

Schedule the best training your team will ever attend, today!